示例#1
0
		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();
				}
			}
		}
示例#2
0
		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();
			}
		}
示例#3
0
		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();
		}
示例#4
0
		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;
		}
示例#5
0
		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)
			{
				;
			}
		}