/// <summary>
        /// Initialize serialport.
        /// </summary>
        public void InitializeSerialPort()
        {
            //Read config and initialize serialport.
            config     = SerialPortConfigurer.ReadConfig();
            serialPort = new SerialPort(config.portName, config.baudRate, config.parity, config.dataBits, config.stopBits)
            {
                ReadBufferSize  = config.readBufferSize,
                ReadTimeout     = config.readTimeout,
                WriteBufferSize = config.writeBufferSize,
                WriteTimeout    = config.writeTimeout
            };

            //Initialize read and write thread.
            readThread = new Thread(ReadBytesFromBuffer)
            {
                IsBackground = true
            };
            writeThread = new Thread(WriteBytesToBuffer)
            {
                IsBackground = true
            };

            //Initialize bytes array.
            readBytes  = new byte[config.readCount];
            writeBytes = new byte[config.writeCount];
        }
        private void OnGUI()
        {
            var rect = new Rect(xOffset, yOffset, 180, 180);

            GUILayout.BeginArea(rect, "Configurer", "Window");

            GUILayout.BeginHorizontal();
            GUILayout.Label("PortName");
            config.portName = GUILayout.TextField(config.portName, GUILayout.Width(60));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("BaudRate");
            config.baudRate = int.Parse(GUILayout.TextArea(config.baudRate.ToString(), GUILayout.Width(60)));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("Parity");
            config.parity = (Parity)int.Parse(GUILayout.TextArea(((int)config.parity).ToString(), GUILayout.Width(20)));
            GUILayout.Label(config.parity.ToString());
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("DataBits");
            config.dataBits = int.Parse(GUILayout.TextArea(config.dataBits.ToString(), GUILayout.Width(60)));
            GUILayout.EndHorizontal();

            GUILayout.BeginHorizontal();
            GUILayout.Label("StopBits");
            config.stopBits = (StopBits)int.Parse(GUILayout.TextArea(((int)config.stopBits).ToString(), GUILayout.Width(20)));
            GUILayout.Label(config.stopBits.ToString());
            GUILayout.EndHorizontal();

            if (GUILayout.Button("Apply"))
            {
                var error = string.Empty;
                SerialPortConfigurer.WriteConfig(config, out error);
            }
            GUILayout.EndArea();
        }
        /// <summary>
        /// Initialize serialport.
        /// </summary>
        /// <param name="error">Error message.</param>
        /// <returns>Initialize base on config file.</returns>
        private bool InitializeSerialPort(out string error)
        {
            //Read config and initialize serialport.
            var isRead = SerialPortConfigurer.ReadConfig(out config, out error);

            serialPort = new SerialPort(config.portName, config.baudRate, config.parity, config.dataBits, config.stopBits)
            {
                ReadBufferSize  = config.readBufferSize,
                ReadTimeout     = config.readTimeout,
                WriteBufferSize = config.writeBufferSize,
                WriteTimeout    = config.writeTimeout
            };

            //Initialize read and write thread.
            readThread = new Thread(ReadBytesFromBuffer)
            {
                IsBackground = true
            };
            writeThread = new Thread(WriteBytesToBuffer)
            {
                IsBackground = true
            };

            //Initialize bytes array.
            readBytes  = new byte[config.readCount];
            writeBytes = new byte[config.writeCount];

            if (isRead)
            {
                Debug.Log("Initialize succeed.");
            }
            else
            {
                Debug.LogWarning("Initialize with default config. error : " + error);
            }

            //Return state.
            return(isRead);
        }
 private void Start()
 {
     config = SerialPortConfigurer.ReadConfig();
 }
        private void Start()
        {
            var error = string.Empty;

            SerialPortConfigurer.ReadConfig(out config, out error);
        }