diff --git a/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs b/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs
index b7f8bbb15..3a985924a 100644
--- a/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs
+++ b/TestBenchFramework/BenchControl/ResultsWriters/Basic/Writer.cs
@@ -13,6 +13,12 @@ namespace TBF.BenchControl.ResultsWriters.Basic
readonly WriterCfg writerCfg;
+ ///
+ /// Result items to print
+ ///
+ IList resultItems;
+ bool combined;
+
///
/// Results to print
///
@@ -34,12 +40,25 @@ namespace TBF.BenchControl.ResultsWriters.Basic
/// Reference to the operation
public IOperation WriteResultsOp(IList results)
{
- if ((results == null) || (results.Count == 0))
+ if ((results == null) || (results.Count == 0) ||
+ ((results[0].MetersKind != Entities.MetersKind.Single) &&
+ (results[0].MetersKind != Entities.MetersKind.Combined)))
{
writer = null;
return this;
}
+ if (results[0].MetersKind == Entities.MetersKind.Single)
+ {
+ resultItems = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_SingleWM);
+ combined = false;
+ }
+ else
+ {
+ resultItems = Forms.ResultItemSpec.FromStrArray(Program.LocalSettings.RsltItems_Disk_CombinedWM);
+ combined = true;
+ }
+
this.results = results;
now = DateTime.Now;
try
@@ -85,44 +104,26 @@ namespace TBF.BenchControl.ResultsWriters.Basic
}
writer.WriteLine("Bereich : 22,9 °C 947 mbar 43 %");
writer.WriteLine("");
- writer.WriteLine("Test Metode MIDFehler Durchfluss Test Zeit T1 T2 Dichte Masse Druck Volume Bor");
- writer.WriteLine(" [%] [m3/h] [s] [°C] [°C] [kg/m3] [kg] [MPa] [L] [m3/h]");
+
+ foreach (var item in resultItems) writer.Write(item.ClmnHeaderText);
+ writer.WriteLine(string.Empty);
+
writer.WriteLine("---------------------------------------------------------------------------------------------------------------------------------------");
foreach (var tr in results)
{
- if (tr.MetersKind == Entities.MetersKind.Single)
+ foreach (var item in resultItems)
{
- writer.WriteLine(string.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11}",
- tr.Name,
- tr.Method,
- tr.Meters[0].VolumeErrorPct,
- tr.FlowMass,
- tr.Time,
- tr.TempInAvrg,
- tr.TempDivAvrg,
- tr.DensityOut,
- tr.MassDiff,
- tr.PressInAvrg,
- tr.PressOutAvrg,
- tr.VolumeCTV));
- }
- else if (tr.MetersKind == Entities.MetersKind.Combined)
- {
- writer.WriteLine(string.Format("{0} {1} {2} {3} {4} {5} {6} {7} {8} {9} {10} {11}",
- tr.Name,
- tr.Method,
- tr.CombinedMeters[0].VolumeErrorPct,
- tr.FlowMass,
- tr.Time,
- tr.TempInAvrg,
- tr.TempDivAvrg,
- tr.DensityOut,
- tr.MassDiff,
- tr.PressInAvrg,
- tr.PressOutAvrg,
- tr.VolumeCTV));
+ if (combined)
+ {
+ writer.Write(item.PrintCombined(tr.CombinedMeters[0], tr.Meters[0], tr.Meters[1]));
+ }
+ else
+ {
+ writer.Write(item.Print(tr.Meters[0]));
+ }
}
+ writer.WriteLine(string.Empty);
}
writer.WriteLine("---------------------------------------------------------------------------------------------------------------------------------------");
diff --git a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs
index cb7dc223d..f690bf318 100644
--- a/TestBenchFramework/BenchControl/Sequences/MainSeq.cs
+++ b/TestBenchFramework/BenchControl/Sequences/MainSeq.cs
@@ -352,7 +352,7 @@ namespace TBF.BenchControl.Sequences
GenericDevices.IDataEntry dataEntryCmpnt = TbfComponents.FindComponent(StateMachine.Procedure.DataEntry) as GenericDevices.IDataEntry;
if (dataEntryCmpnt != null)
{
- Bridge.OnActivity(this, "Enter the protocol data");
+ Bridge.OnActivity(this, "Enter protocol data");
if (dataEntryCmpnt is IHasCycleEndForm)
{
@@ -377,37 +377,28 @@ namespace TBF.BenchControl.Sequences
dataEntryCmpnt.UpdateTestResults(WaterMeters, results);
}
- //--------------------------------
+ //------------------------------------------------------
+ Bridge.OnActivity(this, "Saving and printing results");
IResultsWriter writer = TbfComponents.FindComponent(StateMachine.Procedure.ResultsWriter) as IResultsWriter;
- if (writer != null)
+ IResultsPrinter printer = TbfComponents.FindComponent(StateMachine.Procedure.ResultsPrinter) as IResultsPrinter;
+ State savingAndPrintingRslts = State.Create("MainSeq : Saving and printing results");
+ if (writer != null) savingAndPrintingRslts.AddOperation(writer.WriteResultsOp(results));
+ if (printer != null) savingAndPrintingRslts.AddOperation(printer.PrintResultsOp(BenchId, WaterMeters, results, protocolTitle));
+ savingAndPrintingRslts.AddOperation(checkUiOp).EnterState();
+ do
{
- State.Create("MainSeq : Saving results")
- .AddOperation(writer.WriteResultsOp(results))
- .AddOperation(checkUiOp)
- .EnterState();
- {
- e = StateMachine.WaitRunDevsRunOps();
- if (e.Contains(Event.Error)) goto error;
- if (e.Contains(Event.UiCmdStop)) goto stop;
- }
+ e = StateMachine.WaitRunDevsRunOps();
+ if (e.Contains(Event.Error)) goto error;
+ if (e.Contains(Event.UiCmdStop)) goto stop;
}
+ while (e.Contains(Event.Busy));
//--------------------------------
- IResultsPrinter printer = TbfComponents.FindComponent(StateMachine.Procedure.ResultsPrinter) as IResultsPrinter;
- if (printer != null)
- {
- State.Create("MainSeq : Printing results")
- .AddOperation(printer.PrintResultsOp(BenchId, WaterMeters, results, protocolTitle))
- .AddOperation(checkUiOp)
- .EnterState();
- {
- e = StateMachine.WaitRunDevsRunOps();
- if (e.Contains(Event.Error)) goto error;
- if (e.Contains(Event.UiCmdStop)) goto stop;
- }
- }
+ Program.LocalSettings.CycleNr++;
+ Program.LocalSettings.Save();
- /// Purge - End
+
+ //--------------------------------------------------------
switch (Transition(purgeEnd, TransitionContext.PurgeEnd))
{
case Event.Error: goto error;
diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs
index c6005a0d9..59a5f2d05 100644
--- a/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/CombinedMeters/CombinedMetersSeq.cs
@@ -331,7 +331,7 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
///
/// Populate TestResult data entity with data
///
- tstRslt.TimeEnd = DateTime.Now;
+ tstRslt.CycleNr = Program.LocalSettings.CycleNr;
UpdateTestRsltWithAveragedData(tstRslt);
tstRslt.MassStart = Formulas.CorrectedValue(tstRslt.MassStartRaw, outPath.Balance.Corrections);
tstRslt.MassEnd = Formulas.CorrectedValue(tstRslt.MassEndRaw, outPath.Balance.Corrections);
diff --git a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs
index 3c51c7f19..ef968de7f 100644
--- a/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/CombinedWithDetection/CombinedWithDetectionSeq.cs
@@ -545,7 +545,7 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection
///
/// Populate TestResult data entity with data
///
- tstRslt.TimeEnd = DateTime.Now;
+ tstRslt.CycleNr = Program.LocalSettings.CycleNr;
UpdateTestRsltWithAveragedData(tstRslt);
tstRslt.MassStart = Formulas.CorrectedValue(tstRslt.MassStartRaw, outPath.Balance.Corrections);
tstRslt.MassEnd = Formulas.CorrectedValue(tstRslt.MassEndRaw, outPath.Balance.Corrections);
diff --git a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
index ae72472a2..7c6c50e11 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FixedStartMassCollection/FixedStartMassCollectionSeq.cs
@@ -422,7 +422,7 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
///
/// Populate TestResult data entity with data
///
- tstRslt.TimeEnd = DateTime.Now;
+ tstRslt.CycleNr = Program.LocalSettings.CycleNr;
UpdateTestRsltWithAveragedData(tstRslt);
tstRslt.MassStart = Formulas.CorrectedValue(tstRslt.MassStartRaw, outPath.Balance.Corrections);
tstRslt.MassEnd = Formulas.CorrectedValue(tstRslt.MassEndRaw, outPath.Balance.Corrections);
diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
index e3e80e8c5..f69cb3c6e 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStart/FlyingStartSeq.cs
@@ -248,6 +248,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStart
/// Populate TestResult data entity with data
///
tstRslt.TimeEnd = DateTime.Now;
+ tstRslt.CycleNr = Program.LocalSettings.CycleNr;
UpdateTestRsltWithAveragedData(tstRslt);
tstRslt.MassStart = 0;
tstRslt.MassEnd = 0;
diff --git a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
index 5e7bfdadb..3f801d4db 100644
--- a/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/FlyingStartCollectionMethod/FlyingStartCollectionMethodSeq.cs
@@ -330,7 +330,7 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
///
/// Populate TestResult data entity with data
///
- tstRslt.TimeEnd = DateTime.Now;
+ tstRslt.CycleNr = Program.LocalSettings.CycleNr;
UpdateTestRsltWithAveragedData(tstRslt);
tstRslt.MassStart = Formulas.CorrectedValue(tstRslt.MassStartRaw, outPath.Balance.Corrections);
tstRslt.MassEnd = Formulas.CorrectedValue(tstRslt.MassEndRaw, outPath.Balance.Corrections);
diff --git a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs
index 39d21c08f..151543b07 100644
--- a/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/ReferenceFlowmeterCalibration/ReferenceFlowmeterCalibrationSeq.cs
@@ -313,7 +313,7 @@ namespace TBF.BenchControl.TestMethods.ReferenceFlowmeterCalibration
///
/// Populate TestResult data entity with data
///
- tstRslt.TimeEnd = DateTime.Now;
+ tstRslt.CycleNr = Program.LocalSettings.CycleNr;
UpdateTestRsltWithAveragedData(tstRslt);
tstRslt.MassStart = Formulas.CorrectedValue(tstRslt.MassStartRaw, outPath.Balance.Corrections);
tstRslt.MassEnd = Formulas.CorrectedValue(tstRslt.MassEndRaw, outPath.Balance.Corrections);
diff --git a/TestBenchFramework/Entities/TestResult.cs b/TestBenchFramework/Entities/TestResult.cs
index fda597d20..1c895a520 100644
--- a/TestBenchFramework/Entities/TestResult.cs
+++ b/TestBenchFramework/Entities/TestResult.cs
@@ -7,6 +7,7 @@ namespace TBF.Entities
{
public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
+ public virtual int CycleNr { get; set; }
public virtual MetersKind MetersKind { get; set; }
public virtual IList Meters { get; set; }
public virtual IList CombinedMeters { get; set; }
diff --git a/TestBenchFramework/Forms/ResultItemSpec.cs b/TestBenchFramework/Forms/ResultItemSpec.cs
index 432494706..14de032d9 100644
--- a/TestBenchFramework/Forms/ResultItemSpec.cs
+++ b/TestBenchFramework/Forms/ResultItemSpec.cs
@@ -43,70 +43,67 @@ namespace TBF.Forms
{
AllItems = new List();
+ /// Common
+ AllItems.Add(new ResultItemSpec("Test name", Strings.Name, x => x.TestResult.TestName,
+ (x, y, z) => x.TestResult.TestName));
+ AllItems.Add(new ResultItemSpec("Procedure name", Strings.Procedure, x => x.TestResult.ProcedureName,
+ (x, y, z) => x.TestResult.ProcedureName));
+ AllItems.Add(new ResultItemSpec("Tets cycle number", "Cycel nr.", x => x.TestResult.CycleNr.ToString(),
+ (x, y, z) => x.TestResult.CycleNr.ToString()));
+
/// Target values
AllItems.Add(new ResultItemSpec("Q from", Strings.Q_from_m3h, x => x.TestResult.Qfrom.ToString("F3"),
(x, y, z) => x.TestResult.Qfrom.ToString("F3")));
-
AllItems.Add(new ResultItemSpec("Q to", Strings.Q_to_m3h, x => x.TestResult.Qto.ToString("F3"),
(x, y, z) => x.TestResult.Qto.ToString("F3")));
+ AllItems.Add(new ResultItemSpec("Test volume", "Volume [l]", x => x.TestResult.Volume.ToString("F1"),
+ (x, y, z) => x.TestResult.Volume.ToString("F1")));
+ AllItems.Add(new ResultItemSpec("Error limit Lo", "ErrLimLo [%]", x => x.TestResult.ErrLimLo.ToString("F1"),
+ (x, y, z) => x.TestResult.ErrLimLo.ToString("F1")));
+ AllItems.Add(new ResultItemSpec("Error limit Hi", "ErrLimHi [%]", x => x.TestResult.ErrLimHi.ToString("F1"),
+ (x, y, z) => x.TestResult.ErrLimHi.ToString("F1")));
/// Test results
AllItems.Add(new ResultItemSpec("Start time", "T start", x => x.TestResult.TimeStart.ToShortTimeString(),
(x, y, z) => z.TestResult.TimeStart.ToShortTimeString()));
-
AllItems.Add(new ResultItemSpec("End time", "T end", x => x.TestResult.TimeEnd.ToShortTimeString(),
(x, y, z) => z.TestResult.TimeEnd.ToShortTimeString()));
-
AllItems.Add(new ResultItemSpec("Test time", "T [s]", x => x.TestResult.TimeEnd.ToShortTimeString(),
(x, y, z) => z.TestResult.TimeEnd.ToShortTimeString()));
-
AllItems.Add(new ResultItemSpec("Flow", Strings.Flow_m3h, x => Utils.FloatToStr(x.TestResult.FlowVolume / 1000.0f, 4),
(x, y, z) => Utils.FloatToStr(z.TestResult.FlowVolume / 1000.0f, 4)));
-
AllItems.Add(new ResultItemSpec("T in", Strings.T_in, x => x.TestResult.TempInAvrg.ToString("F2"),
(x, y, z) => z.TestResult.TempInAvrg.ToString("F2")));
-
AllItems.Add(new ResultItemSpec("T out", Strings.T_out, x => x.TestResult.TempOutAvrg.ToString("F2"),
(x, y, z) => z.TestResult.TempOutAvrg.ToString("F2")));
-
AllItems.Add(new ResultItemSpec("T div", Strings.T_div, x => x.TestResult.TempDivAvrg.ToString("F2"),
(x, y, z) => z.TestResult.TempDivAvrg.ToString("F2")));
-
AllItems.Add(new ResultItemSpec("P in", Strings.P_in, x => x.TestResult.PressInAvrg.ToString("F3"),
(x, y, z) => z.TestResult.PressInAvrg.ToString("F3")));
-
AllItems.Add(new ResultItemSpec("P out", Strings.P_out, x => x.TestResult.PressOutAvrg.ToString("F3"),
(x, y, z) => z.TestResult.PressOutAvrg.ToString("F3")));
-
AllItems.Add(new ResultItemSpec("Reference error", "E r [%]", x => x.TestResult.ErrorMaster.ToString("F3"),
(x, y, z) => z.TestResult.ErrorMaster.ToString("F3")));
-
AllItems.Add(new ResultItemSpec("Ambient temperature", "T amb", x => x.TestResult.AmbientTempAve.ToString("F1"),
(x, y, z) => z.TestResult.AmbientTempAve.ToString("F1")));
-
AllItems.Add(new ResultItemSpec("Ambient pressure", "P amb", x => x.TestResult.AmbientPressAve.ToString("F0"),
(x, y, z) => z.TestResult.AmbientPressAve.ToString("F0")));
-
AllItems.Add(new ResultItemSpec("Ambient humidity", "H amb [%]", x => x.TestResult.AmbientHumiAve.ToString("F1"),
(x, y, z) => z.TestResult.AmbientHumiAve.ToString("F1")));
/// Single and combined meter results
AllItems.Add(new ResultItemSpec("Volume", "V [l]", x => x.VolumeMeter.ToString("F3"),
- (x, y, z) => z.VolumeMeter.ToString("F3")));
-
+ (x, y, z) => z.VolumeMeter.ToString("F3")));
AllItems.Add(new ResultItemSpec("Reference volume", "V ref [l]", x => x.VolumeRef.ToString("F3"),
- (x, y, z) => z.VolumeRef.ToString("F3")));
-
+ (x, y, z) => z.VolumeRef.ToString("F3")));
AllItems.Add(new ResultItemSpec("Error", "Error [%]", x => x.VolumeErrorPct.ToString("F2"),
(x, y, z) => z.VolumeErrorPct.ToString("F2")));
-
AllItems.Add(new ResultItemSpec("Passed", "Result", x => (x.Passed ? Strings.Passed + "|Green" : Strings.Failed + "|Red"),
(x, y, z) => (z.Passed ? Strings.Passed + "|Green" : Strings.Failed + "|Red")));
+ /// Single water meters only results
AllItems.Add(new ResultItemSpec("Serial Nr", "s/n", x => x.SerialNr, (x, y, z) => z.SerialNr));
AllItems.Add(new ResultItemSpec("End state", "End state", x => x.EndState, (x, y, z) => z.EndState));
-
- /// Single water meters only results
AllItems.Add(new ResultItemSpec("Pulses", "Pulses", x => x.PulsesMeter.ToString(), null));
AllItems.Add(new ResultItemSpec("Reference pulses", "Ref.pulses", x => x.PulsesMaster.ToString(), null));
diff --git a/TestBenchFramework/LocalSettings.cs b/TestBenchFramework/LocalSettings.cs
index ea17cdfc8..b686dbb20 100644
--- a/TestBenchFramework/LocalSettings.cs
+++ b/TestBenchFramework/LocalSettings.cs
@@ -57,6 +57,8 @@ namespace TBF
[XmlElementAttribute("LastProcedure")]
public string LastProcedureName;
+ public int CycleNr;
+
public int RightPaneHorizSplitterDistance;
/// MainWnd
@@ -163,6 +165,7 @@ namespace TBF
testBenches[i] = ls.testBenches[i];
LastBenchName = ls.LastBenchName;
LastProcedureName = ls.LastProcedureName;
+ CycleNr = ls.CycleNr;
MainWndLeft = ls.MainWndLeft;
MainWndTop = ls.MainWndTop;
diff --git a/TestBenchFramework/Mappings/TestResultMap.cs b/TestBenchFramework/Mappings/TestResultMap.cs
index 36a39fb79..959aa5014 100644
--- a/TestBenchFramework/Mappings/TestResultMap.cs
+++ b/TestBenchFramework/Mappings/TestResultMap.cs
@@ -9,6 +9,7 @@ namespace TBF.Mappings
{
Id(x => x.Id);
Map(x => x.Name);
+ Map(x => x.CycleNr);
Map(x => x.MetersKind);
HasMany(x => x.Meters)
.Cascade.All();