From a50c867b7e3fd80f1fe4e13849c2c22c65cebe4b Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Mon, 16 Jan 2023 15:16:51 +0100 Subject: [PATCH] SensusOracle.Database uses LUTestData[] based complete test inof-s from test parameters OraId, OraDesignation, etc, ver. 2.31.2003 --- Results/Entities/WaterMeter.cs | 46 +---- TBF/Properties/AssemblyInfo.cs | 4 +- TBF/Rig/Output/DB/SensusOracle/Database.cs | 194 +++++++----------- .../Output/DB/SensusOracle/ProcedureParams.cs | 55 +---- TBF/Rig/Sequences/MainSeqUtils.cs | 4 +- TBF/Rig/Sequences/ProcessData.cs | 21 +- TBF/UI/Procedures/ProceduresCtrl.cs | 5 - 7 files changed, 82 insertions(+), 247 deletions(-) diff --git a/Results/Entities/WaterMeter.cs b/Results/Entities/WaterMeter.cs index 8fae42994..fcc3bf589 100644 --- a/Results/Entities/WaterMeter.cs +++ b/Results/Entities/WaterMeter.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2015-2021 Sensus Slovensko a.s. +/// Copyright (c) 2015-2023 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; @@ -97,8 +97,6 @@ namespace Results.Entities public virtual int WMTypeRevision { get; set; } public virtual int Pruefindex { get; set; } /// >=1 ... pruefindex, 0 ... unknown (no reading from DB yet) public virtual int HydrPruefung { get; set; } - public virtual object RawTestInfos { get; set; } /// Not mapped to DB !!! IList fetched from Oracle at the beginning of the cycle, not mapped to DB !!! - public virtual object CompleteTestInfos { get; set; } /// Not mapped to DB !!! SensusTestInfo[] obtained as a best match at the beginning of the cycle, not mapped to DB !!! #endif public virtual int ProcessId { get; set; } /// Not mapped to DB !!! Tracing DB Process ID public virtual int SessionId { get; set; } /// Not mapped to DB !!! 1 (regular tracing DB session) or 2 (alternative tracing DB session) @@ -448,8 +446,6 @@ namespace Results.Entities WMTypeRevision = 0; Pruefindex = 0; HydrPruefung = 0; - RawTestInfos = null; - CompleteTestInfos = null; #endif ProcessId = 0; SessionId = 0; @@ -512,8 +508,6 @@ namespace Results.Entities WMTypeRevision = src.WMTypeRevision; Pruefindex = src.Pruefindex; HydrPruefung = src.HydrPruefung; - RawTestInfos = src.RawTestInfos; /// Not mapped to DB - CompleteTestInfos = src.CompleteTestInfos; /// Not mapped to DB #endif ProcessId = src.ProcessId; /// Not mapped to DB SessionId = src.SessionId; /// Not mapped to DB @@ -694,22 +688,6 @@ namespace Results.Entities writer.Write(WMTypeRevision); writer.Write(Pruefindex); writer.Write(HydrPruefung); - - /// Write RawTestInfos - IList rawTestInfos = RawTestInfos as IList; - writer.Write((rawTestInfos != null) ? rawTestInfos.Count : 0); - if (rawTestInfos != null) - { - for (int i = 0; i < rawTestInfos.Count; i++) rawTestInfos[i].WriteBinary(writer); - } - - /// Write CompleteTestInfos - Results.Output.SensusTestInfo[] completeTestInfos = CompleteTestInfos as Results.Output.SensusTestInfo[]; - writer.Write((completeTestInfos != null) ? completeTestInfos.Length : 0); - if (completeTestInfos != null) - { - for (int i = 0; i < completeTestInfos.Length; i++) completeTestInfos[i].WriteBinary(writer); - } #endif writer.Write(ProcessId); writer.Write(SessionId); @@ -790,28 +768,6 @@ namespace Results.Entities WMTypeRevision = reader.ReadInt32(); Pruefindex = reader.ReadInt32(); HydrPruefung = reader.ReadInt32(); - - /// Read RawTestInfos - int rawTestInfosCount = reader.ReadInt32(); - IList rawTestInfos = new List(); - for (int i = 0; i < rawTestInfosCount; i++) - { - Results.Output.SensusTestInfo ti = new Results.Output.SensusTestInfo(); - ti.ReadBinary(reader); - rawTestInfos.Add(ti); - } - RawTestInfos = rawTestInfos; - - /// Read CompleteTestInfos - int completeTestInfosLen = reader.ReadInt32(); - Results.Output.SensusTestInfo[] completeTestInfos = new Results.Output.SensusTestInfo[completeTestInfosLen]; - for (int i = 0; i < completeTestInfosLen; i++) - { - Results.Output.SensusTestInfo ti = new Results.Output.SensusTestInfo(); - ti.ReadBinary(reader); - completeTestInfos[i] = ti; - } - CompleteTestInfos = completeTestInfos; #endif ProcessId = reader.ReadInt32(); SessionId = reader.ReadInt32(); diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 94d420f1d..f9d1cb01e 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.31.2002.0")] -[assembly: AssemblyFileVersion("2.31.2002.0")] +[assembly: AssemblyVersion("2.31.2003.0")] +[assembly: AssemblyFileVersion("2.31.2003.0")] diff --git a/TBF/Rig/Output/DB/SensusOracle/Database.cs b/TBF/Rig/Output/DB/SensusOracle/Database.cs index a7764e064..c25df1f27 100644 --- a/TBF/Rig/Output/DB/SensusOracle/Database.cs +++ b/TBF/Rig/Output/DB/SensusOracle/Database.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2015-2022 Sensus Slovensko a.s. +/// Copyright (c) 2015-2023 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; @@ -57,8 +57,6 @@ namespace TBF.Rig.Output.DB.SensusOracle public bool SaveResults { get { return (dbCfg == null || dbCfg.ProcParams == null) ? false : dbCfg.ProcParams.SaveResults; } } public bool ReadStartInfo { get { return (dbCfg == null || dbCfg.ProcParams == null) ? true : dbCfg.ProcParams.ReadStartInfo; } } public bool StartInfoIsRequired { get { return (dbCfg == null || dbCfg.ProcParams == null) ? false : dbCfg.ProcParams.StartInfoIsRequired; } } - public DesigMode DesigMode { get { return (dbCfg == null || dbCfg.ProcParams == null) ? DesigMode.Auto : dbCfg.ProcParams.DesigMode; } } - public LogType DesigType { get { return (dbCfg == null || dbCfg.ProcParams == null) ? LogType.Just_Q3Q2Q1 : dbCfg.ProcParams.DesigType; } } enum OpState { @@ -113,7 +111,7 @@ namespace TBF.Rig.Output.DB.SensusOracle int wmTypeRevision; string procedureSignature; IList oracleTestInfo; /// Raw incomplete test info from Oracle DB (or null) - SensusTestInfo[] completeTestInfo; /// Complete TBF test info obtained as the best match (never null when oracleTestInfo != null) + LUTestData[] completeTestInfo; /// Complete test info obtained from the procedure public Database() {} @@ -340,15 +338,6 @@ namespace TBF.Rig.Output.DB.SensusOracle #endif } - if (DesigMode == DesigMode.Based_on_procedure && StateMachine.Procedure != null) - { - Sequences.ProcessData.CompleteTestInfos = Results.Output.SensusTestInfo.CreateFromProcedure(StateMachine.Procedure); - } - else if (DesigMode == DesigMode.As_specified && DesigType >= 0 && DesigType < LogType.Count) - { - Sequences.ProcessData.CompleteTestInfos = SensusTestInfo.GetTestInfos(DesigType); - } - opCompleted = true; } @@ -418,7 +407,7 @@ namespace TBF.Rig.Output.DB.SensusOracle } catch (Exception exc) { - log.ErrorFormat("Reading from ORACLE DB failed, batch={0}, error={1}", batch.BatchNr, exc.Message); + log.ErrorFormat("Reading StartInfo from ORACLE DB failed, error={é}", exc.Message); conn.Close(); return Retv.Error; @@ -440,67 +429,6 @@ namespace TBF.Rig.Output.DB.SensusOracle try { - /// Prepare a procedure signature to distinguish between different procedures with the same wmTypeId - IList wmTestNames = new List(); - StringBuilder procedureSignatureSB = new StringBuilder(); - foreach (var mtr in wm.RegularMeterTestRslts()) - { - if (mtr.Evaluate()) - { - wmTestNames.Add(mtr.Name()); - procedureSignatureSB.Append(mtr.Name()); - procedureSignatureSB.Append("~"); - } - } - - if (oracleTestInfo == null || (wmTypeId == 0) || (wmTypeId != wm.WaterMeterData.WMTypeId) || (procedureSignature != procedureSignatureSB.ToString())) - { - /// - /// Currnet test info. is not walid => Get a new one from Oracle and SensusTestInfo table - /// - int wmTR; - string wzTypStr; - string metroKlasse; - string zulasszeichen; - string materialNr; - double q3 = 0; - DateTime timeStamp; - string remark; - IList rti = GetOracleTestInfo(conn, wm.WaterMeterData.WMTypeId, out wmTR, out wzTypStr, out metroKlasse, out zulasszeichen, out materialNr, out q3, out timeStamp, out remark); - - if (rti != null) - { - /// All 5 updated together - wmTypeId = wm.WaterMeterData.WMTypeId; - wmTypeRevision = wmTR; - procedureSignature = procedureSignatureSB.ToString(); - oracleTestInfo = rti; - string tInfoName; - completeTestInfo = SensusTestInfo.GetBestMatch(rti, wmTestNames, out tInfoName); - /// - log.WarnFormat("Selected test info : {0}", tInfoName); - foreach (var cti in completeTestInfo) - { - log.WarnFormat("Selected test info : ID={0} Rev={1} Test={2} PrfNrDB={3} QBzDB={4} PrfNrOpto={5} QBzOpto={6} PrfNrLog={7} QBzLog={8} Range={9}", wmTypeId, wmTypeRevision, - cti.TestName, cti.PruefungsNrDB, cti.QBezeichnungDB, cti.PruefungsNrOpto, cti.QBezeichnungOpto, cti.PruefungsNrLog, cti.QBezeichnungLog, cti.Range); - } - } - else - { - return Retv.Error; - } - } - - /// Write the test info. to WaterMeter entity - wm.RawTestInfos = oracleTestInfo; - wm.CompleteTestInfos = completeTestInfo; - wm.WMTypeRevision = wmTypeRevision; - - /// Write the test info. to ProcessData - Sequences.ProcessData.RawTestInfos = oracleTestInfo; - Sequences.ProcessData.CompleteTestInfos = completeTestInfo; - - OracleCommand cmd; OracleDataReader dr; @@ -602,6 +530,9 @@ namespace TBF.Rig.Output.DB.SensusOracle } dr.Close(); +#if TURA_SPECIAL + /// TODO: Check after modifications in completeTestInfo due to OraId, OraDesignation, etc. + /// /// Read data from VT_PRUEFREIHE_IST_PD /// @@ -625,7 +556,7 @@ namespace TBF.Rig.Output.DB.SensusOracle string baseTestName = null; foreach (var ti in completeTestInfo) { - if (ti.PruefungsNrDB == testId) + if (ti.Id == testId) { int ix = ti.TestName.LastIndexOf(" ("); baseTestName = (ix < 0) ? ti.TestName : ti.TestName.Substring(0, ix); @@ -648,6 +579,7 @@ namespace TBF.Rig.Output.DB.SensusOracle } } dr.Close(); +#endif /// /// Copy acquired data to WaterMeter object @@ -694,7 +626,7 @@ namespace TBF.Rig.Output.DB.SensusOracle } - public Retv WriteResultsToDB(OracleConnection conn, Results.Entities.Batch batch, WMKind wmKind, bool safeMode) + public Retv WriteResultsToDB(OracleConnection conn, Results.Entities.Batch bat, WMKind wmKind, bool safeMode) { OracleTransaction transaction; @@ -706,15 +638,15 @@ namespace TBF.Rig.Output.DB.SensusOracle catch (Exception exc) { log.ErrorFormat("Results of batch {0} not written to ORACLE DB (phase 1): {1}", - batch.BatchNr, exc.Message); + bat.BatchNr, exc.Message); conn.Close(); return Retv.Error; } try { - SaveBatchData(conn, batch); - foreach (var wMtr in batch.WaterMeters) + SaveBatchData(conn, bat); + foreach (var wMtr in bat.WaterMeters) { if (wmKind == WMKind.iPERL) { @@ -732,14 +664,14 @@ namespace TBF.Rig.Output.DB.SensusOracle transaction.Commit(); conn.Close(); - log.ErrorFormat("Results of batch {0} correctly written to ORACLE DB", batch.BatchNr); + log.ErrorFormat("Results of batch {0} correctly written to ORACLE DB", bat.BatchNr); return Retv.OK; } catch (Exception exc) { transaction.Rollback(); conn.Close(); - log.ErrorFormat("Results of batch {0} not written to ORACLE DB: {1}", batch.BatchNr, exc.Message); + log.ErrorFormat("Results of batch {0} not written to ORACLE DB: {1}", bat.BatchNr, exc.Message); return Retv.Error; } } @@ -796,22 +728,20 @@ namespace TBF.Rig.Output.DB.SensusOracle /// /// Save common batch data /// - /// Batch - void SaveBatchData(OracleConnection conn, Results.Entities.Batch b) + /// Batch + void SaveBatchData(OracleConnection conn, Results.Entities.Batch bat) { - IList wmTestNames = new List(); StringBuilder procedureSignatureSB = new StringBuilder(); - foreach (var tr in b.RegularTestRslts()) + foreach (var tr in bat.RegularTestRslts()) { if (tr.Evaluate()) { - wmTestNames.Add(tr.Name()); procedureSignatureSB.Append(tr.Name()); procedureSignatureSB.Append("~"); } } - if ((oracleTestInfo == null) || (wmTypeId != b.WaterMeters[0].WaterMeterData.WMTypeId) || (wmTypeRevision == 0) || (procedureSignature != procedureSignatureSB.ToString())) + if ((oracleTestInfo == null) || (wmTypeId != bat.WaterMeters[0].WaterMeterData.WMTypeId) || (wmTypeRevision == 0) || (procedureSignature != procedureSignatureSB.ToString())) { int wmTR = 0; string wzTypStr; @@ -821,32 +751,54 @@ namespace TBF.Rig.Output.DB.SensusOracle double q3 = 0; DateTime timeStamp; string remark; - IList ti = GetOracleTestInfo(conn, b.WaterMeters[0].WaterMeterData.WMTypeId, out wmTR, out wzTypStr, out metroKlasse, out zulasszeichen, out materialNr, out q3, out timeStamp, out remark); + IList ti = GetOracleTestInfo(conn, bat.WaterMeters[0].WaterMeterData.WMTypeId, out wmTR, out wzTypStr, out metroKlasse, out zulasszeichen, out materialNr, out q3, out timeStamp, out remark); if (ti != null) { /// All 5 updated together - wmTypeId = b.WaterMeters[0].WaterMeterData.WMTypeId; + wmTypeId = bat.WaterMeters[0].WaterMeterData.WMTypeId; wmTypeRevision = wmTR; procedureSignature = procedureSignatureSB.ToString(); oracleTestInfo = ti; - completeTestInfo = SensusTestInfo.GetBestMatch(oracleTestInfo, wmTestNames); - - foreach (var cti in completeTestInfo) - { - log.WarnFormat("Selected test info : ID={0} Rev={1} Test={2} PrfNrDB={3} QBzDB={4} PrfNrOpto={5} QBzOpto={6} PrfNrLog={7} QBzLog={8} Range={9}", wmTypeId, wmTypeRevision, - cti.TestName, cti.PruefungsNrDB, cti.QBezeichnungDB, cti.PruefungsNrOpto, cti.QBezeichnungOpto, cti.PruefungsNrLog, cti.QBezeichnungLog, cti.Range); - } } else { - throw new Exception("No matching test infos found"); + throw new Exception(string.Format("Cannot save batch {0} to Oracle, missing entry in VT_WZTYP_SD", bat.BatchNr)); } } - if (oracleTestInfo == null || completeTestInfo == null || wmTypeId == 0 || wmTypeRevision == 0) + if (oracleTestInfo == null || wmTypeId == 0 || wmTypeRevision == 0) { - throw new Exception("No matching test infos found"); + throw new Exception(string.Format("Cannot save batch {0} to Oracle, missing entry in VT_WZTYP_SD", bat.BatchNr)); + } + + /// + /// Select or create appropriate test infos + /// + IList testsToSave = new List(); + int maxPruefungsNr = 0; + double totalTestTime = 0; + foreach (var td in bat.Tests) + { + for (int repNr = 1; repNr <= td.Repeats; repNr++) + { + int testId = td.OraId + (td.Repeats - repNr) * td.OraIdRepetMulti; + if (testId != 0) + { + testsToSave.Add(new LUTestData(td, repNr)); + if (Math.Abs(testId) > maxPruefungsNr) maxPruefungsNr = Math.Abs(testId); + totalTestTime += td.TargetTime; + } + } + } + LUTestData[] testsToSaveArr = testsToSave.ToArray(); + Array.Sort(testsToSaveArr, new LUTestDataComparer()); + completeTestInfo = testsToSaveArr; + + foreach (var cti in completeTestInfo) + { + log.WarnFormat("Selected test info : ID={0} Rev={1} Test={2} PrfNrDB={3} QBzDB={4}", + wmTypeId, wmTypeRevision, cti.TestName, cti.Id, cti.Designation); } @@ -859,13 +811,13 @@ namespace TBF.Rig.Output.DB.SensusOracle "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)", conn); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = Anbid_Producer }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + b.TestBenchId }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.BatchNr }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = b.WaterMeters[0].WaterMeterData.WMTypeId }); + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = dbCfg.TestBenchGroupId + bat.TestBenchId }); + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = bat.BatchNr }); + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = bat.WaterMeters[0].WaterMeterData.WMTypeId }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = wmTypeRevision }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Int32, Value = 1 }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = b.StartTime }); - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = b.EndTime }); + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = bat.StartTime }); + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.TimeStamp, Value = bat.EndTime }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = string.Empty }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = 0 }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = 0 }); @@ -874,23 +826,23 @@ namespace TBF.Rig.Output.DB.SensusOracle cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = 0 }); /// TODO: DruckBeiAbpressen cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = 0 }); cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Double, Value = 0 }); /// TODO: SpuelDurchflussIst - cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = string.Format("TBF v.{0}", b.ProgramVersion) }); + cmd.Parameters.Add(new OracleParameter { OracleDbType = OracleDbType.Varchar2, Value = string.Format("TBF v.{0}", bat.ProgramVersion) }); cmd.ExecuteNonQuery(); /// Returns nr. of updated rows - log.InfoFormat("VT_PRUEFREIHE_PD inserted, BatchNr={0}, TypeId={1}, TypeRev={2}, Start={3}", b.BatchNr, b.WaterMeters[0].WaterMeterData.WMTypeId, wmTypeRevision, b.StartTime); + log.InfoFormat("VT_PRUEFREIHE_PD inserted, BatchNr={0}, TypeId={1}, TypeRev={2}, Start={3}", bat.BatchNr, bat.WaterMeters[0].WaterMeterData.WMTypeId, wmTypeRevision, bat.StartTime); } else { - log.WarnFormat("SIM: VT_PRUEFREIHE_PD inserted, BatchNr={0}, TypeId={1}, TypeRev={2}, Start={3}", b.BatchNr, b.WaterMeters[0].WaterMeterData.WMTypeId, wmTypeRevision, b.StartTime); + log.WarnFormat("SIM: VT_PRUEFREIHE_PD inserted, BatchNr={0}, TypeId={1}, TypeRev={2}, Start={3}", bat.BatchNr, bat.WaterMeters[0].WaterMeterData.WMTypeId, wmTypeRevision, bat.StartTime); } foreach (var testInfo in completeTestInfo) { - if ((testInfo.PruefungsNrDB != 0) && (-20 <= testInfo.PruefungsNrDB) && (testInfo.PruefungsNrDB <= 20)) /// LU PruefungsNr-s are between -20 and 20 + if ((testInfo.Id != 0) && (-20 <= testInfo.Id) && (testInfo.Id <= 20)) /// LU PruefungsNr-s are between -20 and 20 { - Results.Entities.TestRslt tr = b.GetTestRslt(testInfo.TestName, 0); + Results.Entities.TestRslt tr = bat.GetTestRslt(testInfo.TestName, 0); - if (tr == null) tr = b.GetTestRslt(testInfo.TestName, 1); /// TODO: Remove this workaround for large watermeters with multiple parts at Q3 + if (tr == null) tr = bat.GetTestRslt(testInfo.TestName, 1); /// TODO: Remove this workaround for large watermeters with multiple parts at Q3 if (tr == null) continue; double Q_ist = (tr.VolumeMaster != 0) ? (tr.FlowVolume * tr.VolumeCTV / tr.VolumeMaster) : (double)tr.FlowVolume; @@ -936,9 +888,9 @@ namespace TBF.Rig.Output.DB.SensusOracle "VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17, :18, :19, :20, :21, :22, :23)", conn); OracleParameter parm; parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_Producer; cmd2.Parameters.Add(parm); ///:1 - parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = dbCfg.TestBenchGroupId + b.TestBenchId; cmd2.Parameters.Add(parm); ///:2 - parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = b.BatchNr; cmd2.Parameters.Add(parm); ///:3 - parm = new OracleParameter("PruefungsNr", OracleDbType.Int32); parm.Value = testInfo.PruefungsNrDB; cmd2.Parameters.Add(parm); ///:4 + parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = dbCfg.TestBenchGroupId + bat.TestBenchId; cmd2.Parameters.Add(parm); ///:2 + parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = bat.BatchNr; cmd2.Parameters.Add(parm); ///:3 + parm = new OracleParameter("PruefungsNr", OracleDbType.Int32); parm.Value = testInfo.Id; cmd2.Parameters.Add(parm); ///:4 /// parm = new OracleParameter("PVOL", OracleDbType.Double); parm.Value = Units.ConvertTo(Unit.l, tr.VolumeCTV); cmd2.Parameters.Add(parm); ///:5 parm = new OracleParameter("PMasse", OracleDbType.Double); parm.Value = Units.ConvertTo(Unit.kg, tr.MassEnd - tr.MassStart); cmd2.Parameters.Add(parm); ///:6 @@ -964,17 +916,17 @@ namespace TBF.Rig.Output.DB.SensusOracle parm = new OracleParameter("EndGewicht", OracleDbType.Double); parm.Value = Units.ConvertTo(Unit.kg, tr.MassEnd); cmd2.Parameters.Add(parm); ///:23 /// cmd2.ExecuteNonQuery(); /// Returns nr. of updated rows - log.InfoFormat("VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist); + log.InfoFormat("VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + bat.TestBenchId, bat.BatchNr, testInfo.Id, Q_ist); #endif } else { - log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + b.TestBenchId, b.BatchNr, testInfo.PruefungsNrDB, Q_ist); + log.WarnFormat("SIM: VT_PRUEFDURCHFLUSS_PD inserted ({0}, {1}, {2}, {3}, {4} ...)", Anbid_Producer, dbCfg.TestBenchGroupId + bat.TestBenchId, bat.BatchNr, testInfo.Id, Q_ist); } } } - log.InfoFormat("Batch data saved, batchNr={0}", b.BatchNr); + log.InfoFormat("Batch data saved, batchNr={0}", bat.BatchNr); } @@ -1109,7 +1061,7 @@ namespace TBF.Rig.Output.DB.SensusOracle foreach (var testInfo in completeTestInfo) { - if ((testInfo.PruefungsNrDB != 0) && (-20 <= testInfo.PruefungsNrDB) && (testInfo.PruefungsNrDB <= 20)) /// LU PruefungsNr-s are nonzero and between -20 and 20 + if ((testInfo.Id != 0) && (-20 <= testInfo.Id) && (testInfo.Id <= 20)) /// LU PruefungsNr-s are nonzero and between -20 and 20 { Results.Entities.TestData tData = wm.GetTestData(testInfo.TestName); Results.Entities.MeterTestRslt mtr; @@ -1145,7 +1097,7 @@ namespace TBF.Rig.Output.DB.SensusOracle mtr.Error = Formulas.ErrorFromVolumes(mtr.VolumeMeter, mtr.VolumeRef); } - SaveMeterTestResult(conn, mtr, testInfo.PruefungsNrDB, max_Pruefindex, wmTypeRevision); + SaveMeterTestResult(conn, mtr, testInfo.Id, max_Pruefindex, wmTypeRevision); } } @@ -1342,7 +1294,7 @@ namespace TBF.Rig.Output.DB.SensusOracle foreach (var testInfo in completeTestInfo) { - if ((testInfo.PruefungsNrDB != 0) && (-20 <= testInfo.PruefungsNrDB) && (testInfo.PruefungsNrDB <= 20)) /// LU PruefungsNr-s are nonzero and between -20 and 20 + if ((testInfo.Id != 0) && (-20 <= testInfo.Id) && (testInfo.Id <= 20)) /// LU PruefungsNr-s are nonzero and between -20 and 20 { Results.Entities.TestData tData = wm.GetTestData(testInfo.TestName); Results.Entities.MeterTestRslt mtr; @@ -1378,7 +1330,7 @@ namespace TBF.Rig.Output.DB.SensusOracle mtr.Error = Formulas.ErrorFromVolumes(mtr.VolumeMeter, mtr.VolumeRef); } - SaveMeterTestResult(conn, mtr, testInfo.PruefungsNrDB, max_Pruefindex, wmTypeRevision); + SaveMeterTestResult(conn, mtr, testInfo.Id, max_Pruefindex, wmTypeRevision); } } } diff --git a/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs b/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs index 4eeff3830..993cef9bd 100644 --- a/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs +++ b/TBF/Rig/Output/DB/SensusOracle/ProcedureParams.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2020 Sensus Slovensko a.s. +/// Copyright (c) 2020-2023 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; @@ -29,8 +29,6 @@ namespace TBF.Rig.Output.DB.SensusOracle public bool SaveResults; /// 4 public bool ReadStartInfo; /// 5 public bool StartInfoIsRequired; /// 6 - public DesigMode DesigMode; /// 7 - public Results.Output.LogType DesigType; /// 8 public override void InitializeAll() { @@ -45,8 +43,6 @@ namespace TBF.Rig.Output.DB.SensusOracle #endif ReadStartInfo = true; /// 5 StartInfoIsRequired = false; /// 6 - DesigMode = DesigMode.Auto; /// 7 - DesigType = Results.Output.LogType.Just_Q3Q2Q1; /// 8 } string[] paramNames = new string[] @@ -58,8 +54,6 @@ namespace TBF.Rig.Output.DB.SensusOracle "Save results", /// 4 "Read start info", /// 5 "Start info is required", /// 6 - "Designation Mode", /// 7 - "Designation when mode is 'As_specified'", /// 8 }; public override string ParamName(int i) { return paramNames[i]; } public override int ParamsCount() { return paramNames.Length; } @@ -89,13 +83,6 @@ namespace TBF.Rig.Output.DB.SensusOracle case 5: case 6: return new string[] { Strings.yes, Strings.no }; - case 7: - for (DesigMode md = 0; md < DesigMode.Count; md++) retVal.Add(md.ToString()); - return retVal; - - case 8: - for (Results.Output.LogType wm = 0; wm < Results.Output.LogType.Count; wm++) retVal.Add(wm.ToString()); - return retVal; } } @@ -110,8 +97,6 @@ namespace TBF.Rig.Output.DB.SensusOracle case 4: return SaveResults ? Strings.yes : Strings.no; case 5: return ReadStartInfo ? Strings.yes : Strings.no; case 6: return StartInfoIsRequired ? Strings.yes : Strings.no; - case 7: return DesigMode.ToString(); - case 8: return DesigType.ToString(); default: return string.Empty; } } @@ -148,28 +133,6 @@ namespace TBF.Rig.Output.DB.SensusOracle case 4: SaveResults = (strValue == Strings.yes); return CfgUpdateFlags.None; case 5: ReadStartInfo = (strValue == Strings.yes); return CfgUpdateFlags.None; case 6: StartInfoIsRequired = (strValue == Strings.yes); return CfgUpdateFlags.None; - - case 7: - for (DesigMode db = 0; db < DesigMode.Count; db++) - { - if (db.ToString() == strValue) - { - DesigMode = db; - return CfgUpdateFlags.None; - } - } - break; - - case 8: - for (Results.Output.LogType wm = 0; wm < Results.Output.LogType.Count; wm++) - { - if (wm.ToString() == strValue) - { - DesigType = wm; - return CfgUpdateFlags.None; - } - } - break; } return CfgUpdateFlags.None; @@ -214,20 +177,6 @@ namespace TBF.Rig.Output.DB.SensusOracle return true; break; - case 7: - for (DesigMode db = 0; db < DesigMode.Count; db++) - { - if (db.ToString() == strValue) return true; - } - break; - - case 8: - for (Results.Output.LogType wm = 0; wm < Results.Output.LogType.Count; wm++) - { - if (wm.ToString() == strValue) return true; - } - break; - default: message = "Invalid index"; return false; @@ -246,8 +195,6 @@ namespace TBF.Rig.Output.DB.SensusOracle prms.SaveResults = this.SaveResults; prms.ReadStartInfo = this.ReadStartInfo; prms.StartInfoIsRequired = this.StartInfoIsRequired; - prms.DesigMode = this.DesigMode; - prms.DesigType = this.DesigType; } public IParamsProvider Clone() diff --git a/TBF/Rig/Sequences/MainSeqUtils.cs b/TBF/Rig/Sequences/MainSeqUtils.cs index 922a8ec0b..533137229 100644 --- a/TBF/Rig/Sequences/MainSeqUtils.cs +++ b/TBF/Rig/Sequences/MainSeqUtils.cs @@ -1,5 +1,5 @@ /// -/// Copyright (c) 2020-2021 Sensus Slovensko a.s. +/// Copyright (c) 2020-2023 Sensus Slovensko a.s. /// using System; using System.Collections.Generic; @@ -276,8 +276,6 @@ namespace TBF.Rig.Sequences IsQ2PreCorrectionCalculated = false; CalculatedQ2PreCorrectionLR = 0; CalculatedQ2PreCorrectionRL = 0; - RawTestInfos = null; - CompleteTestInfos = null; } /// diff --git a/TBF/Rig/Sequences/ProcessData.cs b/TBF/Rig/Sequences/ProcessData.cs index e1f8d4c47..e807931ec 100644 --- a/TBF/Rig/Sequences/ProcessData.cs +++ b/TBF/Rig/Sequences/ProcessData.cs @@ -1,4 +1,7 @@ -using System; +/// +/// Copyright (c) 2015-2023 Sensus Slovensko a.s. +/// +using System; using System.Collections.Generic; using System.IO; using log4net; @@ -56,8 +59,6 @@ namespace TBF.Rig.Sequences public static bool IsQ2PreCorrectionCalculated; public static int CalculatedQ2PreCorrectionLR; public static int CalculatedQ2PreCorrectionRL; - public static IList RawTestInfos; /// Incomplete raw test infos from Oracle DB - public static Results.Output.SensusTestInfo[] CompleteTestInfos; /// Complete TBF test infos obtained as a best mathch /// /// State of water filled in the test bench. @@ -97,21 +98,7 @@ namespace TBF.Rig.Sequences writer.Write(IsQ2PreCorrectionCalculated); writer.Write(CalculatedQ2PreCorrectionLR); writer.Write(CalculatedQ2PreCorrectionRL); -#if ORACLE_DB - /// Write RawTestInfos - writer.Write((RawTestInfos != null) ? RawTestInfos.Count : 0); - if (RawTestInfos != null) - { - for (int i = 0; i < RawTestInfos.Count; i++) RawTestInfos[i].WriteBinary(writer); - } - /// Write CompleteTestInfos - writer.Write((CompleteTestInfos != null) ? CompleteTestInfos.Length : 0); - if (CompleteTestInfos != null) - { - for (int i = 0; i < CompleteTestInfos.Length; i++) CompleteTestInfos[i].WriteBinary(writer); - } -#endif log.WarnFormat("Process data succesfully saved to file {0}", PDataFileName); } } diff --git a/TBF/UI/Procedures/ProceduresCtrl.cs b/TBF/UI/Procedures/ProceduresCtrl.cs index c22fea169..a3ea40f6d 100644 --- a/TBF/UI/Procedures/ProceduresCtrl.cs +++ b/TBF/UI/Procedures/ProceduresCtrl.cs @@ -1100,11 +1100,6 @@ namespace TBF.UI.Procedures sb.AppendFormat("Save results = {0} ", pp.SaveResults); sb.AppendFormat("Read start info = {0} ", pp.ReadStartInfo); sb.AppendFormat("Start info is required = {0} ", pp.StartInfoIsRequired); - sb.AppendFormat("Designation mode = {0}", pp.DesigMode); - if (pp.DesigMode == DesigMode.As_specified) - { - sb.AppendFormat(" Designation type = {0}", pp.DesigType); - } } } break;