Exemplo n.º 1
0
 public bool Start()
 {
     if (IsWorking())
     {
         return(false);
     }
     Messenger.AddMessage(MessageToMainForm.ClearConnectedDevicesList);
     if (_mode == Mode.Stop)
     {
         HardwareManager.Connect();
         var devices = HardwareManager.GetConnectedDevices();
         foreach (var device in devices)
         {
             Messenger.AddMessage(MessageToMainForm.ChangeConnectedDevice, device);
         }
     }
     else
     {
         Profile.AccessDescriptor.InitializeAccessDescriptors();
     }
     // Запускаем роутер после дампа, чтобы не получилось, что индикаторы и лампы не зажигаются, хотя фактически режимы включены
     _mode             = Mode.Work;
     _routerCoreThread = new Thread(ThreadLoop)
     {
         IsBackground = true
     };
     _routerCoreThread.Start();
     Messenger.AddMessage(MessageToMainForm.RouterStarted);
     if (_mode == Mode.Stop)
     {
         Profile.AccessDescriptor.InitializeAccessDescriptors();
         Dump();
     }
     return(true);
 }