diff --git a/Results/Results.csproj b/Results/Results.csproj
index c19b74969..1a68eeeb8 100644
--- a/Results/Results.csproj
+++ b/Results/Results.csproj
@@ -247,6 +247,7 @@
ResXFileCodeGenerator
Strings.Designer.cs
+ Designer
diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs
index 7d803eb22..e0979e3dc 100644
--- a/TBF/Properties/AssemblyInfo.cs
+++ b/TBF/Properties/AssemblyInfo.cs
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("3.9.3134.107")]
-[assembly: AssemblyFileVersion("3.9.3134.107")]
+[assembly: AssemblyVersion("3.9.3134.108")]
+[assembly: AssemblyFileVersion("3.9.3134.108")]
diff --git a/TBF/Rig/ControlBoard/Uni/GeneralData.cs b/TBF/Rig/ControlBoard/Uni/GeneralData.cs
index 1e360cd27..301d035f0 100644
--- a/TBF/Rig/ControlBoard/Uni/GeneralData.cs
+++ b/TBF/Rig/ControlBoard/Uni/GeneralData.cs
@@ -1,8 +1,10 @@
-///
+using log4net;
+using SharedComponents;
+///
/// Copyright (c) 2021 Sensus Slovensko a.s.
///
using System;
-using log4net;
+using System.Text;
namespace TBF.Rig.ControlBoard.Uni
{
@@ -206,6 +208,8 @@ namespace TBF.Rig.ControlBoard.Uni
log.InfoFormat("Et={0} State={1:X14} Route={2} Freq={3} EtPulses={4} TTime={5} WMPulses[3]={6} WMRefPulses[3]={7}, Time[3]={8}",
State & 7, State, Utils.ToBin40(Vystupy >> 8), ReferenceFreq[0], EtPulses[0], Ttime, WMeterPuls[3], EtPulses[3], ImpulseTime[3]);
+ LiveLogCache.Instance.AddLog(String.Format("Et={0} State={1:X14} Route={2} Freq={3} EtPulses={4} TTime={5} WMPulses[3]={6} WMRefPulses[3]={7}, Time[3]={8}",
+ State & 7, State, Utils.ToBin40(Vystupy >> 8), ReferenceFreq[0], EtPulses[0], Ttime, WMeterPuls[3], EtPulses[3], ImpulseTime[3]));
}
///
diff --git a/TBF/Rig/ControlBoard/Uni/StandingStartStopTestOp.cs b/TBF/Rig/ControlBoard/Uni/StandingStartStopTestOp.cs
index edfa9c3b7..6c6cbc958 100644
--- a/TBF/Rig/ControlBoard/Uni/StandingStartStopTestOp.cs
+++ b/TBF/Rig/ControlBoard/Uni/StandingStartStopTestOp.cs
@@ -1,12 +1,13 @@
-///
+using Common;
+using log4net;
+using SharedComponents;
+///
/// Copyright (c) 2021 Sensus Slovensko a.s.
///
using System;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
-using Common;
-using log4net;
using TBF.Rig.GenericDevices;
namespace TBF.Rig.ControlBoard.Uni
@@ -24,6 +25,7 @@ namespace TBF.Rig.ControlBoard.Uni
readonly TBF.Rig.Uni.FlowMetersInParallel.FlowMeter flowMeterInParallel;
readonly TBF.Rig.Uni.Diverter.Diverter diverter;
readonly int pulsesCount; /// Number of reference pulses for a complete test
+ readonly int massPulsesCount; /// Number of reference pulses for mass collection
readonly bool withDiverter; /// Test with diverter (and scale)
private DateTime startTimeForSimulation;
@@ -69,16 +71,16 @@ namespace TBF.Rig.ControlBoard.Uni
{
string deviceInfo = GetAllDevicesInfo(devices);
string flowMeterStatus = devices.FlowMeter == null
- ? "devices.FlowMeter je NULL"
- : $"devices.FlowMeter je typu: {devices.FlowMeter.GetType().FullName}";
+ ? "devices.FlowMeter is NULL"
+ : $"devices.FlowMeter is type of: {devices.FlowMeter.GetType().FullName}";
MessageBox.Show(
- $"Chyba počas zastavenia regulácie prietoku, v ramci StandingStartStopTestOp() pre flowMeter:\n" +
+ $"Error during flow control stop, within StandingStartStopTestOp() for flowMeter:\n" +
$"{ex.Message}\n\n" +
- $"Diagnostika:\n{flowMeterStatus}\n\n" +
+ $"Diagnostic:\n{flowMeterStatus}\n\n" +
$"{deviceInfo}\n\n" +
$"Stack trace:\n{ex.StackTrace}",
- "Chyba",
+ "Error",
MessageBoxButtons.OK,
MessageBoxIcon.Error
);
@@ -101,9 +103,9 @@ namespace TBF.Rig.ControlBoard.Uni
string deviceInfo = GetAllDevicesInfo(devices);
MessageBox.Show(
- $"Chyba počas zastavenia regulácie prietoku, v ramci StandingStartStopTestOp() pre diverter:\n" +
+ $"Error while stopping the flow control, within StandingStartStopTestOp() for the diverter:\n" +
$"{ex.Message}\n\n{deviceInfo}\n\nStack trace:\n{ex.StackTrace}",
- "Chyba",
+ "Error",
MessageBoxButtons.OK,
MessageBoxIcon.Error
);
@@ -117,10 +119,10 @@ namespace TBF.Rig.ControlBoard.Uni
string GetAllDevicesInfo(object obj)
{
- if (obj == null) return "devices objekt je null.";
+ if (obj == null) return "devices object is null.";
StringBuilder sb = new StringBuilder();
- sb.AppendLine("Zoznam zariadení v devices:");
+ sb.AppendLine("List of devices:");
var props = obj.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);
foreach (var prop in props)
@@ -133,7 +135,7 @@ namespace TBF.Rig.ControlBoard.Uni
}
catch (Exception ex)
{
- sb.AppendLine($"{prop.Name}: [Chyba pri načítaní - {ex.Message}]");
+ sb.AppendLine($"{prop.Name}: [Loading error - {ex.Message}]");
}
}
@@ -220,9 +222,11 @@ namespace TBF.Rig.ControlBoard.Uni
if (uniCB.RefPulses < pulsesCount)
{
+ LiveLogCache.Instance.AddLog(String.Format("SSSOp: uniCB.RefPulses = {0}/{1}", uniCB.RefPulses, pulsesCount));
return Event.TestInProgress; /// Test was not completed yet
}
opState = OpState.TestCompleted;
+ LiveLogCache.Instance.AddLog(String.Format("SSSOp: TestComplet"));
return Event.TestCompleted;
case OpState.TestCompleted:
diff --git a/TBF/Rig/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs b/TBF/Rig/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs
index a5e6054df..10dead439 100644
--- a/TBF/Rig/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs
+++ b/TBF/Rig/TestMethods/FlyingStartMassCollection/FlyingStartMassCollectionSeq.cs
@@ -1,6 +1,8 @@
using Common;
using Config.Entities;
using log4net;
+using Results.Entities;
+using SharedComponents;
///
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
///
@@ -10,7 +12,6 @@ using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml.Serialization;
-using Results.Entities;
using TBF.Boxes;
using TBF.Resources;
using TBF.Rig;
@@ -761,7 +762,7 @@ namespace TBF.Rig.TestMethods.FlyingStartMassCollection
tstRslt.FlowSetTime = flowSetTime;
tstRslt.TestTime = cBrd.TestTime; /// [s] measurement time
tstRslt.PulsesMaster = Convert.ToDouble(cBrd.RefPulses); /// Pulses of the master flow meter (test total)
- tstRslt.MassStartRaw = StartMass.Val;
+ tstRslt.MassStartRaw = StartMass.Val;
tstRslt.MassEndRaw = EndMass.Val;
tstRslt.TimeBtwnMassMsrmnts = tMass2 - tMass1;
tstRslt.ConstMasterRaw = outPath.FlowMeter.LtrPerPulse;
diff --git a/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs b/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs
index 26e7d1f45..ede419cbb 100644
--- a/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs
+++ b/TBF/Rig/TestMethods/StandingStartMassCollection/StandingStartMassCollectionSeq.cs
@@ -2,6 +2,8 @@
using Config.Entities;
using log4net;
using NHibernate.Action;
+using SharedComponents;
+
///
/// Copyright (c) 2013-2021 Sensus Slovensko a.s.
///
@@ -78,21 +80,21 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
return true;
}
- ///
- /// Fixed start mass collection method sequence
- ///
- /// Test entity
- ///
- /// Event.Done . . . . . . . OK
- /// Event.MakeSecondPass . . OK, 2nd pass (=evaluation) required
- /// Event.UiCmdStop . . . . Stopped by the user using the on-screen button STOP
- /// Event.OpArgumentError . Target flow is out of range
- /// Event.Error . . . . . . Unspecified error
- ///
- public IList Execute(Config.Entities.Test test, int repetitionNr, bool isLastRepetition,
+ ///
+ /// Fixed start mass collection method sequence
+ ///
+ /// Test entity
+ ///
+ /// Event.Done . . . . . . . OK
+ /// Event.MakeSecondPass . . OK, 2nd pass (=evaluation) required
+ /// Event.UiCmdStop . . . . Stopped by the user using the on-screen button STOP
+ /// Event.OpArgumentError . Target flow is out of range
+ /// Event.Error . . . . . . Unspecified error
+ ///
+ public IList Execute(Config.Entities.Test test, int repetitionNr, bool isLastRepetition,
bool compound,
- HeatMeters.TestParams heatMetersTestParams,
- Common.DebugMode debugLevel)
+ HeatMeters.TestParams heatMetersTestParams,
+ Common.DebugMode debugLevel)
{
ControlBoard.IControlBoard cBrd = StateMachine.ControlBoardMain;
IScale scale = cBrd.Devices.Scale as IScale;
@@ -105,7 +107,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
}
IList e; /// Events from currently running operations
- int waterMetersCount = Math.Min(BenchInfo.WaterMetersCount, sensPath.RegisterReaders.Length);
+ int waterMetersCount = Math.Min(BenchInfo.WaterMetersCount, sensPath.RegisterReaders.Length);
DateTimeBox timeStampStart = new DateTimeBox();
DateTimeBox timeStampEnd = new DateTimeBox();
FloatBox startSwitchTime = new FloatBox();
@@ -186,53 +188,53 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
IOperation heatMetersPromptOp = null;
if (heatMetersTestParams != null && !string.IsNullOrEmpty(heatMetersTestParams.Prompt))
{
- /// Make sure the CycleBeginForm is closed
- if (UIFlowControl.Stop == WaitBeginFormClosed()) goto stopTest;
+ /// Make sure the CycleBeginForm is closed
+ if (UIFlowControl.Stop == WaitBeginFormClosed()) goto stopTest;
- heatMetersPromptOp = new Operations.MessageBoxOp(heatMetersTestParams.Prompt);
+ heatMetersPromptOp = new Operations.MessageBoxOp(heatMetersTestParams.Prompt);
}
if (test.DoDraining || (scale.Mass + test.Volume >= scale.Capacity * Constants.TankFullFactor))
- {
+ {
///
/// There is not enough room in the tank OR unconditional draining ... drain the water tank
///
IList ops = new List(readTempPressOps);
ops.Add(heatMetersPromptOp);
- switch (DrainTheTank(scale, ops))
- {
- case Event.Error: { retVal = Event.Error; goto stopTest; }
- case Event.UiCmdStop: { retVal = Event.UiCmdStop; goto stopTest; }
- }
- }
- ///
- /// Make sure the drain valve is closed
- ///
- State.Create(string.Format("{0}({1}) : Make sure the drain valve is closed", test.Method, test.Name))
- .AddOperation(checkUiOp)
+ switch (DrainTheTank(scale, ops))
+ {
+ case Event.Error: { retVal = Event.Error; goto stopTest; }
+ case Event.UiCmdStop: { retVal = Event.UiCmdStop; goto stopTest; }
+ }
+ }
+ ///
+ /// Make sure the drain valve is closed
+ ///
+ State.Create(string.Format("{0}({1}) : Make sure the drain valve is closed", test.Method, test.Name))
+ .AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
- .AddOperation(heatMetersPromptOp)
- .AddOperation(cBrd.SetValvesOp(null, scale.DrainValve))
- .EnterState();
- do {
- e = StateMachine.WaitRunDevsRunOps();
- Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.JustStarted));
+ .AddOperation(heatMetersPromptOp)
+ .AddOperation(cBrd.SetValvesOp(null, scale.DrainValve))
+ .EnterState();
+ do {
+ e = StateMachine.WaitRunDevsRunOps();
+ Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.JustStarted));
- if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
- if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
- }
- while (!e.Contains(Event.ValvesSet));
+ if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
+ if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
+ }
+ while (!e.Contains(Event.ValvesSet));
//------------------------------------------------
Bridge.OnActivity(this, Strings.Starting_the_pump);
//------------------------------------------------
- Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.FlowSetting));
- int flowSetTime0 = StateMachine.Time;
+ Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.FlowSetting));
+ int flowSetTime0 = StateMachine.Time;
- if (inPath.Pump is GenericDevices.IPumpFM) (inPath.Pump as GenericDevices.IPumpFM).TurnOn(test.PumpPower);
+ if (inPath.Pump is GenericDevices.IPumpFM) (inPath.Pump as GenericDevices.IPumpFM).TurnOn(test.PumpPower);
///
State.Create(string.Format("{0}({1}) : Starting the pump", test.Method, test.Name))
.AddOperation(checkUiOp)
@@ -246,9 +248,9 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.FlowSetting));
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
- if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
+ if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
}
- while (e.Contains(Event.ValvesBusy) /* || !e.Contains(Event.AllPositionsReached)*/);
+ while (e.Contains(Event.ValvesBusy) /* || !e.Contains(Event.AllPositionsReached)*/);
if (test.TimePump2StartV > 0)
@@ -280,7 +282,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
do {
e = StateMachine.WaitRunDevsRunOps();
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
- if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
+ if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
}
while (!e.Contains(Event.ValvesSet));
}
@@ -316,7 +318,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
.AddOperations(readTempPressOps)
.AddOperation(cBrd.SetValvesOp(inPath.Pump, null))
.AddOperation(heatMetersPromptOp)
- .EnterState();
+ .EnterState();
do {
e = StateMachine.WaitRunDevsRunOps();
Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.FlowSetting));
@@ -344,13 +346,13 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
.AddOperations(readTempPressOps)
.AddOperation(cBrd.SetFlowOp(test.QfromM3ph(), test.QtoM3ph(), RefFlow, FlowSettingTimeoutSec))//...develop: step 1
.AddOperation(heatMetersPromptOp)
- .EnterState();
+ .EnterState();
do {
e = StateMachine.WaitRunDevsRunOps();
Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.FlowSetting));
if (e.Contains(Event.OpArgumentError)) { retVal = Event.OpArgumentError; goto stopTest; }
- if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
+ if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
if (e.Contains(Event.RegulValveTimeOut))
{
Bridge.OnError(this, Strings.Flow_adjustment_failed);
@@ -376,14 +378,14 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
//---------------------------------------------------
int lastTimeSec = StateMachine.Time;
- double Tw_last = 0;
- double Tc_last = 0;
+ double Tw_last = 0;
+ double Tc_last = 0;
State.Create(string.Format("{0}({1}) : Checking if the temperature is stable", test.Method, test.Name))
.AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
- .AddOperation(heatMetersPromptOp)
- .EnterState();
+ .AddOperation(heatMetersPromptOp)
+ .EnterState();
do {
e = StateMachine.WaitRunDevsRunOps();
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
@@ -392,56 +394,56 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
break; /// Simulate temperature is within range
}
- if (TempRefHi1.Val != 0 && TempRefHi2.Val != 0 && TempRefLo1.Val != 0 && TempRefLo2.Val != 0)
- {
- if (StateMachine.Time - lastTimeSec > 10 || StateMachine.Time - lastTimeSec < 0)
- {
- double Tw = (TempRefHi1.Val + TempRefHi2.Val) / 2;
- double Tc = (TempRefLo1.Val + TempRefLo2.Val) / 2;
- if ((heatMetersTestParams.TempWarmLo <= Tw) && (Tw <= heatMetersTestParams.TempWarmHi) &&
- (heatMetersTestParams.TempColdLo <= Tc) && (Tc <= heatMetersTestParams.TempColdHi) &&
- (Math.Abs(Tw - Tw_last) <= heatMetersTestParams.ChangeInTimeWarm) &&
- (Math.Abs(Tc - Tc_last) <= heatMetersTestParams.ChangeInTimeCold) &&
- (Math.Abs(TempRefHi1.Val - TempRefHi2.Val) <= heatMetersTestParams.DeltaTempWarm) &&
- (Math.Abs(TempRefLo1.Val - TempRefLo2.Val) <= heatMetersTestParams.DeltaTempCold))
- {
+ if (TempRefHi1.Val != 0 && TempRefHi2.Val != 0 && TempRefLo1.Val != 0 && TempRefLo2.Val != 0)
+ {
+ if (StateMachine.Time - lastTimeSec > 10 || StateMachine.Time - lastTimeSec < 0)
+ {
+ double Tw = (TempRefHi1.Val + TempRefHi2.Val) / 2;
+ double Tc = (TempRefLo1.Val + TempRefLo2.Val) / 2;
+ if ((heatMetersTestParams.TempWarmLo <= Tw) && (Tw <= heatMetersTestParams.TempWarmHi) &&
+ (heatMetersTestParams.TempColdLo <= Tc) && (Tc <= heatMetersTestParams.TempColdHi) &&
+ (Math.Abs(Tw - Tw_last) <= heatMetersTestParams.ChangeInTimeWarm) &&
+ (Math.Abs(Tc - Tc_last) <= heatMetersTestParams.ChangeInTimeCold) &&
+ (Math.Abs(TempRefHi1.Val - TempRefHi2.Val) <= heatMetersTestParams.DeltaTempWarm) &&
+ (Math.Abs(TempRefLo1.Val - TempRefLo2.Val) <= heatMetersTestParams.DeltaTempCold))
+ {
break; /// Temperature is withing required range
}
- lastTimeSec = StateMachine.Time;
- Tw_last = Tw;
- Tc_last = Tc;
- }
- }
+ lastTimeSec = StateMachine.Time;
+ Tw_last = Tw;
+ Tc_last = Tc;
+ }
+ }
}
while (true);
}
- else if (!string.IsNullOrEmpty(test.TempControl) && benchPath.TempMtrUp != null && benchPath.TempMtrDown != null)
- {
- //---------------------------------------------------
- Bridge.OnActivity(this, Strings.Setting_temperature);
- //---------------------------------------------------
+ else if (!string.IsNullOrEmpty(test.TempControl) && benchPath.TempMtrUp != null && benchPath.TempMtrDown != null)
+ {
+ //---------------------------------------------------
+ Bridge.OnActivity(this, Strings.Setting_temperature);
+ //---------------------------------------------------
- State.Create(string.Format("{0}({1}) : Wait until the water temperature is within limits", test.Method, test.Name))
- .AddOperation(checkUiOp)
+ State.Create(string.Format("{0}({1}) : Wait until the water temperature is within limits", test.Method, test.Name))
+ .AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
- .EnterState();
- do {
- e = StateMachine.WaitRunDevsRunOps();
- if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
+ .EnterState();
+ do {
+ e = StateMachine.WaitRunDevsRunOps();
+ if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
if (e.Contains(Event.Next))
{
break; /// Simulate temperature is within range
}
- if (TempUp.Val >= test.TempLimLo && TempUp.Val <= test.TempLimHi &&
- TempDown.Val >= test.TempLimLo && TempDown.Val <= test.TempLimHi)
- {
+ if (TempUp.Val >= test.TempLimLo && TempUp.Val <= test.TempLimHi &&
+ TempDown.Val >= test.TempLimLo && TempDown.Val <= test.TempLimHi)
+ {
break; /// Temperature set withing required range
}
- }
- while (true);
- }
+ }
+ while (true);
+ }
///
/// Temperature is withing required range at this point
@@ -462,7 +464,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
//-----------------------------------------------------------------
Bridge.OnActivity(this, Strings.Stopping_flow_for_the_fixed_start);
- //-----------------------------------------------------------------
+ //-----------------------------------------------------------------
State.Create(string.Format("{0}({1}) : Stop flow regulation", test.Method, test.Name))
.AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
@@ -471,7 +473,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
- IOperation testInProgress = cBrd.StandingStartStopTestOp(test, 2 * totalPulses, Devices.Diverter is TBF.Rig.Uni.Diverter.Diverter);
+ IOperation testInProgress = cBrd.StandingStartStopTestOp(test, /*2 * */totalPulses, Devices.Diverter is TBF.Rig.Uni.Diverter.Diverter);
IOperation controlFlowOp = cBrd.SetFlowOp(test.QfromM3ph(), test.QtoM3ph(), RefFlow, int.MaxValue, test.TimeBeforeFlow);
State.Create(string.Format("{0}({1}) : Close the start/stop valve before measuring the start mass", test.Method, test.Name))
@@ -481,7 +483,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
.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.ValvesSet));
@@ -490,7 +492,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
///-----------------
delay = test.TimeFlow2Mass;
- if (delay > 0)
+ if (delay > 0)
{
State.Create(string.Format("{0}({1}) : Delay for meters stabilization ", test.Method, test.Name, delay))
.AddOperation(checkUiOp)
@@ -512,7 +514,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
State.Create(string.Format("{0}({1}) : Start the standing start/stop test", test.Method, test.Name))
.AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
- .AddOperation(testInProgress) //...develop: step 4 --> diverter switch to the mass
+ .AddOperation(cBrd.StandingStartStopTestOp(test, 2 * totalPulses, Devices.Diverter is TBF.Rig.Uni.Diverter.Diverter)) //...develop: step 4 --> diverter switch to the mass
.EnterState();
for (int i = 0; i < 3; i++)
{
@@ -534,10 +536,10 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
if (heatMetersPath == null) LogProcessDataHeader(processDataLogger, "Start mass");
else LogProcessDataHeaderHeatMeters(processDataLogger, "Start mass");
- ///
- /// Enter water meter begin states and read the start mass at the same time
- ///
- GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm;
+ ///
+ /// Enter water meter begin states and read the start mass at the same time
+ ///
+ GenericDevices.IHasWMStatesForm dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IHasWMStatesForm;
IOperation readStartMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread);
IOperation readStopMassOp = scale.ReadStableMassOp(ref StartMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread);
IOperation readEndMassOp = scale.ReadStableMassOp(ref EndMass, test.TimeStop2Mass, test.MassMethod, test.MassRepeats, test.MassSpread);
@@ -568,7 +570,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
triggerValve = roi.GetValve();
if (triggerValve != null && !triggerSend)
{
- OpenValveGrabImage(cBrd,testInProgress, triggerValve, e,
+ OpenValveGrabImage(cBrd, testInProgress, triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve open", test.Method, test.Name));
triggerSend = true;
}
@@ -591,18 +593,18 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.Test));
- if (e.Contains(Event.Error)) { retVal = Event.Error; break; }
+ if (e.Contains(Event.Error)) { retVal = Event.Error; break; }
if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; break; }
}
while (e.Contains(Event.CameraBusy));
(dataEntryCmpnt as GenericDevices.IDataEntryForCamera).StartImages = startImages;
}
-
+
///valve trigger camera close
if (triggerValve != null)
{
- CloseValveGrabImage(cBrd,testInProgress,triggerValve, e,
+ CloseValveGrabImage(cBrd, testInProgress, triggerValve, e,
string.Format("{0}({1}) : Grabbing images - valve close", test.Method, test.Name));
}
///////
@@ -628,7 +630,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
}
while (!e.Contains(Event.ModelessFormClosed) || !e.Contains(Event.ScaleDone));
long readEndTime = StateMachine.Time;
-
+
log.Debug("Read poseidon - took:" + (readEndTime - readStartTime));
if (heatMetersTestParams != null)
@@ -670,7 +672,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
{
(rr as Rig.Network.Camera.RoiForFixedStartKeyence.Roi).BeginWMState =
dataEntryCmpnt.WMStartState(i);
- log.DebugFormat(" StandingStartMassCollectionSeq.cs - BeginWMState [{0}] -> RoiForFixedStartKeyence.Roi",dataEntryCmpnt.WMStartState(i));
+ log.DebugFormat(" StandingStartMassCollectionSeq.cs - BeginWMState [{0}] -> RoiForFixedStartKeyence.Roi", dataEntryCmpnt.WMStartState(i));
}
if (rr is Rig.Network.Camera.RoiForFixedStartCJMS11.Roi)
(rr as Rig.Network.Camera.RoiForFixedStartCJMS11.Roi).BeginWMState = dataEntryCmpnt.WMStartState(i);
@@ -696,7 +698,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
string destFName = string.IsNullOrEmpty((dataEntryCmpnt as IDataEntryForCamera).TestStartImgName(i, testName))
? fileName : (dataEntryCmpnt as IDataEntryForCamera).TestStartImgName(i, testName);
File.Copy(Path.Combine(srcDir, fileName), Path.Combine(destDir, destFName), true);
- log.DebugFormat("Save images sourceFile: {0}, destFile: {1} ",Path.Combine(srcDir, fileName), Path.Combine(destDir, destFName));
+ log.DebugFormat("Save images sourceFile: {0}, destFile: {1} ", Path.Combine(srcDir, fileName), Path.Combine(destDir, destFName));
}
}
catch (Exception exc)
@@ -734,7 +736,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
.AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
.AddOperation(testInProgress)//...nevhodne prepina diverter
- //.AddOperation(readStartMassOp)
+ //.AddOperation(readStartMassOp)
.AddOperation(scale.ReadStableMassOp(ref StartMass, test.TimeFlow2Mass, test.MassMethod, test.MassRepeats, test.MassSpread))
.AddOperation(processDataLoggingOp)
.EnterState();
@@ -775,7 +777,9 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
StartNewStatistics(outPath.FlowMeter, BatchRslts.Batch.BatchNr, test, repetitionNr, Math.Max((int)(test.TestTime / 10), 5));
int initialPulsesCount = RefPulses;
+ int finalPulsesCount = 0;
+ LiveLogCache.Instance.AddLog(String.Format("SSMC: Start the test, open the start/stop valve"));
State.Create(string.Format("{0}({1}) : Start the test, open the start/stop valve", test.Method, test.Name))
.AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
@@ -787,14 +791,17 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
do {
e = StateMachine.WaitRunDevsRunOps();
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; }
+ if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
+ if (TestAndLogUiCmdStop(test, e)) { retVal = Event.UiCmdStop; goto stopTest; }
/// Update statistics
RefFrequency.Val = cBrd.RefFrequency;
RefFlow.Val = outPath.FlowMeter.ReadFlow();
UpdateAllStatistics();
+ LiveLogCache.Instance.AddLog(String.Format("SSMC: finalPulsesCount = {0}", finalPulsesCount));
+
+
#region Heat meters
if (heatMetersTestParams != null)
@@ -820,9 +827,13 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
#endregion
Bridge.OnTestProgress(this, new TestProgressEventArgs(test, repetitionNr, Progress.Test));
+
+
+ LiveLogCache.Instance.AddLog(String.Format("SSMC: e.Contains(Event.TestCompleted) = {0}", e.Contains(Event.TestCompleted)));
+ LiveLogCache.Instance.AddLog(String.Format("SSMC: e.Contains(Event.Next) = {0}", e.Contains(Event.Next)));
}
- while ((cBrd.DebugLevel==DebugMode.Simulate && !e.Contains(Event.FlowReached)) ||
- (cBrd.DebugLevel!=DebugMode.Simulate && cBrd.RefPulses < initialPulsesCount + totalPulses && !e.Contains(Event.TestCompleted) && !e.Contains(Event.Next)));
+ while ((cBrd.DebugLevel == DebugMode.Simulate && !e.Contains(Event.FlowReached)) ||
+ (cBrd.DebugLevel != DebugMode.Simulate && (/*&& cBrd.RefPulses < initialPulsesCount + totalPulses*/ !e.Contains(Event.TestCompleted)) && !e.Contains(Event.Next)));
/// Measurement loop end
log.WarnFormat("Start valve switch time on test start = {0} ms", cBrd.ValveOpenCloseTime);
@@ -830,6 +841,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
EndTime = (double)StateMachine.Time;
TestEndTime = DateTime.Now;
+ LiveLogCache.Instance.AddLog(String.Format("SSMC: Closing the start/stop valve at the end of the standing start/stop test"));
State.Create(string.Format("{0}({1}) : Closing the start/stop valve at the end of the standing start/stop test", test.Method, test.Name))
.AddOperation(checkUiOp)
.AddOperations(readTempPressOps)
@@ -840,6 +852,7 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
do {
e = StateMachine.WaitRunDevsRunOps();
if (e.Contains(Event.Error)) { retVal = Event.Error; goto stopTest; }
+ finalPulsesCount = cBrd.RefPulses;
}
while (e.Contains(Event.ValvesBusy));
@@ -1126,12 +1139,14 @@ namespace TBF.Rig.TestMethods.StandingStartMassCollection
/// Raw data
UpdateTempPressDensAmb(tstRslt);
- tstRslt.MethodClass = TbfComponents.FindComponent(test.Method).ClassName;
- tstRslt.StartTime = TestStartTime;
- tstRslt.EndTime = TestEndTime;
- tstRslt.FlowSetTime = flowSetTime;
- tstRslt.TestTime = Math.Max(1.0, DateTimeBox.DurationSec(timeStampStart, timeStampEnd)); /// Min. 1s to prevent division by zero
- tstRslt.PulsesMaster = Convert.ToDouble(cBrd.RefPulses); /// Pulses of the master flow meter (test total)
+ tstRslt.MethodClass = TbfComponents.FindComponent(test.Method).ClassName;
+ tstRslt.StartTime = TestStartTime;
+ tstRslt.EndTime = TestEndTime;
+ tstRslt.FlowSetTime = flowSetTime;
+ tstRslt.TestTime = Math.Max(1.0, DateTimeBox.DurationSec(timeStampStart, timeStampEnd)); /// Min. 1s to prevent division by zero
+ tstRslt.PulsesMaster = Convert.ToDouble(finalPulsesCount);// Convert.ToDouble(cBrd.RefPulses);
+ LiveLogCache.Instance.AddLog(String.Format("SSMC: tstRslt.PulsesMaster = {0}", tstRslt.PulsesMaster));
+ /// Pulses of the master flow meter (test total)
tstRslt.MassStartRaw = StartMass.Val;
tstRslt.MassEndRaw = EndMass.Val;
tstRslt.TimeBtwnMassMsrmnts = tMass2 - tMass1;
diff --git a/TBF/UI/MainWnd.resx b/TBF/UI/MainWnd.resx
index 6fe90fc60..559793002 100644
--- a/TBF/UI/MainWnd.resx
+++ b/TBF/UI/MainWnd.resx
@@ -739,7 +739,7 @@
processTabPageCtrl
- TBF.UI.Process.ProcessTabPageCtrl, TBF, Version=3.9.3001.1, Culture=neutral, PublicKeyToken=null
+ TBF.UI.Process.ProcessTabPageCtrl, TBF, Version=3.9.3134.107, Culture=neutral, PublicKeyToken=null
processTabPage
@@ -817,7 +817,7 @@
resultsTabPageCtrl
- TBF.UI.ResultsMI.ResultsTabPageCtrl, TBF, Version=3.9.3001.1, Culture=neutral, PublicKeyToken=null
+ TBF.UI.ResultsMI.ResultsTabPageCtrl, TBF, Version=3.9.3134.107, Culture=neutral, PublicKeyToken=null
resultsTabPage
@@ -871,7 +871,7 @@
graphsTabPageCtrl
- TBF.UI.Graphs.GraphsTabPageCtrl, TBF, Version=3.9.3001.1, Culture=neutral, PublicKeyToken=null
+ TBF.UI.Graphs.GraphsTabPageCtrl, TBF, Version=3.9.3134.107, Culture=neutral, PublicKeyToken=null
graphsTabPage
@@ -925,7 +925,7 @@
eventLogsTabPageCtrl
- TBF.UI.EventLogs.EventLogsTabPageCtrl, TBF, Version=3.9.3001.1, Culture=neutral, PublicKeyToken=null
+ TBF.UI.EventLogs.EventLogsTabPageCtrl, TBF, Version=3.9.3134.107, Culture=neutral, PublicKeyToken=null
eventLogsTabPage
@@ -979,7 +979,7 @@
calendarTabPageCtrl
- TBF.UI.Calendar.CalendarTabPageCtrl, TBF, Version=3.9.3001.1, Culture=neutral, PublicKeyToken=null
+ TBF.UI.Calendar.CalendarTabPageCtrl, TBF, Version=3.9.3134.107, Culture=neutral, PublicKeyToken=null
calendarTabPage
@@ -1033,7 +1033,7 @@
picturesTabPageCtrl
- TBF.UI.Camera.PicturesTabPageCtrl, TBF, Version=3.9.3001.1, Culture=neutral, PublicKeyToken=null
+ TBF.UI.Camera.PicturesTabPageCtrl, TBF, Version=3.9.3134.107, Culture=neutral, PublicKeyToken=null
picturesTabPage