Example #1
0
		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;
		}
Example #2
0
		public static void AddDevice(GKDevice device)
		{
			device.InitializeDefaultProperties();
		}