/// /// Copyright (c) 2015-2017 Sensus Metering Systems /// using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Net.Sockets; using System.Xml.Serialization; using Config.Entities; using TBF.BenchControl.Generic; using TBF.Resources; namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead { public class IperlHeadCfg : ComponentCfgBase, Generic.IComponentCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(IperlHeadCfg) })[0]; protected override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl() { return new IperlHeadCfgCtrl(); } /// /// Serialized parameters /// public bool UseTcpIP; public string OptoIPAddress; public ushort OptoTcpipPortNr; public int OptoComPortNr; public int RfidComPortNr; /// 0 = use MuxBoardNr public int MuxBoardNr; /// 0 = use RfidComPort(Nr), otherwise mux. board nr. 1 .. 4 public int Group; /// Number written to QuidoRS to connct the watermeter to RfidComPort, 1 .. 10 /// Procedure parameters [XmlIgnore] public ProcParams ProcParams; public override IParamsProvider GetProcedureParams() { return ProcParams; } public override IParamsProvider CreateProcedureParams(Procedure procedure) { ProcParams procParams = new ProcParams(true); procParams.UpdateProcedureParams(Name, procedure); return procParams; } [XmlIgnore] public MeterType MeterType { get { return (ProcParams != null) ? ProcParams.MeterType : MeterType.AutoDetect; } } /// Private parameterless constructor invoked by all other (public) constructors IperlHeadCfg() { Name = "iPerl"; ParentName = string.Empty; OptoComPortNr = 10; RfidComPortNr = 0; /// = use mux. board MuxBoardNr = 1; ProcParams = new ProcParams(true); } public IperlHeadCfg(IComponentFactory factory) : this() { this.Factory = factory; } public string ToString(int i) { return string.Format("{0} Group1 (mux#)={1}, Group2={2}, Opto=Com{3}, RFID=Com{4}", Name, MuxBoardNr, Group, OptoComPortNr, RfidComPortNr); } } }