/// /// Copyright (c) 2013-2023 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; using log4net; using Common; using TBF.Rig; namespace TBF.Rig.WaterMeters.Munich { /// /// This component = instance of this class is a placeholder for a combined main watermeter /// public class WaterMeter : ComponentBase, GenericDevices.IWaterMeter { private static readonly ILog log = LogManager.GetLogger(typeof(WaterMeter)); public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } readonly WaterMeterCfg waterMeterCfg; /// 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 1.0; } } /// Pipe diameter [mm] public float DN { get { return 0; } } /// Build lenght [mm] public float L { get { return 0; } } public Mounting Mounting { get { return Mounting.NotSpecified; } } /// Nominal water flow in [m3/h] public FlowNames Qnames { get { return waterMeterCfg.ProcParams.NewQnames ? FlowNames.Q3Q2Q1 : FlowNames.QnQtQmin; } } public double Q4_Qmax { get { return 0; } } public double Q3_Qn { get { return waterMeterCfg.ProcParams.Qn; } } public double Q2_Qt { get { return 0; } } public double Q1_Qmin { get { return 0; } } public double ErrLimHiQ { get { return 2.0; } } public double ErrLimLoQ { get { return 5.0; } } /// Metrological class, etc public string MetrologicalClass { get { return waterMeterCfg.ProcParams.MetrologicalClass; } } public TemperatureClass TemperatureClass { get { return TemperatureClass.NotSpecified; } } public PressureLossClass PressureLossClass { get { return PressureLossClass.NotSpecified; } } public MaxAdmissiblePressure MaxAdmissiblePressure { get { return MaxAdmissiblePressure.NotSpecified; } } public FlowProfileSensitivityClass FlowProfileSensitivityClass { get { return FlowProfileSensitivityClass.NotSpecified; } } /// WaterMeter approval information or signature public string ApprovalInfo { get { return waterMeterCfg.ProcParams.ApprovalInfo; } } public string Certificate { get { return string.Empty; } } public Medium Medium { get { return Medium.ColdWater; } } public string Text1 { get { return string.Empty; } } public string Text2 { get { return string.Empty; } } public string Text3 { get { return string.Empty; } } public string Text4 { get { return string.Empty; } } public string Text5 { get { return string.Empty; } } /// Water: cold / hot public Medium WaterTemp { get { return Medium.NotSpecified; } } /// Properties set by the Begin and the End form public string SerialNr { get; set; } public string EndState { get; set; } public string BeginState { get; set; } public bool Disabled { get; set; } public WaterMeter() { } public WaterMeter(Generic.IComponentCfg cfg) : base(cfg) { waterMeterCfg = cfg as WaterMeterCfg; } public override void Initialize() { ClearData(); log.FatalFormat("{0} initialized: {1}", Name, this); } public void ClearData() { SerialNr = string.Empty; EndState = string.Empty; BeginState = string.Empty; Disabled = false; } } }