/// /// Copyright (c) 2013-2015 Sensus Metering Systems /// using System.Collections.Generic; using TBF.BenchControl.GenericDevices; namespace TBF.BenchControl { public class OutputPath { public int ItemNr; public string Name; public float Qfrom; public float Qto; public IRegulValve RegulValve; public IFlowMeter FlowMeter; public float PidCoef; public IValve StartValve; public IDiverter Diverter; public ITempMeter TempDiv; public IBalance Balance; public IValve EmptyTankValve; public IList ValvesOpen; public IList ValvesClose; /// Constructor from name, the rest is empty public OutputPath(string name, int itemNr) { ItemNr = itemNr; Name = name; ValvesOpen = new List(); ValvesClose = new List(); } /// Constructor from data entity public OutputPath(Entities.OutputPath entity, IList components) : this(entity.Name, entity.ItemNr) { Qfrom = entity.Qfrom; Qto = entity.Qto; RegulValve = (IRegulValve)TbfComponents.FindComponent(entity.RegulValve, components); FlowMeter = (IFlowMeter)TbfComponents.FindComponent(entity.FlowMeter, components); PidCoef = entity.PidCoef; StartValve = (IValve)TbfComponents.FindComponent(entity.StartValve, components); Diverter = (IDiverter)TbfComponents.FindComponent(entity.Diverter, components); TempDiv = (ITempMeter)TbfComponents.FindComponent(entity.TempDiv, components); Balance = (IBalance)TbfComponents.FindComponent(entity.Balance, components); EmptyTankValve = (IValve)TbfComponents.FindComponent(entity.EmptyTankValve, components); string[] vOpen = entity.ValvesOpen.Split(new char[] { ';' }); ValvesOpen = new List(); foreach (var vName in vOpen) ValvesOpen.Add((IValve)TbfComponents.FindComponent(vName, components)); string[] vClose = entity.ValvesClose.Split(new char[] { ';' }); ValvesClose = new List(); foreach (var vName in vClose) ValvesClose.Add((IValve)TbfComponents.FindComponent(vName, components)); } } }