/// /// Copyright (c) 2013-2016 Sensus Metering Systems /// using System; using System.IO; using System.Collections.Generic; using System.Xml.Serialization; using TBF.Rig.Generic; namespace TBF.Rig.Elde.Diverter { public class DiverterCfg : ComponentCfgBase, IChildComponentCfg, GenericDevices.ICalibInfoCfg { public static XmlSerializer Serializer = XmlSerializer.FromTypes(new[] { typeof(DiverterCfg) })[0]; public override XmlSerializer GetSerializer() { return Serializer; } public IComponentCfgCtrl GetControl(IList cmpntEntities) { return new DiverterCfgCtrl(); } /// /// Serialized parameters /// public int BitPosition; /// 0..63 public int AdcNr; /// 0..15(?), number of the analog input public int AdcValueToSink; /// 0..1023 public int AdcValueToTank; /// 0..1023 public int StartingLevel; /// 0..100 in %, threshold for the ADC value to start the test public int ThresholdLo; /// 0..100 in %, threshold for low level when diverter transition time is measured public int ThresholdHi; /// 0..100 in %, threshold for high level when diverter transition time is measured public int DfltSwithTimeStartMs; /// Default diverter transition time 'start' or 'to tank' in ms public int DfltSwithTimeEndMs; /// Default diverter transition time 'end' or 'to sink' in ms /// Calibration info serialized parameters displayed in Metrology tab page public string CalibCertificateNr { get; set; } public string CertPath { get; set; } public DateTime CalibDate { get; set; } public DateTime CalibValidDate { get; set; } /// Private parameterless constructor invoked by all other (public) constructors DiverterCfg() { } public DiverterCfg(IComponentFactory factory) : this() { Factory = factory; Name = "Div"; ParentName = "CB"; BitPosition = 0; AdcNr = 5; /// Div1: AdcNr=5 , Div2: AdcNr=6 AdcValueToSink = 100; AdcValueToTank = 500; StartingLevel = 50; ThresholdLo = 10; ThresholdHi = 90; CalibCertificateNr = string.Empty; CertPath = string.Empty; CalibDate = TBF.UI.Constants.MinDate; CalibValidDate = TBF.UI.Constants.MaxDate; } public string ToString(int i) { return string.Format("Name={0}, Parent={1}, Bit={2}, ADC#={3}, ADC2Sink={4}, ADC2Tank={5}, Gate={6}%, Lo={7}%, Lo={8}%", Name, (string.IsNullOrEmpty(ParentName) ? "-" : ParentName), BitPosition, AdcNr, AdcValueToSink, AdcValueToTank, StartingLevel, ThresholdLo, ThresholdHi); } } }