Bug fix in Output.FileWriters.IperlLogger.Writer, ver. 2.27.1780
This commit is contained in:
parent
5b599c2ecd
commit
ebad16b439
@ -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++)
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
@ -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")]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user