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; } }
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); }
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); } }
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; } }
public void WriteSerial(SerialMessage msg) => _serialServer.WriteSerial(msg);
public void Write(SerialMessage msg) { Console.WriteLine($"WRITE {msg.Type} {(int)msg.Value1} {(int)msg.Value2:X}"); OutQueue.Enqueue(msg); }