Exemple #1
0
        private void DataReceivedEvent(object sender, SerialDataReceivedEventArgs e)
        {
            SerialPort tty = (SerialPort)sender;

            while (tty.IsOpen && tty.BytesToRead > 0)
            {
                char c = (char)tty.ReadByte();
                //Console.WriteLine($"[RAW] {c}");

                switch (c)
                {
                case '\r':     // ignore windows line ending
                case '\n':
                    break;

                case ':':     // cmd start
                    Buffer_RX.Reset();
                    break;

                case '#':     // cmd end
                    ProcessCommand?.Invoke(this, EventArgs.Empty);
                    break;

                default:
                    try
                    {
                        Buffer_RX.Enqueue(c);
                    }

                    catch {; }
                    break;
                }
            }
        }
Exemple #2
0
 //======================================================================= Event entry points for unmanaged wrapper
 // ReSharper disable UnusedMember.Local
 private bool OnProcessCommand(UInt64 serverConnectionHandlerID, string command)
 {
     if (ProcessCommand != null)
     {
         var args = new ProcessCommandEventArgs(new ServerConnectionHandler(serverConnectionHandlerID), command);
         ProcessCommand.Invoke(args);
         return(args.Handled);
     }
     return(false);
 }