void CreateRemoteDevices() { var tableGroup = new TableGroup("Указатель на таблицу Внешних ИУ", -1); DevicesTableGroups.Add(tableGroup); foreach (var binaryRemoteDevice in BinaryPanel.BinaryRemoteDevices) { var table = RemoteDeviceTables.FirstOrDefault(x => x.UID == binaryRemoteDevice.Device.UID); if (table == null) { table = new EffectorDeviceTable(this, binaryRemoteDevice, true); Tables.Add(table); tableGroup.Tables.Add(table); RemoteDeviceTables.Add(table); } } }
void CreateDevices() { var devicesGroupHelper = new DevicesGroupHelper(BinaryPanel); foreach (var devicesGroup in devicesGroupHelper.DevicesGroups) { if (devicesGroup.IsRemoteDevicesPointer) { CreateRemoteDevices(); continue; } var tableGroup = new TableGroup(devicesGroup.Name, devicesGroup.Length); DevicesTableGroups.Add(tableGroup); foreach (var device in devicesGroup.BinaryDevices) { TableBase deviceTable = null; if (device.Device.Driver.Category == DeviceCategoryType.Sensor) { deviceTable = new SensorDeviceTable(this, device.Device); } if (device.Device.Driver.Category == DeviceCategoryType.Effector) { deviceTable = new EffectorDeviceTable(this, device, false); } if (deviceTable != null) { Tables.Add(deviceTable); tableGroup.Tables.Add(deviceTable); } } } }