FileWriters,IperlLogger fixed in DesigMode == Based_on_procedure

This commit is contained in:
Milan Hanajik 2021-11-28 07:57:39 +01:00
parent 9a79ff1344
commit 19c9e3a2da

View File

@ -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<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
///
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
}