public static void StartMonitoring(Device device = null) { if (device == null) { var deviceStatesManager = new DeviceStatesManager(); deviceStatesManager.CanNotifyClients = false; foreach (var childDevice in ConfigurationManager.Devices) { if (childDevice.IsMonitoringDisabled) { deviceStatesManager.ForseUpdateDeviceStates(childDevice); } } USBManager.UsbRemoved += new Action(USBManager_UsbRemoved); MonitoringUSBs = new List<MonitoringUSB>(); foreach (var usbDevice in ConfigurationManager.DeviceConfiguration.RootDevice.Children) { var monitoringUSB = new MonitoringUSB(usbDevice); if (monitoringUSB.MonitoringPanels.Count > 0 || monitoringUSB.MonitoringNonPanels.Count > 0) { MonitoringUSBs.Add(monitoringUSB); } } } foreach (var monitoringUSB in MonitoringUSBs) { if (device == null || monitoringUSB.USBDevice.UID == device.ParentUSB.UID) { monitoringUSB.StartMonitoring(); } } }
public bool Initialize() { DeviceStatesManager = new DeviceStatesManager(); IsInitialized = IsHashEqual(); if (!IsInitialized) { PanelDevice.DeviceState.IsDBMissmatch = true; DeviceStatesManager.ForseUpdateDeviceStates(PanelDevice); return false; } else { PanelDevice.DeviceState.IsDBMissmatch = false; DeviceStatesManager.ForseUpdateDeviceStates(PanelDevice); } return true; }
void CheckConnection() { try { //if (USBDevice.Driver.DriverType == DriverType.USB_Rubezh_2AM || // USBDevice.Driver.DriverType == DriverType.USB_Rubezh_2OP || // USBDevice.Driver.DriverType == DriverType.USB_Rubezh_4A || // USBDevice.Driver.DriverType == DriverType.USB_BUNS || // USBDevice.Driver.DriverType == DriverType.USB_BUNS_2 || // USBDevice.Driver.DriverType == DriverType.USB_Rubezh_P) //{ // if (MonitoringPanels.Count == 1 && MonitoringPanels.FirstOrDefault().IsInitialized) // return; //} var response = USBManager.Send(USBDevice, "Пинг", 0x01, 0x12); if (response.HasError) { if (USBDevice.DeviceState.IsUsbConnectionLost == false) { USBDevice.DeviceState.IsUsbConnectionLost = true; var deviceStatesManager = new DeviceStatesManager(); deviceStatesManager.ForseUpdateDeviceStates(USBDevice); foreach (var monitoringPanel in MonitoringPanels) { monitoringPanel.OnConnectionLost(); } } USBManager.ReInitialize(USBDevice); //USBManager.Initialize(); } else { if (USBDevice.DeviceState.IsUsbConnectionLost == true) { USBDevice.DeviceState.IsUsbConnectionLost = false; var deviceStatesManager = new DeviceStatesManager(); deviceStatesManager.ForseUpdateDeviceStates(USBDevice); foreach (var monitoringPanel in MonitoringPanels) { monitoringPanel.OnConnectionAppeared(); } } } } catch (Exception e) { ; } }