Bug fix in Output.FileWriters.IperlLogger.Writer, ver. 2.27.1780

This commit is contained in:
Milan Hanajik 2021-10-20 09:17:10 +02:00
parent 5b599c2ecd
commit ebad16b439
3 changed files with 49 additions and 38 deletions

View File

@ -3,13 +3,16 @@
///
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
using log4net;
using Common;
using Config;
using Config.Entities;
using Results.Entities;
using Results.Output;
using Events.Entities;
using TBF.BenchControl.Sequences;
namespace TBF.BenchControl.Output.FileWriters.IperlLogger
{
@ -192,42 +195,36 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger
}
public Retv WriteLogsToDisk(TextWriter logger, Results.Entities.Batch batch)
public Retv WriteLogsToDisk(TextWriter logger, Batch batch)
{
#if TURA_IPERL || TURA_IPERL_NEW || TURA_SPECIAL
/// Obtain one representative water meter data
Results.Entities.WaterMeter wm0 = null;
foreach (var wm in batch.WaterMeters)
{
if (wm != null && wm.WaterMeterData != null)
{
wm0 = wm;
if (wm0.CompleteTestInfos == null)
{
wm0.CompleteTestInfos = (TBF.BenchControl.Sequences.ProcessData.CompleteTestInfos != null)
? TBF.BenchControl.Sequences.ProcessData.CompleteTestInfos
: Results.Output.SensusTestInfo.CreateFromProcedure(StateMachine.Procedure);
}
break;
}
}
///
/// Obtain one representative water meter
///
WaterMeter wm0 = batch.WaterMeters.FirstOrDefault<WaterMeter>(x => (x != null && !x.Disabled && x.WaterMeterData != null));
if (wm0 == null)
{
log.Error("Not a single watermeter in the batch");
return Retv.Error; /// Not a single watermeter in the batch
}
WaterMeterData wmData = wm0.WaterMeterData;
SensusTestInfo[] testInfos = wm0.CompleteTestInfos as SensusTestInfo[];
///
/// Select or create appropriate test infos
///
Results.Output.SensusTestInfo[] testInfos = Sequences.ProcessData.CompleteTestInfos;
///
if ((ProcessData.OracleDB != null && ProcessData.OracleDB.DesigMode == Output.DB.SensusOracle.DesigMode.Based_on_procedure) ||
(testInfos == null && StateMachine.Procedure != null))
{
testInfos = Results.Output.SensusTestInfo.CreateFromProcedure(StateMachine.Procedure);
}
if (testInfos == null)
{
log.Error("CompleteTestInfos of the first water meter is null");
log.Error("CompleteTestInfos is null");
return Retv.Error; /// No test infos
}
log.Warn("Using CompleteTestInfos:");
foreach (var cti in testInfos)
{
@ -236,9 +233,10 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger
cti.QBezeichnungOpto, cti.PruefungsNrLog, cti.QBezeichnungLog, cti.Range);
}
Results.Entities.WaterMeterData wmData = wm0.WaterMeterData;
Results.Entities.MeterTestRslt[] wm0trs = new Results.Entities.MeterTestRslt[testInfos.Length];
///
/// Select water meter test results
///
MeterTestRslt[] wm0trs = new MeterTestRslt[testInfos.Length];
double totalTestTime = 0;
int maxPruefungsNr = 0;
for (int j = 0; j < testInfos.Length; j++)

View File

@ -11,6 +11,7 @@ using Config.Entities;
using TBF.BenchControl.Generic;
using TBF.BenchControl.GenericDevices;
using TBF.BenchControl.Output;
using TBF.BenchControl.Sequences;
namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
{
@ -709,34 +710,46 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication.iPerlHead
/// <returns></returns>
string DetermineExtraDataFileName()
{
Results.Output.SensusTestInfo[] localTestInfos = Sequences.ProcessData.CompleteTestInfos;
if (localTestInfos == null && StateMachine.Procedure != null)
///
/// Select or create appropriate test infos
///
Results.Output.SensusTestInfo[] testInfos = Sequences.ProcessData.CompleteTestInfos;
///
if ((ProcessData.OracleDB != null && ProcessData.OracleDB.DesigMode == Output.DB.SensusOracle.DesigMode.Based_on_procedure) ||
(testInfos == null && StateMachine.Procedure != null))
{
localTestInfos = Results.Output.SensusTestInfo.CreateFromProcedure(StateMachine.Procedure);
testInfos = Results.Output.SensusTestInfo.CreateFromProcedure(StateMachine.Procedure);
}
///
/// Select or create appropriate 'qBezeichnung'
///
string fullTestName = Results.Utils.GetTestName(testName, testRepeats, repetitionNr);
string qBezeichnungOpto = null; /// To be determined from TestInfo-s (if there are any)
if (localTestInfos != null)
foreach (var ti in testInfos)
{
foreach (var ti in localTestInfos)
if ((ti.PruefungsNrOpto != 0) && (ti.TestName == fullTestName))
{
if ((ti.PruefungsNrOpto != 0) && (ti.TestName == fullTestName))
{
qBezeichnungOpto = string.IsNullOrEmpty(ti.QBezeichnungOpto) ? ti.PruefungsNrOpto.ToString("D2") : ti.QBezeichnungOpto;
break;
}
qBezeichnungOpto = string.IsNullOrEmpty(ti.QBezeichnungOpto) ? ti.PruefungsNrOpto.ToString("D2") : ti.QBezeichnungOpto;
break;
}
}
if (qBezeichnungOpto == null)
{
qBezeichnungOpto = fullTestName; /// No appropriate TestInfo found => set default opto data file name
}
///
/// Get other required pieces of information
///
string pcbNr = (ConfigStruct != null) ? ConfigStruct.GetPcbNrString() : "UnknownPcbNr";
string wmPosition = Name.Substring(5); /// WMPosition is extracted from a component name in form 'iPerl#'
if (wmPosition.Length == 1) wmPosition = "0" + wmPosition;
string cycleStartTime = StateMachine.CycleStartTimeStamp.ToString("HH_mm_ss");
///
/// Return the file name
///
return string.Format("{0}_{1}_{2}_{3}.txt", pcbNr, wmPosition, qBezeichnungOpto, cycleStartTime);
}

View File

@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
[assembly: AssemblyVersion("2.27.1778.0")]
[assembly: AssemblyFileVersion("2.27.1778.0")]
[assembly: AssemblyVersion("2.27.1780.0")]
[assembly: AssemblyFileVersion("2.27.1780.0")]