Exemplo n.º 1
0
 private void EvaluateMessage(SerialMessage msg)
 {
     Console.WriteLine($"Received Message {msg.Type} {(int)msg.Value1} {(int)msg.Value2} from BOARD");
     switch (msg.Type)
     {
     case MessageType.ButtonStateChanged:
         OnButtonStateChanged((ButtonType)(int)msg.Value1, msg.Value2 > 0);
         break;
     }
 }
Exemplo n.º 2
0
 public void Write(SerialMessage msg)
 {
     byte[] buffer = new []
     {
         (byte)0xF0,
         (byte)msg.Type,
         (byte)msg.Value1,
         (byte)msg.Value2,
         (byte)0xF7
     };
     _port.Write(buffer, 0, buffer.Length);
 }
Exemplo n.º 3
0
        public void UpdateLoop()
        {
            SerialMessage msg;

            while (true)
            {
                msg = DummyPort.Instance.OutQueue.Count > 0 ? DummyPort.Instance.OutQueue.Dequeue() : null;
                if (msg != null)
                {
                    Console.WriteLine($"Board got Message {msg.Type} {(int)msg.Value1} {(int)msg.Value2}");
                    SerialMessage cur = msg;
                    App.Dispatch(new Action(() => EvaluateMessage(cur)));
                    msg = null;
                }
                Thread.Sleep(100);
            }
        }
Exemplo n.º 4
0
        private void EvaluateMessage(SerialMessage msg)
        {
            switch (msg.Type)
            {
            case MessageType.Reset:
                foreach (var b in Buttons)
                {
                    b.RedLedVisible   = false;
                    b.GreenLedVisible = false;
                }
                break;

            case MessageType.SetLed:
                int          led   = (int)msg.Value1;
                LedColorType color = (LedColorType)(int)msg.Value2;
                var          btn   = Buttons.First(x => x.ButtonType == (ButtonType)led);
                switch (color)
                {
                case LedColorType.Off:
                    btn.RedLedVisible   = false;
                    btn.GreenLedVisible = false;
                    break;

                case LedColorType.Green:
                    btn.RedLedVisible   = false;
                    btn.GreenLedVisible = true;
                    break;

                case LedColorType.Red:
                    btn.RedLedVisible   = true;
                    btn.GreenLedVisible = false;
                    break;
                }
                RaisePropertyChanged(nameof(Buttons));
                break;
            }
        }
Exemplo n.º 5
0
 public void WriteSerial(SerialMessage msg)
 => _serialServer.WriteSerial(msg);
Exemplo n.º 6
0
 public void Write(SerialMessage msg)
 {
     Console.WriteLine($"WRITE {msg.Type} {(int)msg.Value1} {(int)msg.Value2:X}");
     OutQueue.Enqueue(msg);
 }