public MainViewModel() { SerialPortService = new SerialPortService(); SerialPortService.DataReceived += (s) => { var com = s.Trim().Replace("\r\n", "").Replace("\r", "").Replace("\n", ""); InGoingComm = com + Environment.NewLine + InGoingComm; //Check Commands analyseReturnCommand(com); }; SerialPortService.DataSend += (s) => { OutGoingComm = s + Environment.NewLine + OutGoingComm; }; #region SerialPortConfiguration this.PortNames = new CollectionView(SerialPortService.AvailableCOMPorts); this.PortName = SerialPortService.PortName; Messenger.Default.Register <PropertyChangedMessage <string> >(this, (a) => { if (a.PropertyName == "PortName") { SerialPortService.PortName = a.NewValue; } }); #endregion #region Commands Start = new RelayCommand(() => { SerialPortService.Start(); OutGoingComm = String.Empty; InGoingComm = String.Empty; }, () => { return(!SerialPortService.ComIsOpen); }); Stop = new RelayCommand(() => { SerialPortService.Stop(); }, () => { return(SerialPortService.ComIsOpen); }); RegnerToggle = new RelayCommand(() => { if (!RegnerOn) { SerialPortService.SendData(new CommunicationModel() { Command = "REGNER", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "REGNER", Action = "OFF" }); } }); SprueherToggle = new RelayCommand(() => { if (!SprueherOn) { SerialPortService.SendData(new CommunicationModel() { Command = "SPRUEHER", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "SPRUEHER", Action = "OFF" }); } }); TropferToggle = new RelayCommand(() => { if (!TropferOn) { SerialPortService.SendData(new CommunicationModel() { Command = "TROPFER", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "TROPFER", Action = "OFF" }); } }); ManualToggle = new RelayCommand(() => { if (!ManualOn) { SerialPortService.SendData(new CommunicationModel() { Command = "MANUAL", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "MANUAL", Action = "OFF" }); } }); OnRelaisToggle = new RelayCommand(() => { if (!OnRelaisOn) { SerialPortService.SendData(new CommunicationModel() { Command = "ONRELAIS", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "ONRELAIS", Action = "OFF" }); } }); OneRelaisToggle = new RelayCommand(() => { if (!OneRelaisOn) { SerialPortService.SendData(new CommunicationModel() { Command = "ONERELAIS", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "ONERELAIS", Action = "OFF" }); } }); TwoRelaisToggle = new RelayCommand(() => { if (!TwoRelaisOn) { SerialPortService.SendData(new CommunicationModel() { Command = "TWORELAIS", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "TWORELAIS", Action = "OFF" }); } }); ThreeRelaisToggle = new RelayCommand(() => { if (!ThreeRelaisOn) { SerialPortService.SendData(new CommunicationModel() { Command = "THREERELAIS", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "THREERELAIS", Action = "OFF" }); } }); VentilRelaisToggle = new RelayCommand(() => { if (!VentilRelaisOn) { SerialPortService.SendData(new CommunicationModel() { Command = "VENTILRELAIS", Action = "WATER" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "VENTILRELAIS", Action = "ZISTERNE" }); } }); ManualRelaisToggle = new RelayCommand(() => { if (!ManualRelaisOn) { SerialPortService.SendData(new CommunicationModel() { Command = "MANUALRELAIS", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "MANUALRELAIS", Action = "OFF" }); } }); PumpeRelaisToggle = new RelayCommand(() => { if (!PumpeRelaisOn) { SerialPortService.SendData(new CommunicationModel() { Command = "PUMPERELAIS", Action = "ON" }); } else { SerialPortService.SendData(new CommunicationModel() { Command = "PUMPERELAIS", Action = "OFF" }); } }); #endregion }