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); }