diff --git a/TestBenchFramework/BenchControl/GenericDevices/IWaterMeter.cs b/TestBenchFramework/BenchControl/GenericDevices/IWaterMeter.cs index 0e1b5fb43..da3084610 100644 --- a/TestBenchFramework/BenchControl/GenericDevices/IWaterMeter.cs +++ b/TestBenchFramework/BenchControl/GenericDevices/IWaterMeter.cs @@ -7,6 +7,8 @@ namespace TBF.BenchControl.GenericDevices { public interface IWaterMeter : IComponent { + void ClearData(); + string Producer { get; } float Qn { get; } string ApprovalInfo { get; } diff --git a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs index d69a8965f..da172b1fa 100644 --- a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs +++ b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs @@ -226,8 +226,14 @@ namespace TBF.BenchControl.Sequences StateMachine.LoadProcedure(false); if (StateMachine.Procedure == null) goto select_procedure; - StateMachine.LoadProcedureParams(StateMachine.Procedure); + /// + /// Procedure selected at this point, a new batch was started + /// + StateMachine.CycleStartTimeStamp = DateTime.Now; + foreach (var wm in WaterMeters) wm.ClearData(); /// Clean water meter data ResetResults(); + + StateMachine.LoadProcedureParams(StateMachine.Procedure); Bridge.OnProcedureSelected(this, new ProcedureSelectedEventArgs(StateMachine.Procedure)); /// Display 'Cycle Begin Form' @@ -423,8 +429,6 @@ namespace TBF.BenchControl.Sequences if (selection == Selection.Cycle) { - StateMachine.CycleStartTimeStamp = DateTime.Now; - TimeEstimateTotal = 0; for (int i = simultWithPurgingCount; i < StateMachine.Tests.Count - simultWithEvacuationCount; i++) { diff --git a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeter.cs b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeter.cs index d59f27171..3e641fca0 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeter.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/WaterMeter/WaterMeter.cs @@ -73,13 +73,23 @@ namespace TBF.BenchControl.WaterMeters.WaterMeter public WaterMeter() { + ClearData(); } public WaterMeter(WaterMeterCfg cfg) : base(cfg) { + ClearData(); waterMeterCfg = cfg; log.Debug(this.ToString()); } + + public void ClearData() + { + serialNr = string.Empty; + endState = string.Empty; + beginState = string.Empty; + disabled = false; + } } } diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs index 6fdfda9c5..d2b271f19 100644 --- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs +++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs @@ -55,9 +55,8 @@ namespace TBF.BenchControl.WaterMeters.iPerl if (ConfigStruct != null) return configStruct.PCBNumber2String(); else return string.Empty; } - set { serialNr = value; } + set { } } - string serialNr; public string EndState { @@ -106,7 +105,7 @@ namespace TBF.BenchControl.WaterMeters.iPerl CalibrationStruct calibrationStruct; public ushort OriginalCalibFactor; - public ushort CalibrationFactor { get { return CalibrationStruct.Calibration; } } + public ushort CalibrationFactor { get { return (CalibrationStruct != null) ? CalibrationStruct.Calibration : (ushort)0; } } public double Q2ErrorWOCorrection; public bool Q2CorrectionDone; @@ -266,35 +265,47 @@ namespace TBF.BenchControl.WaterMeters.iPerl public WaterMeter() { - disabled = false; - commFailed = false; + ClearData(); } public WaterMeter(WaterMeterCfg cfg) : base(cfg) { - disabled = false; - commFailed = false; + ClearData(); iPerlCfg = cfg; log.Debug(this.ToString()); } - int NrFormName(string name) - { - int len = name.Length; - if (len < 2) return 0; + /// + /// Clear data related to a specific water meter + /// + public void ClearData() + { + disabled = false; + commFailed = false; + endState = string.Empty; + beginState = string.Empty; - int loNr = (int)name[len - 1] - (int)'0'; - int hiNr = (int)name[len - 2] - (int)'0'; - if (hiNr < 1 || hiNr > 4) hiNr = 0; + configStruct = null; + calibrationStruct = null; - return 10 * hiNr + loNr; - } + LastTestResult = null; + NominalTestFlow = 0; + + OriginalCalibFactor = 0; + Q2ErrorWOCorrection = 0; + Q2CorrectionDone = false; + CurrentQ2Correction = 0; + + optoDataCount = 0; + } public void Initialize() { - if (DebugLevel == Entities.DebugMode.Normal) + ClearData(); + + if (DebugLevel == Entities.DebugMode.Normal) { optoSerialPortParsingEnabled = false; @@ -787,5 +798,17 @@ namespace TBF.BenchControl.WaterMeters.iPerl case MeterType.DN40: return 16.0; } } - } + + int PositionNrFormWMName(string name) + { + int len = name.Length; + if (len < 2) return 0; + + int loNr = (int)name[len - 1] - (int)'0'; + int hiNr = (int)name[len - 2] - (int)'0'; + if (hiNr < 1 || hiNr > 4) hiNr = 0; + + return 10 * hiNr + loNr; + } + } }