public static GKDevice AddDevice(GKDevice parentDevice, GKDriver driver, int intAddress, int? index = null) { var device = new GKDevice() { DriverUID = driver.UID, Driver = driver, IntAddress = intAddress, Parent = parentDevice, }; device.InitializeDefaultProperties(); if (device.DriverType == GKDriverType.RSR2_MVP_Part) device.PredefinedName = "Линия " + (intAddress + 2); if (!index.HasValue) parentDevice.Children.Add(device); else parentDevice.Children.Insert(index.Value, device); AddAutoCreateChildren(device); if (parentDevice.DriverType == GKDriverType.RSR2_MRK) { var secondAndInterval = GetFreeSecondAndInterval(parentDevice, device); var secondProperty = device.Properties.FirstOrDefault(x => x.Name == "Секунда периода (не более ПЕРИОД - 1)"); if (secondProperty != null) secondProperty.Value = secondAndInterval.Item1; var intervalProperty = device.Properties.FirstOrDefault(x => x.Name == "Окно"); if (intervalProperty != null) intervalProperty.Value = secondAndInterval.Item2; } return device; }
public static void AddDevice(GKDevice device) { device.InitializeDefaultProperties(); }