public static List<DevicesOnShleif> GetLocalForZone(Device parentPanel, Zone zone) { var devicesOnShleifs = new List<DevicesOnShleif>(); for (int i = 1; i <= parentPanel.Driver.ShleifCount; i++) { var devicesOnShleif = new DevicesOnShleif() { ShleifNo = i }; devicesOnShleifs.Add(devicesOnShleif); } var effectorDevices = GetDevicesInLogic(zone); foreach (var device in effectorDevices.OrderBy(x => x.IntAddress)) { if (device.ParentPanel.UID == parentPanel.UID) { var shleifNo = device.ShleifNo; if (device.Driver.DriverType == DriverType.PumpStation) shleifNo = 1; var devicesOnShleif = devicesOnShleifs.FirstOrDefault(x => x.ShleifNo == shleifNo); if (devicesOnShleif != null) { devicesOnShleif.Devices.Add(device); } } } return devicesOnShleifs; }
public static List<DevicesOnShleif> GetLocalForPanel(Device parentPanel) { var devicesOnShleifs = new List<DevicesOnShleif>(); for (int i = 1; i <= parentPanel.Driver.ShleifCount; i++) { var devicesOnShleif = new DevicesOnShleif() { ShleifNo = i }; devicesOnShleifs.Add(devicesOnShleif); } foreach (var device in parentPanel.GetRealChildren()) { if (device.ParentPanel.UID == parentPanel.UID) { var devicesOnShleif = devicesOnShleifs.FirstOrDefault(x => x.ShleifNo == device.ShleifNo); if (devicesOnShleif != null) { devicesOnShleif.Devices.Add(device); } } } return devicesOnShleifs; }