/// /// Copyright (c) 2013-2020 Sensus Slovensko a.s. /// using log4net; using Config.Entities; namespace TBF.BenchControl.WaterMeters.WaterMeter { /// /// This component = instance of this class is a placeholder for a combined main watermeter /// public class WaterMeter : ComponentBase, GenericDevices.IWaterMeter, SchematicDrawing.IDrawingItCmpnt { private static readonly ILog log = LogManager.GetLogger(typeof(WaterMeter)); public override string ToString() { return string.Format("WaterMeter({0})", Cfg.ToString(1)); } readonly WaterMeterCfg waterMeterCfg; public SchematicDrawing.IDrawingItem DrawingItem { get { return waterMeterCfg as SchematicDrawing.IDrawingItem; } } /// WaterMeter type (product name) and producer public string ProductName { get { return waterMeterCfg.ProcParams.ProductName; } } public string Producer { get { return waterMeterCfg.ProcParams.Producer; } } public double PulsesPerLtr { get { return waterMeterCfg.ProcParams.PulsesPerLtr; } } /// Pipe diameter [mm] public float DN { get { return waterMeterCfg.ProcParams.DN; } } /// Build lenght [mm] public float L { get { return waterMeterCfg.ProcParams.L; } } public Mounting Mounting { get { return waterMeterCfg.ProcParams.Mounting; } } /// Nominal water flow in [m3/h] public bool NewQnames { get { return waterMeterCfg.ProcParams.NewQnames; } } public float Q4_Qmax { get { return waterMeterCfg.ProcParams.Qmax; } } public float Q3_Qn { get { return waterMeterCfg.ProcParams.Qn; } } public float Q2_Qt { get { return waterMeterCfg.ProcParams.Qt; } } public float Q1_Qmin { get { return waterMeterCfg.ProcParams.Qmin; } } /// Metrological class, etc public string MetrologicalClass { get { return waterMeterCfg.ProcParams.MetrologicalClass; } } public TemperatureClass TemperatureClass { get { return waterMeterCfg.ProcParams.TemperatureClass; } } public PressureLossClass PressureLossClass { get { return waterMeterCfg.ProcParams.PressureLossClass; } } public MaxAdmissiblePressure MaxAdmissiblePressure { get { return waterMeterCfg.ProcParams.MaxAdmissiblePressure; } } public FlowProfileSensitivityClass FlowProfileSensitivityClass { get { return waterMeterCfg.ProcParams.FlowProfileSensitivityClass; } } /// WaterMeter approval information or signature public string ApprovalInfo { get { return waterMeterCfg.ProcParams.ApprovalInfo; } } public string Certificate { get { return waterMeterCfg.ProcParams.Certificate; } } public string Text1 { get { return waterMeterCfg.ProcParams.Text1; } } public string Text2 { get { return waterMeterCfg.ProcParams.Text2; } } public string Text3 { get { return waterMeterCfg.ProcParams.Text3; } } public string Text4 { get { return waterMeterCfg.ProcParams.Text4; } } public string Text5 { get { return waterMeterCfg.ProcParams.Text5; } } /// Water: cold / hot public Config.Entities.Medium Medium { get { return waterMeterCfg.ProcParams.WaterTemp; } } #if IPERL public ushort OriginalCalibFactor; public ushort CalibFactor; public double Q2ErrorWOCorrection; public bool Q2CorrectionDone; public double Q2Correction; public int Q2CorrRFlow; public int Q2CorrLFlow; public double Diff2Hz8Hz; public bool Hz2CorrectionDone; public int Hz2CorrectionFactor; public string FWVersion; #endif /// Properties set by the Begin and the End form or the iPerl head public string SerialNr { get { return serialNr; } set { serialNr = value; } } string serialNr; public string EndState { get { return endState; } set { endState = value; } } string endState; public string BeginState { get { return beginState; } set { beginState = value; } } string beginState; public bool Disabled { get { return disabled; } set { disabled = value; } } bool disabled; public WaterMeter() { ClearData(); } public WaterMeter(Generic.IComponentCfg cfg) : base(cfg) { ClearData(); waterMeterCfg = cfg as WaterMeterCfg; log.Warn(this.ToString()); } public void ClearData() { serialNr = string.Empty; endState = string.Empty; beginState = string.Empty; disabled = false; } } }