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 void CheckState() { DeviceStatesManager = new DeviceStatesManager(); PanelDevice.DeviceState.States = new List<DeviceDriverState>(); var statusBytes = ServerHelper.GetPanelStatus(PanelDevice, false); if (statusBytes != null && statusBytes.Count == 4) { BitArray = new BitArray(new byte[] { statusBytes[3] }); switch (PanelDevice.Driver.DriverType) { case DriverType.IndicationBlock: case DriverType.PDU_PT: UpdatePDU_PT(); break; case DriverType.PDU: UpdatePDU_OrBI(); break; case DriverType.UOO_TL: case DriverType.MS_3: case DriverType.MS_4: UpdateUOOTL(); break; } OnConnectionAppeared(); } else { OnConnectionLost(); } }
public MonitoringPanel(Device device) { PanelDevice = device; Requests = new List<Request>(); ResetStateIds = new List<string>(); DevicesToIgnore = new List<Device>(); ZonesToSetGuard = new List<Zone>(); ZonesToResetGuard = new List<Zone>(); CommandItems = new List<CommandItem>(); RealChildren = PanelDevice.GetRealChildren(); DeviceStatesManager = new DeviceStatesManager(); }
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) { ; } }