/// /// Copyright (c) 2013-2016 Sensus Slovensko a.s. /// using System.Collections.Generic; using System.IO.Ports; using System.Xml.Serialization; using SchematicDrawing; using TBF.Rig.Generic; namespace TBF.Rig.Danfoss.VLT2800 { public class PumpCfg : ComponentCfgBase, Generic.IComponentCfg, IRouteBasedDrawingItem, IDrawingItemWithSetpoint { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(PumpCfg) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl(IList cmpntEntities) { return new PumpCfgCtrl(); } /// /// Serialized parameters /// public int BitNr { get; set; } public bool Inverted { get; set; } /// When true the pump function is inverted: 0 = on, 1 = off public int Delay; /// Delay of the pump function in [s] (affects the duration of transition sequence steps) public PumpProtocol Protocol; /// Modbus or FC with Siemens address public int BusAddress; /// Modbus or FC address in range 1..247 (Modbus) or 1..31 (FC with Siemens address) public int ComPortNr; public int BaudRate; public Parity Parity; public int DataBits; public StopBits StopBits; /// Schematic drawing info public Shape Shape { get; set; } public int X { get; set; } public int Y { get; set; } public Sz Sz { get; set; } public Orient Orient { get; set; } public bool Flip { get; set; } public int LblX { get; set; } public int LblY { get; set; } public Orient LblOrient { get; set; } public int SetpX { get; set; } public int SetpY { get; set; } public Orient SetpOrient { get; set; } public string SetpFormat { get; set; } public Common.Unit SetpUnit { get; set; } [XmlIgnore] public IList GNodes { get; set; } [XmlIgnore] public IList EdgesToSet { get; set; } /// Private parameterless constructor invoked by all other (public) constructors PumpCfg() { GNodes = new List(); EdgesToSet = new List(); } public PumpCfg(IComponentFactory factory) : this() { Shape = Shape.PumpFM; Sz = Sz.M; SetpFormat = "{0:F0} %"; SetpUnit = Common.Unit.Pct; Name = "Pump-Danfoss"; Factory = factory; ParentName = string.Empty; Delay = 1; ComPortNr = 3; /// Default protocol settings (the same as Danfoss VLT2800 factory settings) Protocol = PumpProtocol.FC; BusAddress = 1; BaudRate = 9600; DataBits = 8; Parity = System.IO.Ports.Parity.Even; /// 'Parity.None' is the default value for Protocol = PumpProtocol.Modbus StopBits = System.IO.Ports.StopBits.One; } public string ToString(int i) { return string.Format("Name={0}, Delay={1}s, Protocol={2}, BusAddress={3}, Com{4}, {5}Bd, {6}-bits, parity={7}, stopBits={8}", Name, Delay, Protocol, BusAddress, ComPortNr, BaudRate, DataBits, Parity, StopBits); } } }