void AddRemoteZoneToPanel(BinaryPanel binaryPanel, Zone zone) { if (!binaryPanel.RemoteZones.Contains(zone)) { var remoteBinaryPanels = new HashSet<Device>(); foreach (var zoneDevice in zone.DevicesInZone) { var remoteBinaryPanel = BinaryPanels.FirstOrDefault(x => x.ParentPanel == zoneDevice.ParentPanel); if (remoteBinaryPanel.ParentPanel.UID != binaryPanel.ParentPanel.UID) { remoteBinaryPanels.Add(remoteBinaryPanel.ParentPanel); } } foreach (var remoteBinaryPanel in remoteBinaryPanels) { var zoneBinaryPanel = BinaryPanels.FirstOrDefault(x => x.ParentPanel == remoteBinaryPanel); var binaryZone = new BinaryZone(zone) { IsRemote = true, ParentPanel = remoteBinaryPanel }; binaryZone.BinaryPanels.Add(binaryPanel); binaryZone.BinaryPanels.Add(zoneBinaryPanel); binaryPanel.RemoteZones.Add(zone); binaryPanel.BinaryRemoteZones.Add(binaryZone); } } }
void CreatePanels() { BinaryPanels = new List<BinaryPanel>(); foreach (var device in ConfigurationManager.Devices) { if (device.Driver.IsPanel) { var binaryPanel = new BinaryPanel(device); binaryPanel.CreatreDevices(); BinaryPanels.Add(binaryPanel); } } }
void AddLocalZoneToPanel(BinaryPanel binaryPanel, Zone zone) { var binaryZone = new BinaryZone(zone) { ParentPanel = binaryPanel.ParentPanel }; if (!binaryPanel.LocalZones.Contains(zone)) { binaryPanel.LocalZones.Add(zone); binaryPanel.BinaryLocalZones.Add(binaryZone); } if (!binaryZone.BinaryPanels.Contains(binaryPanel)) { binaryZone.BinaryPanels.Add(binaryPanel); } }
public DevicesGroupHelper(BinaryPanel binaryPanel) { var startDateTime = DateTime.Now; BinaryPanel = binaryPanel; ParentPanel = binaryPanel.ParentPanel; DevicesGroups = new List<DevicesGroup>(); CreateDevicesGroup("Указатель на таблицу РМ", -1, DriverType.RM_1); CreateDevicesGroup("Указатель на таблицу МПТ", 0, DriverType.MPT); CreateDevicesGroup("Указатель на таблицу Дымовых", 12, DriverType.SmokeDetector); CreateDevicesGroup("Указатель на таблицу Тепловых", 0, DriverType.HeatDetector); CreateDevicesGroup("Указатель на таблицу Комбинированных", 0, DriverType.CombinedDetector); CreateDevicesGroup("Указатель на таблицу АМ-1", -1, DriverType.AM_1, DriverType.ShuzOffButton, DriverType.ShuzOnButton, DriverType.ShuzUnblockButton, DriverType.StartButton, DriverType.StopButton, DriverType.AutomaticButton); CreateDevicesGroup("Указатель на таблицу ИПР", 0, DriverType.HandDetector); CreateDevicesGroup("Указатель на таблицу Охранных извещателей", 0, DriverType.AM1_O); var OuterDevices_Group = CreateDevicesGroup("Указатель на таблицу Внешних ИУ", -1, DriverType.Computer); OuterDevices_Group.IsRemoteDevicesPointer = true; CreateDevicesGroup("Указатель на таблицу МДУ", 0, DriverType.Computer); CreateDevicesGroup("Указатель на таблицу БУНС", -1, DriverType.PumpStation); CreateDevicesGroup("Указатель на таблицу АМП-4", 0, DriverType.AMP_4); CreateDevicesGroup("Указатель на таблицу МРО", -1, DriverType.MRO); CreateDevicesGroup("Указатель на таблицу Задвижек", -1, DriverType.Valve); CreateDevicesGroup("Указатель на таблицу АМ-Т", -1, DriverType.AM1_T); CreateDevicesGroup("Указатель на таблицу АМТ-4", 0, DriverType.AMT_4); CreateDevicesGroup("Указатель на таблицу ППУ", 0, DriverType.Computer); CreateDevicesGroup("Указатель на таблицу АСПТ", 0, DriverType.ASPT); CreateDevicesGroup("Указатель на таблицу МУК-1Э", -1, DriverType.MDU); CreateDevicesGroup("Указатель на таблицу Выход реле", -1, DriverType.Exit); CreateDevicesGroup("Указатель на таблицу радиоканальный ручной", 0, DriverType.RadioHandDetector); CreateDevicesGroup("Указатель на таблицу радиоканальный дымовой", 0, DriverType.RadioSmokeDetector); CreateDevicesGroup("Указатель на таблицу МРО-2М", -1, DriverType.MRO_2); var deltaMiliseconds = (DateTime.Now - startDateTime).Milliseconds; totalMiliseconds += deltaMiliseconds; Trace.WriteLine("TotalMiliseconds=" + totalMiliseconds.ToString()); }