public void Start(MessageManagerSetting setting) { if (_startStatus != FwStartStatus.Stopped) { throw new Exception("Message manager is not stopped"); } _startStatus = FwStartStatus.Starting; _messageType = setting.MessageType; OpenSerialPort(setting.SerialPortSetting); _messageLoop = true; _messageThread = new Thread(new ThreadStart(InternalMessageProc)) { Priority = ThreadPriority.Highest }; _messageThread.Start(); _startStatus = FwStartStatus.Started; Log.Information("Message manager started"); }
public void Stop() { if (_startStatus != FwStartStatus.Started) { throw new Exception("Message manager is not started"); } _startStatus = FwStartStatus.Stopping; _messageLoop = false; _messageThread.Join(); CloseSerialPort(); _commandQ.Clear(); _responseQ.Clear(); _cmdResultQ.Clear(); _eventQ.Clear(); _startStatus = FwStartStatus.Stopped; Log.Information("Message manager stopped"); }