From ebad16b439b78174d2dfd1f9d40b5a48b2fc7ce7 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Wed, 20 Oct 2021 09:17:10 +0200 Subject: [PATCH] Bug fix in Output.FileWriters.IperlLogger.Writer, ver. 2.27.1780 --- .../Output/FileWriters/IperlLogger/Writer.cs | 50 +++++++++---------- .../iPerlCommunication/iPerlHead/IperlHead.cs | 33 ++++++++---- TBF/Properties/AssemblyInfo.cs | 4 +- 3 files changed, 49 insertions(+), 38 deletions(-) diff --git a/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs b/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs index 13fc4867c..912a47196 100644 --- a/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs +++ b/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs @@ -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(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++) diff --git a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs index 8bea68fa8..c39ae7440 100644 --- a/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs +++ b/TBF/BenchControl/TestMethods/iPerlCommunication/iPerlHead/IperlHead.cs @@ -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 /// 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); } diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index ff80c0bfc..303958859 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -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")]