From 6a159f773e8c2107cfd1c1ba170fb27c5d73a368 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Sat, 13 Feb 2016 16:47:15 +0100 Subject: [PATCH] WMPulses[], WMRefPulses[], WMTimes[] removed from SequenceBase, operations, etc., clean-up. --- .../Cameras/CameraRoi/CameraRoi.cs | 29 +---- .../Cameras/CameraRoi/ReadRegisterOp.cs | 27 +---- .../RegisterReader.cs | 23 +--- .../Elde/RegisterReader/RegisterReader.cs | 23 +--- .../GenericDevices/IRegisterReader.cs | 3 +- .../Operations/ReadMoreRegistersOp.cs | 114 +----------------- .../BenchControl/Sequences/MainSeq.cs | 11 +- .../BenchControl/Sequences/SequenceBase.cs | 13 +- .../TestMethods/Adjustment/AdjustmentSeq.cs | 8 +- .../CombinedMeters/CombinedMetersSeq.cs | 6 +- .../CombinedWithDetectionSeq.cs | 11 +- .../FixedStartAdvancedSeq.cs | 2 +- .../FixedStartCombinedMetersSeq.cs | 2 +- .../FixedStartMassCollectionSeq.cs | 2 +- .../TestMethods/FlyingStart/FlyingStartSeq.cs | 8 +- .../FlyingStartMassCollectionSeq.cs | 8 +- .../ReferenceFlowmeterCalibrationSeq.cs | 2 +- .../WaterMeters/iPerl/WaterMeter.cs | 53 +------- 18 files changed, 48 insertions(+), 297 deletions(-) diff --git a/TestBenchFramework/BenchControl/Cameras/CameraRoi/CameraRoi.cs b/TestBenchFramework/BenchControl/Cameras/CameraRoi/CameraRoi.cs index 142ea42da..a4d44e111 100644 --- a/TestBenchFramework/BenchControl/Cameras/CameraRoi/CameraRoi.cs +++ b/TestBenchFramework/BenchControl/Cameras/CameraRoi/CameraRoi.cs @@ -35,8 +35,8 @@ namespace TBF.BenchControl.Cameras.CameraRoi public int WMRefPulses { get { return wmRefPulses; } } public double WMVolume { get { return ltrsPerPulse * (double)wmPulses; } } - int wmPulses; - int wmRefPulses; + public int wmPulses; + public int wmRefPulses; public CameraRoi() @@ -77,30 +77,9 @@ namespace TBF.BenchControl.Cameras.CameraRoi /// /// Reference to a variable for the water meter pulses /// ReadWaterMeter instance reference casted to IOperaton - public IOperation ReadRegisterOp(ref IntBox pulses) + public IOperation ReadRegisterOp() { - return new ReadRegisterOp(this, ref pulses); - } - - /// - /// Events: Event.ReadRegisterDone, Event.Error - /// - /// Reference to a variable for the water meter pulses - /// Reference to a variable for the related reference flow meter pulses - /// ReadWaterMeter instance reference casted to IOperaton - public IOperation ReadRegisterOp(ref IntBox pulses, ref IntBox refPulses) - { - return new ReadRegisterOp(this, ref pulses, ref refPulses); - } - - /// - /// Events: ReadReferenceDone, Error - /// - /// Reference to a variable for the water meter pulses - /// ReadWaterMeter instance reference casted to IOperaton - public IOperation ReadReferenceForRegisterOp(ref IntBox pulses, ref IntBox refPulses) - { - return null; /// not implemented + return new ReadRegisterOp(this); } /// diff --git a/TestBenchFramework/BenchControl/Cameras/CameraRoi/ReadRegisterOp.cs b/TestBenchFramework/BenchControl/Cameras/CameraRoi/ReadRegisterOp.cs index 44a549090..4be796f6d 100644 --- a/TestBenchFramework/BenchControl/Cameras/CameraRoi/ReadRegisterOp.cs +++ b/TestBenchFramework/BenchControl/Cameras/CameraRoi/ReadRegisterOp.cs @@ -13,47 +13,28 @@ namespace TBF.BenchControl.Cameras.CameraRoi public override string ToString() { return string.Format("ReadRegisterOp({0})", cameraRoi.Cfg.Name); } /// Set by the constructor - readonly GenericDevices.ICameraRoi cameraRoi; + readonly CameraRoi cameraRoi; readonly BenchControl.Cameras.IdcCamera.IdcCamera camera; - IntBox pulses; - IntBox refPulses; /// /// Events: Event.ReadRegisterDone or Event.Error /// /// Register reader reference /// Reference to a field with the water meter pulses - public ReadRegisterOp(GenericDevices.ICameraRoi cameraRoi, ref IntBox pulses) + public ReadRegisterOp(CameraRoi cameraRoi) { this.cameraRoi = cameraRoi; if (cameraRoi == null) throw new ArgumentNullException("reader is null or it is not IdcCamera"); camera = cameraRoi.Camera as BenchControl.Cameras.IdcCamera.IdcCamera; - this.pulses = pulses; log.Debug(this.ToString()); } - /// - /// Events: Event.ReadRegisterDone or Event.Error - /// - /// Register reader reference - /// Reference to a Box with the water meter pulses - /// Reference to a Box with the reference flow meter pulses synchronized with the water meter - public ReadRegisterOp(GenericDevices.ICameraRoi cameraRoi, ref IntBox pulses, ref IntBox refPulses) - : this(cameraRoi, ref pulses) - { - this.refPulses = refPulses; - log.Debug(this.ToString()); - } - private void ReadPulses() { - pulses.Val = camera.Idc100.Pulses; - if (refPulses != null) - { - refPulses.Val = StateMachine.ControlBoard.EtPulses(0); - } + cameraRoi.wmPulses = camera.Idc100.Pulses; + cameraRoi.wmRefPulses = StateMachine.ControlBoard.EtPulses(0); } /// Start this operation diff --git a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReader.cs b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReader.cs index 1ee585add..7bfea1663 100644 --- a/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReader.cs +++ b/TestBenchFramework/BenchControl/Elde/FixedStartRegisterReader/RegisterReader.cs @@ -28,8 +28,6 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader int wmPulses; int wmRefPulses; - IntBox pulsesBox; - IntBox refPulsesBox; readonly ControlBoardDev controlBoard; @@ -67,35 +65,16 @@ namespace TBF.BenchControl.Elde.FixedStartRegisterReader /// /// Events: Event.ReadRegisterDone, Event.Error /// - /// Reference to a variable for the water meter pulses /// ReadWaterMeter instance reference casted to IOperaton - public IOperation ReadRegisterOp(ref IntBox pulsesBox) + public IOperation ReadRegisterOp() { - this.pulsesBox = pulsesBox; return this; } - /// - /// Events: Event.ReadRegisterDone, Event.Error - /// - /// Reference to a variable for the water meter pulses - /// Reference to a variable for the related reference flowmeter pulses - /// Reference to operation object instance - public IOperation ReadRegisterOp(ref IntBox pulsesBox, ref IntBox refPulsesBox) - { - this.pulsesBox = pulsesBox; - this.refPulsesBox = refPulsesBox; - return this; - } - - private void ReadPulses() { wmPulses = (int)(EndWMState - BeginWMState); /// TODO: replace 0 wmRefPulses = (int)controlBoard.EtPulses(0); - - pulsesBox.Val = wmPulses; - if (refPulsesBox != null) refPulsesBox.Val = wmRefPulses; } /// Start this operation diff --git a/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReader.cs b/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReader.cs index 3a6fdfb39..ed2d60ea6 100644 --- a/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReader.cs +++ b/TestBenchFramework/BenchControl/Elde/RegisterReader/RegisterReader.cs @@ -27,8 +27,6 @@ namespace TBF.BenchControl.Elde.RegisterReader int wmPulses; int wmRefPulses; - IntBox pulsesBox; - IntBox refPulsesBox; /// This is to cope with counter overflow int lastPulses; @@ -71,28 +69,12 @@ namespace TBF.BenchControl.Elde.RegisterReader /// /// Events: Event.ReadRegisterDone, Event.Error /// - /// Reference to a variable for the water meter pulses /// ReadWaterMeter instance reference casted to IOperaton - public IOperation ReadRegisterOp(ref IntBox pulsesBox) + public IOperation ReadRegisterOp() { - this.pulsesBox = pulsesBox; return this; } - /// - /// Events: Event.ReadRegisterDone, Event.Error - /// - /// Reference to a variable for the water meter pulses - /// Reference to a variable for the related reference flowmeter pulses - /// Reference to operation object instance - public IOperation ReadRegisterOp(ref IntBox pulsesBox, ref IntBox refPulsesBox) - { - this.pulsesBox = pulsesBox; - this.refPulsesBox = refPulsesBox; - return this; - } - - private void ReadPulses() { if (!lastPulsesValid) @@ -120,9 +102,6 @@ namespace TBF.BenchControl.Elde.RegisterReader wmPulses = lastPulses; wmRefPulses = (int)controlBoard.EtPulses(Position); - - pulsesBox.Val = wmPulses; - if (refPulsesBox != null) refPulsesBox.Val = wmRefPulses; } /// Start this operation diff --git a/TestBenchFramework/BenchControl/GenericDevices/IRegisterReader.cs b/TestBenchFramework/BenchControl/GenericDevices/IRegisterReader.cs index 07620969e..23ae1f306 100644 --- a/TestBenchFramework/BenchControl/GenericDevices/IRegisterReader.cs +++ b/TestBenchFramework/BenchControl/GenericDevices/IRegisterReader.cs @@ -20,7 +20,6 @@ namespace TBF.BenchControl.GenericDevices void TestCompleted(); /// To be used when the test is completed ... /// ... for more accurate WMPulses, WMRefPulses calculation - IOperation ReadRegisterOp(ref IntBox pulses); - IOperation ReadRegisterOp(ref IntBox pulses, ref IntBox refPulses); + IOperation ReadRegisterOp(); } } diff --git a/TestBenchFramework/BenchControl/Operations/ReadMoreRegistersOp.cs b/TestBenchFramework/BenchControl/Operations/ReadMoreRegistersOp.cs index 5fc59e90c..1f9496f37 100644 --- a/TestBenchFramework/BenchControl/Operations/ReadMoreRegistersOp.cs +++ b/TestBenchFramework/BenchControl/Operations/ReadMoreRegistersOp.cs @@ -15,12 +15,6 @@ namespace TBF.BenchControl.Operations /// Set by the constructor int readersCount; - int[] iPulses; - int[] iRefPulses; - double[] dTimes; - IntBox[] pulses; - IntBox[] refPulses; - DoubleBox[] times; IOperation[] readRegOps; /// @@ -28,117 +22,21 @@ namespace TBF.BenchControl.Operations /// /// Register reader reference /// Reference to the water meter register state in pulses - public ReadMoreRegistersOp(GenericDevices.IRegisterReader[] readers, ref int[] iPulses) + public ReadMoreRegistersOp(GenericDevices.IRegisterReader[] readers) { if (readers == null) throw new ArgumentNullException("readers"); readersCount = readers.Length; - if (iPulses == null || iPulses.Length != readersCount) - { - throw new ArgumentException("iPulses"); - } - this.iPulses = iPulses; - - pulses = new IntBox[Config.Data.WMsCount]; - readRegOps = new IOperation[readersCount]; for (int i = 0; i < readersCount; i++) { - pulses[i] = new IntBox(iPulses[i]); - - if (readers[i] != null) - { - readRegOps[i] = readers[i].ReadRegisterOp(ref pulses[i]); - } + if (readers[i] != null) readRegOps[i] = readers[i].ReadRegisterOp(); } + log.Debug(this.ToString()); } - /// - /// Events: eventDone (default=Event.ReadRegisterDone) or Event.Error - /// - /// Register reader reference - /// Reference to the water meter register state in pulses - public ReadMoreRegistersOp(GenericDevices.IRegisterReader[] readers, ref int[] iPulses, ref int[] iRefPulses) - : this(readers, ref iPulses) - { - if (readers == null) throw new ArgumentNullException("readers"); - - readersCount = readers.Length; - - if (iPulses == null || iPulses.Length != readersCount || - iRefPulses == null || iRefPulses.Length != readersCount) - { - throw new ArgumentException("iPulses or iRefPulses"); - } - this.iPulses = iPulses; - this.iRefPulses = iRefPulses; - - pulses = new IntBox[Config.Data.WMsCount]; - refPulses = new IntBox[Config.Data.WMsCount]; - - readRegOps = new IOperation[readersCount]; - for (int i = 0; i < readersCount; i++) - { - pulses[i] = new IntBox(iPulses[i]); - refPulses[i] = new IntBox(iRefPulses[i]); - - if (readers[i] != null) - { - readRegOps[i] = readers[i].ReadRegisterOp(ref pulses[i], ref refPulses[i]); - } - } - log.Debug(this.ToString()); - } - - /// - /// Events: eventDone (default=Event.ReadRegisterDone) or Event.Error - /// - /// Register reader reference - /// Reference to the water meter register state in pulses - public ReadMoreRegistersOp(GenericDevices.IRegisterReader[] readers, ref int[] iPulses, ref double[] dTimes, ref int[] iRefPulses) - : this(readers, ref iPulses) - { - if (readers == null) throw new ArgumentNullException("readers"); - - readersCount = readers.Length; - - if (iPulses == null || iPulses.Length != readersCount || - dTimes == null || dTimes.Length != readersCount || - iRefPulses == null || iRefPulses.Length != readersCount) - { - throw new ArgumentException("iPulses or iRefPulses"); - } - this.iPulses = iPulses; - this.dTimes = dTimes; - this.iRefPulses = iRefPulses; - - pulses = new IntBox[Config.Data.WMsCount]; - times = new DoubleBox[Config.Data.WMsCount]; - refPulses = new IntBox[Config.Data.WMsCount]; - - readRegOps = new IOperation[readersCount]; - for (int i = 0; i < readersCount; i++) - { - pulses[i] = new IntBox(iPulses[i]); - times[i] = new DoubleBox(dTimes[i]); - refPulses[i] = new IntBox(iRefPulses[i]); - - if (readers[i] != null) - { - if (readers[i] is WaterMeters.iPerl.WaterMeter) - { - readRegOps[i] = (readers[i] as WaterMeters.iPerl.WaterMeter).ReadRegisterOp(ref pulses[i], ref times[i], ref refPulses[i]); - } - else - { - readRegOps[i] = readers[i].ReadRegisterOp(ref pulses[i], ref refPulses[i]); - } - } - } - log.Debug(this.ToString()); - } /// Start this operation public void Start() @@ -160,11 +58,7 @@ namespace TBF.BenchControl.Operations if (readRegOps[i] != null) { Event evnt = readRegOps[i].Run(); - iPulses[i] = pulses[i].Val; - if (iRefPulses != null) - { - iRefPulses[i] = refPulses[i].Val; - } + if (evnt == Event.Error) anyError = true; if (evnt != Event.ReadRegisterDone) allDone = false; } diff --git a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs index 81030b289..d3651aff9 100644 --- a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs +++ b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs @@ -21,7 +21,6 @@ namespace TBF.BenchControl.Sequences public override string ToString() { return "Sequences.MainSeq"; } - System.Windows.Forms.Form modelessDlg; /// delegate void iPerlCommFormDlgt(MainSeq myRef, Generic.IComponentCfg cfg, IList tests, IList multiTestParams); @@ -467,6 +466,10 @@ namespace TBF.BenchControl.Sequences if (selection == Selection.Cycle) { + float TimeEstimateTotal; /// Time estimate of the selected cycle or test + float TimeEstimateBeginRpts; /// Time estimate at the beginning of all repetitions of the current tests + float TimeEstimateOneTest; /// Time estimate of the current test (one repetition) + TimeEstimateTotal = 0; for (int i = simultWithPurgingCount; i < StateMachine.Tests.Count - simultWithEvacuationCount; i++) { @@ -565,9 +568,9 @@ namespace TBF.BenchControl.Sequences StartMass.Format = outPath.Balance.Format; EndMass.Format = outPath.Balance.Format; - TimeEstimateTotal = test.Repeats * (test.TstTime + 10.0f); - TimeEstimateOneTest = test.TstTime + 10.0f; - TimeEstimateBeginRpts = 0; + float TimeEstimateTotal = test.Repeats * (test.TstTime + 10.0f); + float TimeEstimateOneTest = test.TstTime + 10.0f; + float TimeEstimateBeginRpts = 0; ITestMethod testMethodSequence = TbfComponents.FindComponent(test.Method) as ITestMethod; if (testMethodSequence != null && testMethodSequence.CanTest(StateMachine.Procedure.MetersKind)) diff --git a/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs b/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs index eb1e8723b..60056fc39 100644 --- a/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs +++ b/TestBenchFramework/BenchControl/Sequences/SequenceBase.cs @@ -21,6 +21,7 @@ namespace TBF.BenchControl.Sequences public class SequenceBase : ProcessData { private static readonly ILog log = LogManager.GetLogger(typeof(SequenceBase)); + protected static readonly ILog processDataLogger = LogManager.GetLogger("ProcessData"); protected static readonly ILog allResults = LogManager.GetLogger("AllResults"); protected static readonly ILog summaryResults = LogManager.GetLogger("SummaryResults"); @@ -44,14 +45,6 @@ namespace TBF.BenchControl.Sequences public static double Qfall; - protected static float TimeEstimateTotal; /// Time estimate of the selected cycle or test - protected static float TimeEstimateBeginRpts; /// Time estimate at the beginning of all repetitions of the current tests - protected static float TimeEstimateOneTest; /// Time estimate of the current test (one repetition) - - static SequenceBase() - { - } - ///------------------------------------------------------------ /// Test related (instance) variables. /// Created when test sequence is open. @@ -72,10 +65,6 @@ namespace TBF.BenchControl.Sequences protected IOperation processDataLoggingOp; - protected int[] WMPulses = new int[Config.Data.WMsCount]; - protected int[] WMRefPulses = new int[Config.Data.WMsCount]; - protected double[] WMTimes = new double[Config.Data.WMsCount]; - /// /// Process data logging diff --git a/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs b/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs index 2634d3fa4..c58114447 100644 --- a/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/Adjustment/AdjustmentSeq.cs @@ -206,7 +206,7 @@ namespace TBF.BenchControl.TestMethods.Adjustment while (!e.Contains(Event.MeasurementStarted)); /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); queryEnd2 = cBrd.QueryMeasurementEndOp(); @@ -301,13 +301,13 @@ namespace TBF.BenchControl.TestMethods.Adjustment for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { Results.Entities.MeterTestRslt meterRslt = BatchRslts.GetMeterTestRslt(testName, i, CompoundMeterId.Single); - GenericDevices.IRegisterReader regReader = (sensPath.RegisterReaders == null) ? null : sensPath.RegisterReaders[i]; + GenericDevices.IRegisterReader regReader = sensPath.RegisterReaders[i]; if (meterRslt != null && regReader != null) { meterRslt.PulsesPerLiter = regReader.PulsesPerLtr; - meterRslt.PulsesMeter = Convert.ToDouble(WMPulses[i]); - meterRslt.PulsesMaster = Convert.ToDouble(WMRefPulses[i]); + meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses); + meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses); meterRslt.VolumeStart = 0; /// liter meterRslt.VolumeEnd = 0; /// liter meterRslt.VolumeMeter = meterRslt.PulsesMeter * regReader.LtrsPerPulse; /// liter diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs index 7c6d6f62a..9766dcdba 100644 --- a/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs @@ -240,7 +240,7 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters while (!e.Contains(Event.MeasurementStarted)); /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); queryEnd2 = cBrd.QueryMeasurementEndOp(); @@ -409,8 +409,8 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters meterRslt.PulsesPerLiter = regReader.PulsesPerLtr; /// Optionally supress pulses from the large water meter - meterRslt.PulsesMeter = (isAux == 0 && testParams.SupressTrills) ? 0 : Convert.ToDouble(WMPulses[2 * i + isAux]); - meterRslt.PulsesMaster = Convert.ToDouble(WMRefPulses[2 * i + isAux]); + meterRslt.PulsesMeter = (isAux == 0 && testParams.SupressTrills) ? 0 : Convert.ToDouble(regReader.WMPulses); + meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses); meterRslt.TestTime = tstRslt.TestTime; meterRslt.VolumeStart = 0; diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs index 14f7eeeb1..2dda2d218 100644 --- a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs @@ -61,7 +61,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection processDataLoggingOp = new TBF.BenchControl.Operations.ProcessDataLoggingOp(processDataLogger, this); /// Meters path is required for the following: - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); int repetitionNr = 1; /// First test: repetitionNr=1 @@ -217,7 +217,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection while (!e.Contains(Event.PositionReached)); // Last pulses are kept to calculate differences - for (int i = 0; i < 2 * Config.Data.CompoundWMsCount; i++) lastWMPulses[i] = WMPulses[i]; + for (int i = 0; i < 2 * Config.Data.CompoundWMsCount; i++) lastWMPulses[i] = RegisterReaders[i].WMPulses; // Shift data in the detection buffers for (int i = DetectionBufferSize - 2; i >= 0; i--) @@ -233,7 +233,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection } int time = StateMachine.Time; - int diff = WMPulses[(test.Part - 1) * 2 + 1] - lastWMPulses[(test.Part - 1) * 2 + 1]; + int diff = RegisterReaders[(test.Part - 1) * 2 + 1].WMPulses - lastWMPulses[(test.Part - 1) * 2 + 1]; flowsForDetection[0] = cBrd.ReferenceFreq * outPath.FlowMeter.NominalFlow / 2000.0f; pulseFreqsForDetection[0] = (float)diff / (float)(time - lastTime); lastTime = StateMachine.Time; @@ -585,9 +585,8 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection meterRslt.PulsesPerLiter = regReader.PulsesPerLtr; /// Optionally supress pulses from the large water meter - meterRslt.PulsesMeter = (isAux == 0 && testParams.SupressTrills) ? 0 : Convert.ToDouble(WMPulses[2 * i + isAux]); - - meterRslt.PulsesMaster = Convert.ToDouble(WMRefPulses[2 * i + isAux]); + meterRslt.PulsesMeter = (isAux == 0 && testParams.SupressTrills) ? 0 : Convert.ToDouble(regReader.WMPulses); + meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses); meterRslt.TestTime = cBrd.TTime; meterRslt.VolumeStart = 0; meterRslt.VolumeEnd = 0; diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs index 3316de7e9..0dcd3f302 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartAdvanced/FixedStartAdvancedSeq.cs @@ -306,7 +306,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartAdvanced /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); queryEnd2 = cBrd.QueryMeasurementEndOp(); diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartCombinedMeters/FixedStartCombinedMetersSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartCombinedMeters/FixedStartCombinedMetersSeq.cs index 77e0828c7..184dbc57f 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartCombinedMeters/FixedStartCombinedMetersSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartCombinedMeters/FixedStartCombinedMetersSeq.cs @@ -305,7 +305,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartCombinedMeters /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); queryEnd2 = cBrd.QueryMeasurementEndOp(); diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs index 9f43a70fb..012393136 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs @@ -305,7 +305,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); queryEnd2 = cBrd.QueryMeasurementEndOp(); diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs index 177977e92..75374442a 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs @@ -146,7 +146,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); queryEnd2 = cBrd.QueryMeasurementEndOp(); @@ -254,14 +254,14 @@ namespace TBF.BenchControl.TestMethods.FlyingStart for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { Results.Entities.MeterTestRslt meterRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.Single); - GenericDevices.IRegisterReader regReader = (sensPath.RegisterReaders == null) ? null : sensPath.RegisterReaders[i]; + GenericDevices.IRegisterReader regReader = sensPath.RegisterReaders[i]; WaterMeters.iPerl.WaterMeter iPerl = regReader as WaterMeters.iPerl.WaterMeter; if (meterRslt != null && regReader != null) { meterRslt.PulsesPerLiter = regReader.PulsesPerLtr; - meterRslt.PulsesMeter = Convert.ToDouble(WMPulses[i]); - meterRslt.PulsesMaster = Convert.ToDouble(WMRefPulses[i]); + meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses); + meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses); if (iPerl != null) { diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs index bf8e784ce..4746dae78 100644 --- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs @@ -267,7 +267,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMTimes, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); int estimtdEndTime = StateMachine.Time + (int)test.TstTime; @@ -441,14 +441,14 @@ namespace TBF.BenchControl.TestMethods.FlyingStartMassCollection for (int i = 0; i < BatchRslts.WMPositionsCount; i++) { Results.Entities.MeterTestRslt meterRslt = BatchRslts.GetMeterTestRslt(testName, i, Config.Entities.CompoundMeterId.Single); - GenericDevices.IRegisterReader regReader = (sensPath.RegisterReaders == null) ? null : sensPath.RegisterReaders[i]; + GenericDevices.IRegisterReader regReader = sensPath.RegisterReaders[i]; WaterMeters.iPerl.WaterMeter iPerl = regReader as WaterMeters.iPerl.WaterMeter; if (meterRslt != null && regReader != null) { meterRslt.PulsesPerLiter = regReader.PulsesPerLtr; - meterRslt.PulsesMeter = Convert.ToDouble(WMPulses[i]); - meterRslt.PulsesMaster = Convert.ToDouble(WMRefPulses[i]); + meterRslt.PulsesMeter = Convert.ToDouble(regReader.WMPulses); + meterRslt.PulsesMaster = Convert.ToDouble(regReader.WMRefPulses); if (iPerl != null) { diff --git a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs index f01458b72..1d4f42ff9 100644 --- a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs +++ b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs @@ -212,7 +212,7 @@ namespace TBF.BenchControl.TestMethods.ReferenceFlowmeterCalibration while (!e.Contains(Event.MeasurementStarted)); /// Measurement loop - preparation - readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders, ref WMPulses, ref WMRefPulses); + readRegistersOp = new Operations.ReadMoreRegistersOp(sensPath.RegisterReaders); queryEnd1 = cBrd.QueryMeasurementEndOp(); queryEnd2 = cBrd.QueryMeasurementEndOp(); diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs index 42a261ebf..ebafcdcc5 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs @@ -261,10 +261,6 @@ namespace TBF.BenchControl.WaterMeters.iPerl public int TestStartTelegramIx; public int TestEndTelegramIx; - private Boxes.IntBox pulses; - private Boxes.IntBox refPulses; - private Boxes.DoubleBox timeSec; - OptoTelegramRaw[] optoData; const int MaxOptoDataCount = 40000; @@ -397,55 +393,12 @@ namespace TBF.BenchControl.WaterMeters.iPerl /// /// Events: Event.ReadRegisterDone, Event.Error /// - /// Reference to a variable for the water meter pulses /// ReadWaterMeter instance reference casted to IOperaton - public IOperation ReadRegisterOp(ref Boxes.IntBox pulses) + public IOperation ReadRegisterOp() { - this.pulses = pulses; return this; } - /// - /// Events: Event.ReadRegisterDone, Event.Error - /// - /// Reference to a variable for the water meter pulses - /// Reference to a variable for the related reference flowmeter pulses - /// Reference to operation object instance - public IOperation ReadRegisterOp(ref Boxes.IntBox pulses, ref Boxes.IntBox refPulses) - { - this.pulses = pulses; - this.refPulses = refPulses; - return this; - } - - /// - /// Events: Event.ReadRegisterDone, Event.Error - /// - /// Reference to a variable for the water meter pulses - /// Reference to a variable for the related time in seconds - /// Reference to operation object instance - public IOperation ReadRegisterOp(ref Boxes.IntBox pulses, ref Boxes.DoubleBox timeSec) - { - this.pulses = pulses; - this.timeSec = timeSec; - return this; - } - - /// - /// Events: ReadReferenceDone, Error - /// - /// Reference to a variable for the water meter pulses - /// Reference to a variable for the related time in seconds - /// Reference to a variable for the water meter pulses - /// Reference to operation object instance - public IOperation ReadRegisterOp(ref Boxes.IntBox pulses, ref Boxes.DoubleBox timeSec, ref Boxes.IntBox refPulses) - { - this.pulses = pulses; - this.timeSec = timeSec; - this.refPulses = refPulses; - return this; - } - /// /// Clear data/counters related to a specific tests /// @@ -584,10 +537,6 @@ namespace TBF.BenchControl.WaterMeters.iPerl wmPulses = (int)(wmVolume * (double)PulsesPerLtr + 0.5); wmRefPulses = StateMachine.ControlBoard.EtPulses(0); wmTestTime = timestampSec - timestampSec0; - - pulses.Val = wmPulses; - if (refPulses != null) refPulses.Val = wmRefPulses; - if (timeSec != null) timeSec.Val = wmTestTime; }