Beispiel #1
0
		internal void AssadConfig(Assad.MHconfigTypeDevice innerDevice, bool all)
		{
			if (all)
			{
				Services.DeviceManager.Config(innerDevice);
			}
		}
Beispiel #2
0
		AssadBase Create(Assad.MHconfigTypeDevice innerDevice)
		{
			AssadBase assadBase;
			string driverId = GetDriverId(innerDevice);
			string driverName = DriversHelper.GetDriverNameById(driverId);
			switch (driverName)
			{
				case "zone":
					var assadZone = new AssadZone();
					Configuration.Zones.Add(assadZone);
					assadBase = assadZone;
					break;
				case "monitor":
					var assadMonitor = new AssadMonitor();
					Configuration.Monitor = assadMonitor;
					assadBase = assadMonitor;
					break;
				default:
					var assadDevice = new AssadDevice();
					assadDevice.DriverId = driverId;
					Configuration.Devices.Add(assadDevice);
					assadBase = assadDevice;
					break;
			}
			assadBase.DeviceId = innerDevice.deviceId;
			Configuration.BaseDevices.Add(assadBase);
			return assadBase;
		}
Beispiel #3
0
		public void Config(Assad.MHconfigTypeDevice innerDevice)
		{
			AssadBase device = Create(innerDevice);
			device.Parent = null;
			device.SetInnerDevice(innerDevice);
			AddChild(innerDevice, device);
		}
Beispiel #4
0
 void AddChild(Assad.modelInfoType parent)
 {
     if (parent.type != null)
         foreach (var child in parent.type)
         {
             ModelInfos.Add(child);
             AddChild(child);
         }
 }
Beispiel #5
0
		public override void SetInnerDevice(Assad.MHconfigTypeDevice innerDevice)
		{
			if (innerDevice.param != null)
			{
				var zoneParameter = innerDevice.param.FirstOrDefault(x => x.param == "Номер зоны");
				if (zoneParameter != null)
					ZoneNo = zoneParameter.value;
			}
		}
Beispiel #6
0
		void AddChild(Assad.MHconfigTypeDevice innerDevice, AssadBase parent)
		{
			if (innerDevice.device != null)
				foreach (var innerChild in innerDevice.device)
				{
					AssadBase child = Create(innerChild);
					child.Parent = parent;
					parent.Children.Add(child);
					child.SetInnerDevice(innerChild);
					AddChild(innerChild, child);
				}
		}
Beispiel #7
0
		public void AssadExecuteCommand(Assad.MHdeviceControlType controlType)
		{
			var assadDevice = Configuration.Devices.First(x => x.DeviceId == controlType.deviceId);
			string commandName = controlType.cmdId;
			if (commandName == "Обновить")
			{
				var cPqueryConfigurationType = new Assad.CPqueryConfigurationType();
				NetManager.Send(cPqueryConfigurationType, null);
			}
			else
			{
				var device = FiresecManager.Devices.FirstOrDefault(x => x.PathId == assadDevice.Id);
				if (device != null)
				{
					if (commandName.StartsWith("Сброс "))
					{
						commandName = commandName.Replace("Сброс ", "");

						if (device.Driver.DriverType == DriverType.Computer)
						{
							foreach (var resetDevice in FiresecManager.Devices)
							{
								if (resetDevice.Driver.States.Any(x => ((x.Name == commandName) && (x.IsManualReset))))
								{
									var resetItem = new ResetItem();
									resetItem.DeviceState = resetDevice.DeviceState;
									var deviceDriverState = resetDevice.DeviceState.States.FirstOrDefault(x => x.DriverState.Name == commandName);
									if (deviceDriverState != null)
									{
										resetItem.States = new List<DeviceDriverState>() { deviceDriverState };
										FiresecManager.FiresecDriver.ResetStates(new List<ResetItem>() { resetItem });
									}
								}
							}
						}
						else
						{
							var resetItem = new ResetItem();
							FiresecManager.FiresecDriver.ResetStates(new List<ResetItem>() { resetItem });
							var deviceDriverState = device.DeviceState.States.FirstOrDefault(x => x.DriverState.Name == commandName);
							if (deviceDriverState != null)
							{
								resetItem.States = new List<DeviceDriverState>() { deviceDriverState };
								FiresecManager.FiresecDriver.ResetStates(new List<ResetItem>() { resetItem });
							}
						}
					}
				}
			}
		}
Beispiel #8
0
		public Assad.DeviceType[] QueryState(Assad.MHqueryStateType content)
		{
			var assadBase = Configuration.BaseDevices.FirstOrDefault(a => a.DeviceId == content.deviceId);
			if (assadBase != null)
			{
				List<AssadBase> devices = assadBase.FindAllChildren();

				var deviceItems = new List<Assad.DeviceType>();
				foreach (var childAssadBase in devices)
				{
					deviceItems.Add(childAssadBase.GetStates());
				}
				return deviceItems.ToArray();
			}
			return null;
		}
Beispiel #9
0
		public override void SetInnerDevice(Assad.MHconfigTypeDevice innerDevice)
		{
			if (innerDevice.param == null)
				return;

			var addressParameter = innerDevice.param.FirstOrDefault(x => x.param == "Адрес");
			if (addressParameter != null)
				Address = addressParameter.value;
			else
				Address = null;

			var driver = FiresecManager.Drivers.FirstOrDefault(x => x.UID == new Guid(DriverId));
			switch (driver.DriverType)
			{
				case DriverType.Computer:
				case DriverType.PumpStation:
				case DriverType.JokeyPump:
				case DriverType.Compressor:
				case DriverType.DrenazhPump:
				case DriverType.CompensationPump:
					Address = "0";
					break;

				case DriverType.MS_1:
				case DriverType.MS_2:
					string serialNo = null;
					if (innerDevice.param.Any(x => x.param == "Серийный номер"))
						serialNo = innerDevice.param.FirstOrDefault(x => x.param == "Серийный номер").value;

					if (string.IsNullOrEmpty(serialNo))
					{
						Address = "0";
					}
					else
					{
						Address = serialNo;
					}
					break;
			}

			SetPath();
		}
Beispiel #10
0
		public Assad.DeviceType QueryAbility(Assad.MHqueryAbilityType content)
		{
			var device = Configuration.BaseDevices.First(a => a.DeviceId == content.deviceId);
			Assad.DeviceType ability = device.QueryAbility();
			return ability;
		}
Beispiel #11
0
		public override void SetInnerDevice(Assad.MHconfigTypeDevice innerDevice)
		{
		}
Beispiel #12
0
		string GetDriverId(Assad.MHconfigTypeDevice innerDevice)
		{
			string[] separatedTypes = innerDevice.type.Split('.');
			string driverId = separatedTypes[2];
			return driverId;
		}
Beispiel #13
0
		public abstract void SetInnerDevice(Assad.MHconfigTypeDevice innerDevice);