예제 #1
0
        private void btnConnect_Click(object sender, RoutedEventArgs ea)
        {
            isConnected          = false;
            btnConnect.IsEnabled = false;


            string name   = cbSerialPort.Text;
            int    speed  = int.Parse(cbSpeed.Text);
            Parity parity = (Parity)Enum.Parse(typeof(Parity), cbParity.Text);

            LogAdd($"Connect: {name}:{speed}, {parity} - ", LogFlags.noReturn);

            try
            {
                isConnected = serialPort.ConnectTo(name, speed, parity);
            }
            catch (Exception e)
            {
                LogAdd(e.Message, LogFlags.noTime);
            }

            //если подключен последовательный порт, то кнопка "подключить" остается не доступна
            if (!(serialPort.IsOpen))
            {
                btnConnect.IsEnabled = true;
                //начинаем слушать событие
            }
            else
            {
                try
                {
                    serialPort.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
                }
                catch (Exception e)
                {
                    LogAdd(e.Message, LogFlags.noTime);
                }
            }

            Mouse.OverrideCursor = null;
            if (isConnected)
            {
                LogAdd("Ok", LogFlags.noTime);
            }
        }