From ab140cc6af306e5e02ab90be222d4a4358c141c7 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Thu, 21 Apr 2022 19:55:30 +0200 Subject: [PATCH] IFlowMeter, IPressureMeter and ITempMeter extended to support Process tab page updates. --- TBF/Rig/Dummy/FlowMeter/FlowMeter.cs | 2 ++ TBF/Rig/GenericDevices/IFlowMeter.cs | 6 +++++- TBF/Rig/GenericDevices/IPressureMeter.cs | 12 ++++++++++-- TBF/Rig/GenericDevices/ITempMeter.cs | 10 +++++++++- TBF/Rig/Keithley/TempMeter/TempMeter.cs | 9 +++++++++ .../Modbus/PressureMeter/Meret/PressureMeter.cs | 4 ++++ .../Modbus/PressureMeter/Meret/PressureMeterCfg.cs | 2 +- TBF/Rig/Modbus/TempControl/Easytherm/TControl.cs | 14 +++++++++++--- TBF/Rig/Modbus/TempControl/Novus/TControl.cs | 4 ++++ TBF/Rig/Modbus/TempMeter/Groch/TempMeter.cs | 8 +++++--- TBF/Rig/Modbus/TempMeter/Groch/TempMeterCfg.cs | 2 +- TBF/Rig/Modbus/TempMeter/Meret/TempMeter.cs | 4 ++++ TBF/Rig/Modbus/UltrasoundLevelMeter/LevelMeter.cs | 2 +- TBF/Rig/Modbus/WaterAnalyzer/Analyzer.cs | 2 +- TBF/Rig/Uni/FlowMeter/FlowMeter.cs | 6 ++++-- TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs | 8 ++++---- TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs | 2 ++ 17 files changed, 77 insertions(+), 20 deletions(-) diff --git a/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs b/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs index 2c33c1a38..5dce7eb2e 100644 --- a/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs +++ b/TBF/Rig/Dummy/FlowMeter/FlowMeter.cs @@ -37,6 +37,8 @@ namespace TBF.Rig.Dummy.FlowMeter set { } } + public string MsrdFormat { get { return flowMeterCfg.MsrdFormat; } } + public Common.Unit MsrdUnit { get { return flowMeterCfg.MsrdUnit; } } public double MsrdValLimLo { get { return flowMeterCfg.MsrdValLimLo; } set { flowMeterCfg.MsrdValLimLo = value; } } public double MsrdValLimHi { get { return flowMeterCfg.MsrdValLimHi; } set { flowMeterCfg.MsrdValLimHi = value; } } diff --git a/TBF/Rig/GenericDevices/IFlowMeter.cs b/TBF/Rig/GenericDevices/IFlowMeter.cs index 83a1be1f1..88e03010d 100644 --- a/TBF/Rig/GenericDevices/IFlowMeter.cs +++ b/TBF/Rig/GenericDevices/IFlowMeter.cs @@ -68,6 +68,10 @@ namespace TBF.Rig.GenericDevices bool MsrmntAvailable { get; } double MeasuredVal { get; } + double MsrdValLimLo { get; } + double MsrdValLimHi { get; } + string MsrdFormat { get; } + Common.Unit MsrdUnit { get; } string AltString { get; } - } + } } diff --git a/TBF/Rig/GenericDevices/IPressureMeter.cs b/TBF/Rig/GenericDevices/IPressureMeter.cs index 78336a616..6e70f5c07 100644 --- a/TBF/Rig/GenericDevices/IPressureMeter.cs +++ b/TBF/Rig/GenericDevices/IPressureMeter.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2013-2015 Sensus Metering Systems +/// Copyright (c) 2013-2022 Sensus Slovensko a.s. /// using System.Collections.Generic; using Config.Entities; @@ -27,5 +27,13 @@ namespace TBF.Rig.GenericDevices /// Event returned when measurement done /// ReadPressureOp instance reference casted to IOperaton IOperation ReadPressureOp(ref DoubleBox pressure, Event pressureDone); - } + + bool MsrmntAvailable { get; } + double MeasuredVal { get; } + double MsrdValLimLo { get; } + double MsrdValLimHi { get; } + string MsrdFormat { get; } + Common.Unit MsrdUnit { get; } + string AltString { get; } + } } diff --git a/TBF/Rig/GenericDevices/ITempMeter.cs b/TBF/Rig/GenericDevices/ITempMeter.cs index c84773a0d..94f9c0923 100644 --- a/TBF/Rig/GenericDevices/ITempMeter.cs +++ b/TBF/Rig/GenericDevices/ITempMeter.cs @@ -30,5 +30,13 @@ namespace TBF.Rig.GenericDevices /// Reference to a variable for the temperature in Celsius /// ReadTempInOp instance reference casted to IOperaton IOperation ReadTempOp(ref DoubleBox temp, Event tempDone); - } + + bool MsrmntAvailable { get; } + double MeasuredVal { get; } + double MsrdValLimLo { get; } + double MsrdValLimHi { get; } + string MsrdFormat { get; } + Common.Unit MsrdUnit { get; } + string AltString { get; } + } } diff --git a/TBF/Rig/Keithley/TempMeter/TempMeter.cs b/TBF/Rig/Keithley/TempMeter/TempMeter.cs index bfe34750a..f2186e7bd 100644 --- a/TBF/Rig/Keithley/TempMeter/TempMeter.cs +++ b/TBF/Rig/Keithley/TempMeter/TempMeter.cs @@ -19,6 +19,15 @@ namespace TBF.Rig.Keithley.TempMeter readonly TempMeterCfg tempMtrCfg; /// configuration public SchematicDrawing.IDrawingItem DrawingItem { get { return tempMtrCfg as SchematicDrawing.IDrawingItem; } } + public string MsrdFormat { get { return tempMtrCfg.MsrdFormat; } } + public Unit MsrdUnit { get { return tempMtrCfg.MsrdUnit; } } + public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, tempMtrCfg.MsrdValLimLo); } } + public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, tempMtrCfg.MsrdValLimHi); } } + + public bool MsrmntAvailable { get { return true; } } + public double MeasuredVal { get { return ReadTemperature(); } } + public string AltString { get { return string.Empty; } } + public readonly Multimeter Multimeter; /// parent component public int Channel { get { return tempMtrCfg.Channel; } } /// 1..5 diff --git a/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeter.cs b/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeter.cs index 73b1124f4..0e1e7d910 100644 --- a/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeter.cs +++ b/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeter.cs @@ -26,6 +26,10 @@ namespace TBF.Rig.Modbus.PressureMeter.Meret public bool MsrmntAvailable { get { return true; } } public double MeasuredVal { get { return receivedPressure; } } + public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, pressureMtrCfg.MsrdValLimLo); } } + public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, pressureMtrCfg.MsrdValLimHi); } } + public Unit MsrdUnit { get { return pressureMtrCfg.MsrdUnit; } } + public string MsrdFormat { get { return pressureMtrCfg.MsrdFormat; } } public string AltString { get { return string.Empty; } } int ticketNumber; /// 0 .. number of devices registered for regular polling - 1 diff --git a/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeterCfg.cs b/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeterCfg.cs index 9df230d9b..b650f6b1d 100644 --- a/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeterCfg.cs +++ b/TBF/Rig/Modbus/PressureMeter/Meret/PressureMeterCfg.cs @@ -30,7 +30,7 @@ namespace TBF.Rig.Modbus.PressureMeter.Meret public int ModbusAddress; /// 0 (1..254) public double DefaultPressure; /// 1 public string MsrdFormat { get; set; } /// 2 - public Unit MsrdUnit { get; set; } /// 3 + public Unit MsrdUnit { get; set; } /// 3 public double MsrdValLimLo { get; set; } /// 4 public double MsrdValLimHi { get; set; } /// 5 diff --git a/TBF/Rig/Modbus/TempControl/Easytherm/TControl.cs b/TBF/Rig/Modbus/TempControl/Easytherm/TControl.cs index e3d22f6e0..763cdaafa 100644 --- a/TBF/Rig/Modbus/TempControl/Easytherm/TControl.cs +++ b/TBF/Rig/Modbus/TempControl/Easytherm/TControl.cs @@ -4,9 +4,10 @@ using System; using System.Collections.Generic; using log4net; +using Common; +using Config.Entities; using TBF.Rig.Generic; using TBF.Boxes; -using Config.Entities; namespace TBF.Rig.Modbus.TempControl.Easytherm { @@ -18,6 +19,15 @@ namespace TBF.Rig.Modbus.TempControl.Easytherm readonly TControlCfg easythermCfg; Common.Modbus modbus; + int ticketNumber; /// 0 .. number of devices registered for regular polling - 1 + + public bool MsrmntAvailable { get { return true; } } + public double MeasuredVal { get { return ReadTemperature(); } } + public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, easythermCfg.MsrdValLimLo); } } + public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, easythermCfg.MsrdValLimHi); } } + public Unit MsrdUnit { get { return easythermCfg.MsrdUnit; } } + public string MsrdFormat { get { return easythermCfg.MsrdFormat; } } + public string AltString { get { return string.Empty; } } private float temperatureSetPoint; private bool temperatureSetPointValid; @@ -25,8 +35,6 @@ namespace TBF.Rig.Modbus.TempControl.Easytherm public float requiredTemp { get { return easythermCfg.ProcParams.RequiredTemp; } } - int ticketNumber; /// 0 .. number of devices registered for regular polling - 1 - public TControl() { } diff --git a/TBF/Rig/Modbus/TempControl/Novus/TControl.cs b/TBF/Rig/Modbus/TempControl/Novus/TControl.cs index 5e30d1485..f92454bb7 100644 --- a/TBF/Rig/Modbus/TempControl/Novus/TControl.cs +++ b/TBF/Rig/Modbus/TempControl/Novus/TControl.cs @@ -35,6 +35,10 @@ namespace TBF.Rig.Modbus.TempControl.Novus public bool MsrmntAvailable { get { return true; } } public double MeasuredVal { get { return ReadTemperature(); } } + public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, novusCfg.MsrdValLimLo); } } + public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, novusCfg.MsrdValLimHi); } } + public Unit MsrdUnit { get { return novusCfg.MsrdUnit; } } + public string MsrdFormat { get { return novusCfg.MsrdFormat; } } public string AltString { get { return string.Empty; } } public double SetpointVal diff --git a/TBF/Rig/Modbus/TempMeter/Groch/TempMeter.cs b/TBF/Rig/Modbus/TempMeter/Groch/TempMeter.cs index 4545bc2aa..ec28b1e4c 100644 --- a/TBF/Rig/Modbus/TempMeter/Groch/TempMeter.cs +++ b/TBF/Rig/Modbus/TempMeter/Groch/TempMeter.cs @@ -29,17 +29,19 @@ namespace TBF.Rig.Modbus.TempMeter.Groch double A4 { get { return tempMtrCfg.A4; } } double A5 { get { return tempMtrCfg.A5; } } double DefaultTemp { get { return tempMtrCfg != null ? Units.ConvertFrom(tempMtrCfg.MsrdUnit, tempMtrCfg.DefaultTemp) : 0; } } - double MsrdValLimLo { get { return Units.ConvertFrom(tempMtrCfg.MsrdUnit, tempMtrCfg.MsrdValLimLo); } } - double MsrdValLimHi { get { return Units.ConvertFrom(tempMtrCfg.MsrdUnit, tempMtrCfg.MsrdValLimHi); } } public SchematicDrawing.IDrawingItem DrawingItem { get { return tempMtrCfg as SchematicDrawing.IDrawingItem; } } Common.Modbus modbus; static int[] tempRaw = new int[TempMeterCfg.ChannelsCount]; - + public bool MsrmntAvailable { get { return true; } } public double MeasuredVal { get { return ReadTemperature(); } } + public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, tempMtrCfg.MsrdValLimLo); } } + public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, tempMtrCfg.MsrdValLimHi); } } + public string MsrdFormat { get { return tempMtrCfg.MsrdFormat; } } + public Unit MsrdUnit { get { return tempMtrCfg.MsrdUnit; } } public string AltString { get { return "Invalid format"; } } int ticketNumber; /// 0 .. number of devices registered for regular polling - 1 diff --git a/TBF/Rig/Modbus/TempMeter/Groch/TempMeterCfg.cs b/TBF/Rig/Modbus/TempMeter/Groch/TempMeterCfg.cs index 34a82ce7c..c87a6bf41 100644 --- a/TBF/Rig/Modbus/TempMeter/Groch/TempMeterCfg.cs +++ b/TBF/Rig/Modbus/TempMeter/Groch/TempMeterCfg.cs @@ -38,7 +38,7 @@ namespace TBF.Rig.Modbus.TempMeter.Groch public double A5; /// 6 public double DefaultTemp; /// 7 public string MsrdFormat { get; set; } /// 8 - public Unit MsrdUnit { get; set; } /// 9 + public Unit MsrdUnit { get; set; } /// 9 public double MsrdValLimLo { get; set; } /// 10 public double MsrdValLimHi { get; set; } /// 11 diff --git a/TBF/Rig/Modbus/TempMeter/Meret/TempMeter.cs b/TBF/Rig/Modbus/TempMeter/Meret/TempMeter.cs index 0092154c7..b27b2983e 100644 --- a/TBF/Rig/Modbus/TempMeter/Meret/TempMeter.cs +++ b/TBF/Rig/Modbus/TempMeter/Meret/TempMeter.cs @@ -26,6 +26,10 @@ namespace TBF.Rig.Modbus.TempMeter.Meret public bool MsrmntAvailable { get { return true; } } public double MeasuredVal { get { return receivedTemp; } } + public double MsrdValLimLo { get { return Units.ConvertFrom(MsrdUnit, tempMtrCfg.MsrdValLimLo); } } + public double MsrdValLimHi { get { return Units.ConvertFrom(MsrdUnit, tempMtrCfg.MsrdValLimHi); } } + public string MsrdFormat { get { return tempMtrCfg.MsrdFormat; } } + public Unit MsrdUnit { get { return tempMtrCfg.MsrdUnit; } } public string AltString { get { return string.Empty; } } int ticketNumber; /// 0 .. number of devices registered for regular polling - 1 diff --git a/TBF/Rig/Modbus/UltrasoundLevelMeter/LevelMeter.cs b/TBF/Rig/Modbus/UltrasoundLevelMeter/LevelMeter.cs index 2a755f29f..fc570d8ff 100644 --- a/TBF/Rig/Modbus/UltrasoundLevelMeter/LevelMeter.cs +++ b/TBF/Rig/Modbus/UltrasoundLevelMeter/LevelMeter.cs @@ -11,7 +11,7 @@ using TBF.Rig.Generic; namespace TBF.Rig.Modbus.UltrasoundLevelMeter { - public class LevelMeter : ComponentBase, GenericDevices.ILevelMeter, GenericDevices.ITempMeter, IDevice + public class LevelMeter : ComponentBase, GenericDevices.ILevelMeter, IDevice { private static readonly ILog log = LogManager.GetLogger(typeof(LevelMeter)); public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } diff --git a/TBF/Rig/Modbus/WaterAnalyzer/Analyzer.cs b/TBF/Rig/Modbus/WaterAnalyzer/Analyzer.cs index 49640b97c..fd5d75508 100644 --- a/TBF/Rig/Modbus/WaterAnalyzer/Analyzer.cs +++ b/TBF/Rig/Modbus/WaterAnalyzer/Analyzer.cs @@ -12,7 +12,7 @@ using TBF.Rig.Generic; namespace TBF.Rig.Modbus.WaterAnalyzer { - public class Analyzer : ComponentBase, GenericDevices.ITempMeter, IDevice + public class Analyzer : ComponentBase, IDevice { private static readonly ILog log = LogManager.GetLogger(typeof(Analyzer)); public override string ToString() { return string.Format("{0}({1})", ClassName, Cfg.ToString(-1)); } diff --git a/TBF/Rig/Uni/FlowMeter/FlowMeter.cs b/TBF/Rig/Uni/FlowMeter/FlowMeter.cs index fe2817f93..d8f45d849 100644 --- a/TBF/Rig/Uni/FlowMeter/FlowMeter.cs +++ b/TBF/Rig/Uni/FlowMeter/FlowMeter.cs @@ -31,8 +31,10 @@ namespace TBF.Rig.Uni.FlowMeter public SchematicDrawing.IDrawingItem DrawingItem { get { return flowMeterCfg as SchematicDrawing.IDrawingItem; } } - public double MsrdValLimLo { get { return flowMeterCfg.MsrdValLimLo; } set { flowMeterCfg.MsrdValLimLo = value; } } - public double MsrdValLimHi { get { return flowMeterCfg.MsrdValLimHi; } set { flowMeterCfg.MsrdValLimHi = value; } } + public string MsrdFormat { get { return flowMeterCfg.MsrdFormat; } } + public Unit MsrdUnit { get { return flowMeterCfg.MsrdUnit; } } + public double MsrdValLimLo { get { return flowMeterCfg.MsrdValLimLo; } set { flowMeterCfg.MsrdValLimLo = value; } } /// in [m3/h] + public double MsrdValLimHi { get { return flowMeterCfg.MsrdValLimHi; } set { flowMeterCfg.MsrdValLimHi = value; } } /// in [m3/h] public bool MsrmntAvailable { diff --git a/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs b/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs index f06c0e839..6f9671715 100644 --- a/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs +++ b/TBF/Rig/Uni/FlowMeter/FlowMeterCfg.cs @@ -103,12 +103,12 @@ namespace TBF.Rig.Uni.FlowMeter [XmlIgnore] public IList GNodes { get; set; } [XmlIgnore] - public double MsrdValLimLo { get { return msrdValLimLo; } set { msrdValLimLo = value; } } + public double MsrdValLimLo { get { return msrdValLimLo; } set { msrdValLimLo = value; } } /// in [m3/h] [XmlIgnore] - public double MsrdValLimHi { get { return msrdValLimHi; } set { msrdValLimHi = value; } } + public double MsrdValLimHi { get { return msrdValLimHi; } set { msrdValLimHi = value; } } /// in [m3/h] - double msrdValLimLo = 0; - double msrdValLimHi; + double msrdValLimLo = 0; /// in [m3/h] + double msrdValLimHi; /// in [m3/h] public bool RangeEnabled(int rangeIx1) diff --git a/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs b/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs index 2691cdcdc..b3ac10eaa 100644 --- a/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs +++ b/TBF/Rig/Uni/FlowMetersInParallel/FlowMeter.cs @@ -33,6 +33,8 @@ namespace TBF.Rig.Uni.FlowMetersInParallel public double LtrPerPulse { get { return ltrPerPulse; } } public SchematicDrawing.IDrawingItem DrawingItem { get { return flowMeterCfg as SchematicDrawing.IDrawingItem; } } + public string MsrdFormat { get { return flowMeterCfg.MsrdFormat; } } + public Common.Unit MsrdUnit { get { return flowMeterCfg.MsrdUnit; } } public double MsrdValLimLo { get { return flowMeterCfg.MsrdValLimLo; } set { flowMeterCfg.MsrdValLimLo = value; } } public double MsrdValLimHi { get { return flowMeterCfg.MsrdValLimHi; } set { flowMeterCfg.MsrdValLimHi = value; } }