diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 55e5d9059..7b28254bd 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -29,5 +29,5 @@ using System.Runtime.InteropServices; // Build Number // Revision // -[assembly: AssemblyVersion("3.1.1606.0")] -[assembly: AssemblyFileVersion("3.1.1606.0")] +[assembly: AssemblyVersion("3.1.1607.0")] +[assembly: AssemblyFileVersion("3.1.1607.0")] diff --git a/TBF/Rig/TestMethods/DiverterTest/DiverterTestSeq.cs b/TBF/Rig/TestMethods/DiverterTest/DiverterTestSeq.cs index a86941a8d..5c516f972 100644 --- a/TBF/Rig/TestMethods/DiverterTest/DiverterTestSeq.cs +++ b/TBF/Rig/TestMethods/DiverterTest/DiverterTestSeq.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2019 Sensus Slovensko a.s. +/// Copyright (c) 2019-2021 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; @@ -132,12 +132,12 @@ namespace TBF.Rig.TestMethods.DiverterTest } IList readTempPressOps = new List(); - if(benchPath.TempMtrUp != null) readTempPressOps.Add(benchPath.TempMtrUp.ReadTempOp(ref TempUp)); - if(benchPath.TempMtrDown != null) readTempPressOps.Add(benchPath.TempMtrDown.ReadTempOp(ref TempDown)); - if(outPath.TempMtrDiv != null) readTempPressOps.Add(outPath.TempMtrDiv.ReadTempOp(ref TempDiv)); - if(benchPath.PressMtrUp != null) readTempPressOps.Add(benchPath.PressMtrUp.ReadPressureOp(ref PressUp)); - if(benchPath.PressMtrDown != null) readTempPressOps.Add(benchPath.PressMtrDown.ReadPressureOp(ref PressDown)); - if(benchPath.PressMtrDelta != null) readTempPressOps.Add(benchPath.PressMtrDelta.ReadPressureOp(ref PressDelta)); + if (benchPath.TempMtrUp != null) readTempPressOps.Add(benchPath.TempMtrUp.ReadTempOp(ref TempUp)); + if (benchPath.TempMtrDown != null) readTempPressOps.Add(benchPath.TempMtrDown.ReadTempOp(ref TempDown)); + if (outPath.TempMtrDiv != null) readTempPressOps.Add(outPath.TempMtrDiv.ReadTempOp(ref TempDiv)); + if (benchPath.PressMtrUp != null) readTempPressOps.Add(benchPath.PressMtrUp.ReadPressureOp(ref PressUp)); + if (benchPath.PressMtrDown != null) readTempPressOps.Add(benchPath.PressMtrDown.ReadPressureOp(ref PressDown)); + if (benchPath.PressMtrDelta != null) readTempPressOps.Add(benchPath.PressMtrDelta.ReadPressureOp(ref PressDelta)); LtrPerRefPulse = outPath.FlowMeter.LtrPerPulse; int totalPulses = (int)(test.Volume / LtrPerRefPulse + 0.5f); @@ -448,7 +448,7 @@ namespace TBF.Rig.TestMethods.DiverterTest .EnterState(); do { e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } if (TestAndLogUiCmdStop(test,e)) { retVal = Event.UiCmdStop; goto stopTest; } if (e.Contains(Event.ScaleTimeout)) { @@ -477,12 +477,12 @@ namespace TBF.Rig.TestMethods.DiverterTest cumulativeTestTime[i] = 0; } - StartNewStatistics(StateMachine.Time, BatchRslts.Batch.BatchNr, test.Name, repetitionNr, 0); - /// /// Diverter test loop /// int remainingPulses = totalPulses; + StartNewStatistics(StateMachine.Time, BatchRslts.Batch.BatchNr, test.Name, repetitionNr, 0); + for (int divRepetNr = 1; divRepetNr <= testParams.DivRepetitions; divRepetNr++) { LogProcessDataHeader(processDataLogger, string.Format("Measurement {0}", divRepetNr)); @@ -494,59 +494,39 @@ namespace TBF.Rig.TestMethods.DiverterTest //------------------------------------------------ Bridge.OnActivity(this, Strings.Test_in_progress); //------------------------------------------------ - State.Create(string.Format("{0}({1}) : Starting the test", test.Method, test.Name)) - .AddOperation(checkUiOp) - .AddOperations(readTempPressOps) - .AddOperations(cameraMeasurementOps) - .AddOperation(processDataLoggingOp) - //.AddOperation(cBrd.StartTestOp(test, true, true, false, test.Qfrom, test.Qto, pulsesNow, 0)) - .EnterState(); - do { - e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } - if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } - } - while (!e.Contains(Event.TestInProgress)); + /// Measurement loop preparation int estimtdEndTime = StateMachine.Time + (int)(test.TestTime / testParams.DivRepetitions); - - /// Measurement loop - begin - State.Create(string.Format("{0}({1}) : Reading watermeters {2}", test.Method, test.Name, divRepetNr)) + int remainingTime; + + State.Create(string.Format("{0}({1}) : Perform test", test.Method, test.Name)) .AddOperation(checkUiOp) .AddOperations(readTempPressOps) .AddOperations(cameraMeasurementOps) - //.AddOperation(cBrd.ReadDiverterTransitionOp(outPath.Diverter, CountWhenSendingRdDivCmd, CountWhenReadingDiv, true, DiverterStart, BatchRslts.Batch.BatchNr, test.Name, repetitionNr)) - .AddOperation(cBrd.QueryMeasurementEndOp()) + .AddOperation(cBrd.FlyingStartStopTestOp(test, test.Qfrom, test.Qto, pulsesNow, true, false, 0, false)) .AddOperation(processDataLoggingOp) .EnterState(); do { e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } - if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } + if (e.Contains(Event.OpArgumentError)) { retVal = Event.OpArgumentError; goto stopTest; } + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } - //------------------------------------------------ - int remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0); - if (remainingTime > 60) - { + /// Show remaining time + if ((remainingTime = Math.Max(estimtdEndTime - StateMachine.Time, 0)) > 60) Bridge.OnActivity(this, string.Format("{0}. {1} ... {2} {3} {4} {5}", divRepetNr, Strings.Test_in_progress, remainingTime / 60, "min", remainingTime % 60, Strings.sec)); - } else - { Bridge.OnActivity(this, string.Format("{0}. {1} ... {2} s", divRepetNr, Strings.Test_in_progress, remainingTime)); - } - //------------------------------------------------ + /// Update statistics RefFrequency.Val = cBrd.RefFrequency; RefFlow.Val = outPath.FlowMeter.ReadFlow(); - UpdateAllStatistics(StateMachine.Time); Bridge.OnProcessData(this, new ProcessDataEventArgs(test, repetitionNr, Config.Entities.Progress.Test)); Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Config.Entities.Progress.Test)); - - if (e.Contains(Event.TestCompleted)) break; } - while (!e.Contains(Event.Next)); /// 'Next' button can be used in Debug version + while (!e.Contains(Event.TestCompleted) && !e.Contains(Event.Next)); LogProcessDataHeader(processDataLogger, string.Format("Delay {0}", divRepetNr)); @@ -556,15 +536,14 @@ namespace TBF.Rig.TestMethods.DiverterTest /// Delay 5s State.Create(string.Format("{0}({1}) : Delay {2}", test.Method, test.Name, divRepetNr)) - .AddOperation(checkUiOp) - .AddOperations(readTempPressOps) - .AddOperation(processDataLoggingOp) - .AddOperation(new Operations.TimerOp(5)) - .EnterState(); - do - { + .AddOperation(checkUiOp) + .AddOperations(readTempPressOps) + .AddOperation(new Operations.TimerOp(5)) + .AddOperation(processDataLoggingOp) + .EnterState(); + do { e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } + if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } } while (!e.Contains(Event.TimerExpired)); @@ -587,18 +566,6 @@ namespace TBF.Rig.TestMethods.DiverterTest StopRecordingStatistics(); - State.Create(string.Format("{0}({1}) : Stopping flow regulation", test.Method, test.Name)) - .AddOperation(checkUiOp) - .AddOperations(readTempPressOps) - .AddOperation(cBrd.StopFlowRegulationOp()) - .EnterState(); - do { - e = StateMachine.WaitRunDevsRunOps(); - if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; } - if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; } - } - while (!e.Contains(Event.FlowRegulationStopped)); - /// /// (Berlin:) Water is stopped immediately after the test and before the 2nd mass measurement in case: /// - no 'transition sequence after test' is used @@ -656,7 +623,7 @@ namespace TBF.Rig.TestMethods.DiverterTest { State.Create(string.Format("{0}({1}) : Open the drain valve", test.Method, test.Name)) .AddOperation(checkUiOp) - .AddOperation(StateMachine.ControlBoard.SetValvesOp(scale.DrainValve, null)) + .AddOperation(cBrd.SetValvesOp(scale.DrainValve, null)) .AddOperations(readTempPressOps) .EnterState(); do