示例#1
0
        private void SerialPortDataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            _buffer += _serialPort.ReadExisting();

            if (_buffer.EndsWith("\r"))
            {
                var data = _buffer.TrimEnd('\r');

                if (data.StartsWith("$"))
                {
                    ConfigurationEvent?.Invoke(this, new ConfigurationEventArgs(_lastCommand, data));
                    _buffer = null;
                    return;
                }
                _buffer = null;

                switch (data)
                {
                case "S1":
                case "F1":
                    ButtonPressedAction(sender, Button.F1);
                    break;

                case "S2":
                case "F2":
                    ButtonPressedAction(sender, Button.F2);
                    break;

                case "Up":
                    ButtonPressedAction(sender, Button.Up);
                    break;

                case "Dwn":
                case "Down":
                    ButtonPressedAction(sender, Button.Down);
                    break;

                default:
                    ScanAction(sender, data);
                    break;
                }
            }
        }