public void Run() { while (true) { if (Setup()) { while (IsConnected) { Ping(); Thread.Sleep(1000); } Exit(); ConnectionStatusEventHandler?.Invoke(this, new ConnectionStatusEvent { Type = ConnectionStatusEvent.EventType.Disconnected }); } else { ConnectionStatusEventHandler?.Invoke(this, new ConnectionStatusEvent { Type = ConnectionStatusEvent.EventType.NotConnected }); } Thread.Sleep(1000); } }
public bool Setup() { _serialTransport = new SerialTransport { CurrentSerialSettings = { PortName = "COM4", BaudRate = 57600, DtrEnable = false } // object initializer }; _cmdMessenger = new CmdMessenger(_serialTransport, BoardType.Bit32); _cmdMessenger.Attach(OnUnknownCommand); _cmdMessenger.Attach((int)Command.Acknowledge, OnAcknowledge); _cmdMessenger.Attach((int)Command.Error, OnError); _cmdMessenger.Attach((int)Command.TempChange, OnTempChange); _cmdMessenger.Attach((int)Command.SsrChange, OnSsrChange); _cmdMessenger.Attach((int)Command.HeaterChange, OnHeaterChange); _cmdMessenger.NewLineReceived += NewLineReceived; _cmdMessenger.NewLineSent += NewLineSent; IsConnected = _cmdMessenger.Connect(); if (IsConnected) { ConnectionStatusEventHandler?.Invoke(this, new ConnectionStatusEvent { Type = ConnectionStatusEvent.EventType.Connected }); //TODO: Request Status } return(IsConnected); }
void OnAcknowledge(ReceivedCommand arguments) { ConnectionStatusEventHandler?.Invoke(this, new ConnectionStatusEvent { Type = ConnectionStatusEvent.EventType.Ready }); }