CycleNr added to LocalSettings, Entities.TestResults, Mappings, is used in sequences (DB change)

This commit is contained in:
Milan Hanajik 2015-01-25 08:11:40 +01:00
parent dc57c1464b
commit 5cf5fe5eba
12 changed files with 79 additions and 84 deletions

View File

@ -13,6 +13,12 @@ namespace TBF.BenchControl.ResultsWriters.Basic
readonly WriterCfg writerCfg;
/// <summary>
/// Result items to print
/// </summary>
IList<TBF.Forms.ResultItemSpec> resultItems;
bool combined;
/// <summary>
/// Results to print
/// </summary>
@ -34,12 +40,25 @@ namespace TBF.BenchControl.ResultsWriters.Basic
/// <returns>Reference to the operation</returns>
public IOperation WriteResultsOp(IList<Entities.TestResult> 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("---------------------------------------------------------------------------------------------------------------------------------------");

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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<MeterTestResult> Meters { get; set; }
public virtual IList<MeterTestResult> CombinedMeters { get; set; }

View File

@ -43,70 +43,67 @@ namespace TBF.Forms
{
AllItems = new List<ResultItemSpec>();
/// 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));

View File

@ -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;

View File

@ -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();