示例#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 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;
		}
示例#3
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)
			{
				;
			}
		}