From 19c9e3a2da93efdf3ca7d982092a791bfaaa05a9 Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Sun, 28 Nov 2021 07:57:39 +0100 Subject: [PATCH] FileWriters,IperlLogger fixed in DesigMode == Based_on_procedure --- .../Output/FileWriters/IperlLogger/Writer.cs | 66 +++++++++++-------- 1 file changed, 38 insertions(+), 28 deletions(-) diff --git a/TBF/Rig/Output/FileWriters/IperlLogger/Writer.cs b/TBF/Rig/Output/FileWriters/IperlLogger/Writer.cs index 1724a6ac9..a2649a4c9 100644 --- a/TBF/Rig/Output/FileWriters/IperlLogger/Writer.cs +++ b/TBF/Rig/Output/FileWriters/IperlLogger/Writer.cs @@ -3,12 +3,14 @@ /// using System; using System.Collections.Generic; +using System.Linq; using System.IO; using log4net; using Common; using Config.Entities; using Results.Output; -using SharedDatabase.Entities; +using Results.Entities; +using TBF.Rig.Sequences; namespace TBF.Rig.Output.FileWriters.IperlLogger { @@ -192,40 +194,32 @@ namespace TBF.Rig.Output.FileWriters.IperlLogger public Retv WriteLogsToDisk(TextWriter logger, Results.Entities.Batch batch) { -#if IPERL - - /// 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.Rig.Sequences.ProcessData.CompleteTestInfos != null) - ? TBF.Rig.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 + /// + 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 = 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) { @@ -234,8 +228,9 @@ namespace TBF.Rig.Output.FileWriters.IperlLogger cti.QBezeichnungOpto, cti.PruefungsNrLog, cti.QBezeichnungLog, cti.Range); } - Results.Entities.WaterMeterData wmData = wm0.WaterMeterData; - + /// + /// Select water meter test results + /// Results.Entities.MeterTestRslt[] wm0trs = new Results.Entities.MeterTestRslt[testInfos.Length]; double totalTestTime = 0; int maxPruefungsNr = 0; @@ -423,6 +418,7 @@ namespace TBF.Rig.Output.FileWriters.IperlLogger logger.WriteLine(string.Format("ZNr_komplett=")); logger.WriteLine(string.Format("OptikBewertung=0,00000")); logger.WriteLine(string.Format("IdProduziert={0}", 0)); +#if IPERL logger.WriteLine(string.Format("Calibration_alt={0}", wMtr.OrigCalibFactor)); logger.WriteLine(string.Format("Calibration={0}", wMtr.CalibFactor)); logger.WriteLine(string.Format("Firmware={0}", wMtr.FWVersion)); /// 5.066 @@ -435,6 +431,20 @@ namespace TBF.Rig.Output.FileWriters.IperlLogger logger.WriteLine(string.Format("Q2CorrectionLeft={0}", wMtr.Q2CorrRL)); logger.WriteLine(string.Format("Q2CorrectionFlowRight={0}", wMtr.Q2CorrFlowRight)); logger.WriteLine(string.Format("FlowDirectionRight={0}", wMtr.Q2CorrFlowRight)); +#else + logger.WriteLine(string.Format("Calibration_alt={0}", 0)); + logger.WriteLine(string.Format("Calibration={0}", 0)); + logger.WriteLine(string.Format("Firmware={0}", string.Empty)); + logger.WriteLine(string.Format("FlexFlowFehler={0}", 0)); + logger.WriteLine(string.Format("FlexFlowAuftrag={0}", 0)); + logger.WriteLine(string.Format("JustierWert=0,2")); + logger.WriteLine(string.Format("Corrected2Hz={0}", 0)); + logger.WriteLine(string.Format("Q2Corrected={0}", 0)); + logger.WriteLine(string.Format("Q2CorrectionRight={0}", 0)); + logger.WriteLine(string.Format("Q2CorrectionLeft={0}", 0)); + logger.WriteLine(string.Format("Q2CorrectionFlowRight={0}", 0)); + logger.WriteLine(string.Format("FlowDirectionRight={0}", 1)); +#endif logger.WriteLine(string.Format("Position={0}", wMtr.WMPosition)); } } @@ -504,7 +514,7 @@ namespace TBF.Rig.Output.FileWriters.IperlLogger logger.WriteLine(string.Format("ProgrammVersion={0}", Program.Version)); logger.WriteLine(string.Format("LetzteAenderung={0}", Program.BuildDateTime.ToShortDateString())); logger.WriteLine(string.Format("QuarzTakt={0}", 0)); /// 1953,125 -#endif + return Retv.OK; /// OK }