internal void AssadConfig(Assad.MHconfigTypeDevice innerDevice, bool all) { if (all) { Services.DeviceManager.Config(innerDevice); } }
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; }
public void Config(Assad.MHconfigTypeDevice innerDevice) { AssadBase device = Create(innerDevice); device.Parent = null; device.SetInnerDevice(innerDevice); AddChild(innerDevice, device); }
void AddChild(Assad.modelInfoType parent) { if (parent.type != null) foreach (var child in parent.type) { ModelInfos.Add(child); AddChild(child); } }
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; } }
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); } }
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 }); } } } } } }
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; }
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(); }
public Assad.DeviceType QueryAbility(Assad.MHqueryAbilityType content) { var device = Configuration.BaseDevices.First(a => a.DeviceId == content.deviceId); Assad.DeviceType ability = device.QueryAbility(); return ability; }
public override void SetInnerDevice(Assad.MHconfigTypeDevice innerDevice) { }
string GetDriverId(Assad.MHconfigTypeDevice innerDevice) { string[] separatedTypes = innerDevice.type.Split('.'); string driverId = separatedTypes[2]; return driverId; }
public abstract void SetInnerDevice(Assad.MHconfigTypeDevice innerDevice);