Example #1
0
        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");
        }
Example #2
0
        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");
        }