From 3b2139d3dfbe0579df1781fc456d993ecb62c7ef Mon Sep 17 00:00:00 2001 From: Milan Hanajik Date: Wed, 19 Sep 2018 07:50:49 +0200 Subject: [PATCH] (1) Output.FileWriters.IperlLogger uses definitions stored in Output.SensusTestInfo objects, (2) sensusOracle.Database OK for Suez, searches for appropriate SensusTestInfo-s. --- .../Output/DB/SensusOracle/Database.cs | 147 ++++++++++++------ .../Output/FileWriters/IperlLogger/Writer.cs | 81 +++------- TBF/BenchControl/Output/SensusCommon.cs | 56 ++++++- TBF/BenchControl/Output/SensusTestInfo.cs | 20 ++- 4 files changed, 187 insertions(+), 117 deletions(-) diff --git a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs index 8b60e4adf..c548a84be 100644 --- a/TBF/BenchControl/Output/DB/SensusOracle/Database.cs +++ b/TBF/BenchControl/Output/DB/SensusOracle/Database.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using log4net; using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider using Config; @@ -53,7 +54,8 @@ namespace TBF.BenchControl.Output.DB.SensusOracle int id_WZTyp; int rev_WZTyp; - IList testInfos = new List(); + IList oraDbTestInfos = new List(); /// Contains only flowId-s ad qBezeichnung-s + SensusTestInfo[] completeTestInfos; /// Contains also a range (90-100/100-110), a TBF test name and a string form of the flowId public Database() {} @@ -357,69 +359,114 @@ namespace TBF.BenchControl.Output.DB.SensusOracle { OracleParameter parm; - OracleCommand cmd = new OracleCommand("INSERT INTO VT_PRUEFREIHE_PD(" + - "ANBID, ID_Pruefstand, ID_WzPruefreihe, ID_WZTyp, Rev_WZTyp, Rev_Pruefstand_WZTyp, " + - "StartDatumZeit, EndDatumZeit, Betriebsart, QVzKontakt, " + - "FuellenBegDruck, DruckEvakVorne, DruckEvakHinten, DruckBeiAbpressen, " + - "Druckentwaessern, SpuelDurchflussIst, ProgrammVersion)" + - " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)", conn); - parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); ///:1 - parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = 18000 + b.TestBenchId; cmd.Parameters.Add(parm); ///:2 - parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = b.BatchNr; cmd.Parameters.Add(parm); ///:3 - parm = new OracleParameter("ID_WZTyp", OracleDbType.Int32); parm.Value = b.WaterMeters[0].WaterMeterData.WMTypeId; cmd.Parameters.Add(parm); ///:4 - parm = new OracleParameter("Rev_WZTyp", OracleDbType.Int32); parm.Value = b.WaterMeters[0].WaterMeterData.WMTypeRev; cmd.Parameters.Add(parm); ///:5 - parm = new OracleParameter("Rev_Pruefstand_WZTyp", OracleDbType.Int32); parm.Value = 1; cmd.Parameters.Add(parm); ///:6 - - parm = new OracleParameter("StartDatumZeit", OracleDbType.TimeStamp); parm.Value = b.StartTime; cmd.Parameters.Add(parm); ///:7 - parm = new OracleParameter("EndDatumZeit", OracleDbType.TimeStamp); parm.Value = b.EndTime; cmd.Parameters.Add(parm); ///:8 - parm = new OracleParameter("Betriebsart", OracleDbType.Varchar2); parm.Value = ""; cmd.Parameters.Add(parm); ///:9 - parm = new OracleParameter("QVzKontakt", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:10 - - parm = new OracleParameter("FuellenBegDruck", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:11 - parm = new OracleParameter("DruckEvakVorne", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:12 - parm = new OracleParameter("DruckEvakHinten", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:13 - parm = new OracleParameter("DruckBeiAbpressen", OracleDbType.Double); parm.Value = 0; /*TODO*/ cmd.Parameters.Add(parm); ///:14 - - parm = new OracleParameter("Druckentwaessern", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:15 - parm = new OracleParameter("SpuelDurchflussIst", OracleDbType.Double); parm.Value = 0; /*TODO*/ cmd.Parameters.Add(parm); ///:16 - parm = new OracleParameter("ProgrammVersion", OracleDbType.Varchar2); parm.Value = "TBF v." + b.ProgramVersion; cmd.Parameters.Add(parm); ///:17 - - cmd.ExecuteNonQuery(); /// Returns nr. of updated rows - - if ((id_WZTyp != b.WaterMeters[0].WaterMeterData.WMTypeId) || (rev_WZTyp != b.WaterMeters[0].WaterMeterData.WMTypeRev) || testInfos.Count == 0) + if ((id_WZTyp != b.WaterMeters[0].WaterMeterData.WMTypeId) || (rev_WZTyp != b.WaterMeters[0].WaterMeterData.WMTypeRev) || oraDbTestInfos.Count == 0 || completeTestInfos == null) { - testInfos.Clear(); id_WZTyp = b.WaterMeters[0].WaterMeterData.WMTypeId; rev_WZTyp = b.WaterMeters[0].WaterMeterData.WMTypeRev; + /// + /// Read 'incomplete' TestInfo from the database + /// OracleCommand cmd1 = new OracleCommand("SELECT PruefungsNr, PosFehlerKalt, QBezeichnung FROM VT_PRUEFPUNKT_SOLL_SD WHERE ANBID=4 AND ID_WZTyp=:1 AND Rev_WZTyp=:2", conn); parm = new OracleParameter("ID_WZTyp", OracleDbType.Int32); parm.Value = id_WZTyp; cmd1.Parameters.Add(parm); ///:1 parm = new OracleParameter("Rev_WZTyp", OracleDbType.Int32); parm.Value = rev_WZTyp; cmd1.Parameters.Add(parm); ///:2 + oraDbTestInfos.Clear(); OracleDataReader dr = cmd1.ExecuteReader(); while (dr.Read()) { int pruefungsNr = dr.GetInt32(0); double errLimHi = dr.GetDouble(1); string qBezeichnung = dr.GetString(2); - if (qBezeichnung == "Q2" && errLimHi > 2.0) qBezeichnung = "Q2adj"; - if (qBezeichnung.ToLower().Contains("just") && pruefungsNr == -1) qBezeichnung = "Adjustment"; - - if (qBezeichnung.Contains("Q") || qBezeichnung == "Adjustment") - { - testInfos.Add(new SensusTestInfo(pruefungsNr, pruefungsNr.ToString(), qBezeichnung, qBezeichnung, true)); - log.WarnFormat("VT_PRUEFPUNKT_SOLL_SD info : ID_WZTyp={0} Rev_WZTyp={1} PruefungsNr={2} PosFehlerKalt={3} QBezeichnung={4}", - id_WZTyp, rev_WZTyp, pruefungsNr, errLimHi, qBezeichnung); - } + oraDbTestInfos.Add(new SensusTestInfo(pruefungsNr, string.Empty, qBezeichnung, Range.R100_110, errLimHi.ToString())); } dr.Close(); + + oraDbTestInfos = oraDbTestInfos.OrderBy(x => x.PruefungsNr).ToList(); + + foreach (var ti in oraDbTestInfos) + { + log.WarnFormat("VT_PRUEFPUNKT_SOLL_SD info : ID_WZTyp={0} Rev_WZTyp={1} PruefungsNr={2} PosFehlerKalt={3} QBezeichnung={4}", + id_WZTyp, rev_WZTyp, ti.PruefungsNr, ti.TestName, ti.QBezeichnung); + } + + /// + /// Find a matching complete test info + /// + completeTestInfos = null; + for (LogType lt = 0; lt < LogType.Count; lt++) + { + SensusTestInfo[] tinfos = SensusCommon.GetTestInfos(lt); + if (oraDbTestInfos.Count == tinfos.Length) + { + bool isDifferent = false; + + for (int i = 0; i < tinfos.Length; i++) + { + if ((oraDbTestInfos[i].PruefungsNr != tinfos[i].PruefungsNr) || (oraDbTestInfos[i].QBezeichnung != tinfos[i].QBezeichnung)) + { + isDifferent = true; + break; + } + } + + if (!isDifferent) + { + completeTestInfos = tinfos; + break; + } + } + } + + if (completeTestInfos != null) + { + foreach (var ti in completeTestInfos) + { + log.WarnFormat("Selected test info : ID_WZTyp={0} Rev_WZTyp={1} PruefungsNr={2} Str={3} QBezeichnung={4} Range={5} Test={6}", + id_WZTyp, rev_WZTyp, ti.PruefungsNr, ti.PruefungsNrStr, ti.QBezeichnung, ti.Range, ti.TestName); + } + } + else + { + throw new Exception("No matching test infos found"); + } } - foreach (var testInfo in testInfos) - { - Results.Entities.TestRslt tr = b.GetTestRslt(testInfo.QBezeichnung, 0); + OracleCommand cmd = new OracleCommand("INSERT INTO VT_PRUEFREIHE_PD(" + + "ANBID, ID_Pruefstand, ID_WzPruefreihe, ID_WZTyp, Rev_WZTyp, Rev_Pruefstand_WZTyp, " + + "StartDatumZeit, EndDatumZeit, Betriebsart, QVzKontakt, " + + "FuellenBegDruck, DruckEvakVorne, DruckEvakHinten, DruckBeiAbpressen, " + + "Druckentwaessern, SpuelDurchflussIst, ProgrammVersion)" + + " VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17)", conn); + parm = new OracleParameter("ANBID", OracleDbType.Int32); parm.Value = Anbid_StaraTura; cmd.Parameters.Add(parm); ///:1 + parm = new OracleParameter("ID_Pruefstand", OracleDbType.Int32); parm.Value = 18000 + b.TestBenchId; cmd.Parameters.Add(parm); ///:2 + parm = new OracleParameter("ID_WzPruefreihe", OracleDbType.Int32); parm.Value = b.BatchNr; cmd.Parameters.Add(parm); ///:3 + parm = new OracleParameter("ID_WZTyp", OracleDbType.Int32); parm.Value = b.WaterMeters[0].WaterMeterData.WMTypeId; cmd.Parameters.Add(parm); ///:4 + parm = new OracleParameter("Rev_WZTyp", OracleDbType.Int32); parm.Value = b.WaterMeters[0].WaterMeterData.WMTypeRev; cmd.Parameters.Add(parm); ///:5 + parm = new OracleParameter("Rev_Pruefstand_WZTyp", OracleDbType.Int32); parm.Value = 1; cmd.Parameters.Add(parm); ///:6 - if (tr == null) tr = b.GetTestRslt(testInfo.QBezeichnung, 1); /// TODO: Remove this workaround for large watermeters with multiple parts at Q3 + parm = new OracleParameter("StartDatumZeit", OracleDbType.TimeStamp); parm.Value = b.StartTime; cmd.Parameters.Add(parm); ///:7 + parm = new OracleParameter("EndDatumZeit", OracleDbType.TimeStamp); parm.Value = b.EndTime; cmd.Parameters.Add(parm); ///:8 + parm = new OracleParameter("Betriebsart", OracleDbType.Varchar2); parm.Value = ""; cmd.Parameters.Add(parm); ///:9 + parm = new OracleParameter("QVzKontakt", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:10 + + parm = new OracleParameter("FuellenBegDruck", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:11 + parm = new OracleParameter("DruckEvakVorne", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:12 + parm = new OracleParameter("DruckEvakHinten", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:13 + parm = new OracleParameter("DruckBeiAbpressen", OracleDbType.Double); parm.Value = 0; /*TODO*/ cmd.Parameters.Add(parm); ///:14 + + parm = new OracleParameter("Druckentwaessern", OracleDbType.Double); parm.Value = 0; cmd.Parameters.Add(parm); ///:15 + parm = new OracleParameter("SpuelDurchflussIst", OracleDbType.Double); parm.Value = 0; /*TODO*/ cmd.Parameters.Add(parm); ///:16 + parm = new OracleParameter("ProgrammVersion", OracleDbType.Varchar2); parm.Value = "TBF v." + b.ProgramVersion; cmd.Parameters.Add(parm); ///:17 + + cmd.ExecuteNonQuery(); /// Returns nr. of updated rows + + + foreach (var testInfo in completeTestInfos) + { + Results.Entities.TestRslt tr = b.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) continue; @@ -540,18 +587,18 @@ namespace TBF.BenchControl.Output.DB.SensusOracle } - foreach (var testInfo in testInfos) + foreach (var testInfo in completeTestInfos) { - Results.Entities.TestData tData = wm.GetTestData(testInfo.QBezeichnung); + Results.Entities.TestData tData = wm.GetTestData(testInfo.TestName); Results.Entities.MeterTestRslt mtr; if (tData == null) { - throw new Exception(string.Format("'{0}' test results missing, watermeter {1}", testInfo.QBezeichnung, wm.WMPosition)); + throw new Exception(string.Format("'{0}' test results missing, watermeter {1}", testInfo.TestName, wm.WMPosition)); } else if (tData.Repeats == 1) { - mtr = wm.GetMeterTestRslt(testInfo.QBezeichnung); - if (mtr == null) throw new Exception(string.Format("'{0}' test results missing, watermeter {1}", testInfo.QBezeichnung, wm.WMPosition)); + mtr = wm.GetMeterTestRslt(testInfo.TestName); + if (mtr == null) throw new Exception(string.Format("'{0}' test results missing, watermeter {1}", testInfo.TestName, wm.WMPosition)); } else { diff --git a/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs b/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs index 5ce78782a..3e4d99106 100644 --- a/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs +++ b/TBF/BenchControl/Output/FileWriters/IperlLogger/Writer.cs @@ -23,10 +23,7 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger WriterCfg writerCfg; - string[] flowIDs; /// identification of flows in log files - string[] flowNames; /// flow names in TBF procedures - string[] qBzs; /// flow names in Oracle database - bool[] pbs_100_110; /// true = flow range is 100-110%, false = flow range is 90-100% + SensusTestInfo[] testInfos; enum CurrentOp { @@ -54,41 +51,7 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger writerCfg = cfg as WriterCfg; currentOp = CurrentOp.None; - switch (writerCfg.LogType) - { - default: - case LogType.Just_Q1Q2Q3: - - flowIDs = new string[] { "-5", "-4", "-3", "-2", "-1", "-0", "1", "2", "3", "4", "5" }; - flowNames = new string[] { "", "", "", "", "Adjustment", "", "Q1", "Q2", "Q3", "", "" }; - qBzs = new string[] { "", "", "", "", "Just", "", "Q1", "Q2", "Q3", "", "" }; - pbs_100_110 = new bool[] { false, false, false, false, false, false, true, true, false, false, false }; - break; - - case LogType.Just_Q1Q2__Q3: - - flowIDs = new string[] { "-5", "-4", "-3", "-2", "-1", "-0", "1", "2", "3", "4", "5" }; - flowNames = new string[] { "", "", "", "", "Adjustment", "", "Q1", "Q2", "", "", "Q3" }; - qBzs = new string[] { "", "", "", "", "Just", "", "Q1", "Q2", "", "", "Q3" }; - pbs_100_110 = new bool[] { false, false, false, false, false, false, true, true, false, false, false }; - break; - - case LogType.DEWA: - - flowIDs = new string[] { "-5", "-4", "-3", "-2", "-1", "-0", "1", "2", "3", "4", "5" }; - flowNames = new string[] { "", "", "", "", "Adjustment", "", "Q1", "Q2", "Q2adj", "Q3", "Q4" }; - qBzs = new string[] { "", "", "", "", "Just", "", "Q1", "Q2", "Q2", "Q3", "Q4" }; - pbs_100_110 = new bool[] { false, false, false, false, false, false, true, true, true, false, false }; - break; - - case LogType.Suez: - - flowIDs = new string[] { "-2", "-1", "01", "02", "03", "05", "06", "07", "08", "10", }; - flowNames = new string[] { "Qjust_A4", "Qjust_A0", "Q1lr", "Q2aclr", "Q2lr", "Q3lr", "Q1rl", "Q2acrl", "Q2rl", "Q3rl", }; - qBzs = new string[] { "Q-2", "Q-1", "Q1", "Q2ac", "Q2", "Q3", "Q1", "Q2ac", "Q2", "Q3", }; - pbs_100_110 = new bool[] { false, false, true, true, true, false, true, true, true, false, }; - break; - } + testInfos = SensusCommon.GetTestInfos(writerCfg.LogType); log.Debug(this.ToString()); } @@ -222,17 +185,17 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger Results.Entities.WaterMeterData wmData = wm0.WaterMeterData; - Results.Entities.MeterTestRslt[] wm0trs = new Results.Entities.MeterTestRslt[flowIDs.Length]; + Results.Entities.MeterTestRslt[] wm0trs = new Results.Entities.MeterTestRslt[testInfos.Length]; double totalTestTime = 0; - for (int j = 0; j < flowIDs.Length; j++) + for (int j = 0; j < testInfos.Length; j++) { - wm0trs[j] = wm0.GetMeterTestRslt(flowNames[j]); + wm0trs[j] = wm0.GetMeterTestRslt(testInfos[j].TestName); if (wm0trs[j] != null) { totalTestTime += wm0trs[j].TargetTime(); } - else if (!string.IsNullOrEmpty(flowNames[j])) + else if (!string.IsNullOrEmpty(testInfos[j].TestName)) { return Retv.Error; /// Missing test result for one of specified tests } @@ -251,12 +214,12 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger logger.WriteLine(string.Format("RevWzTyp={0}", wmData.WMTypeRev)); logger.WriteLine(string.Format("RevPruefstandWzTyp=2")); - for (int j = 0; j < flowIDs.Length; j++) + for (int j = 0; j < testInfos.Length; j++) { - string fId = flowIDs[j]; - string qBz = qBzs[j]; + string fId = testInfos[j].PruefungsNrStr; + string qBz = testInfos[j].QBezeichnung; Results.Entities.MeterTestRslt wm0r = wm0trs[j]; - bool pb_100_110 = pbs_100_110[j]; + bool pb_100_110 = (testInfos[j].Range == Range.R100_110); if (wm0r != null) { @@ -314,12 +277,12 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger Results.Entities.WaterMeter wMtr = batch.WaterMeters[i]; bool testRsltIsMissing = false; - Results.Entities.MeterTestRslt[] wmtrs = new Results.Entities.MeterTestRslt[flowIDs.Length]; - for (int j = 0; j < flowIDs.Length; j++) + Results.Entities.MeterTestRslt[] wmtrs = new Results.Entities.MeterTestRslt[testInfos.Length]; + for (int j = 0; j < testInfos.Length; j++) { - wmtrs[j] = wm0.GetMeterTestRslt(flowNames[j]); + wmtrs[j] = wm0.GetMeterTestRslt(testInfos[j].TestName); - if (wm0trs[j] == null && !string.IsNullOrEmpty(flowNames[j])) + if (wm0trs[j] == null && !string.IsNullOrEmpty(testInfos[j].TestName)) { testRsltIsMissing = true; /// Missing test result for one of specified tests } @@ -344,10 +307,10 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger logger.WriteLine(string.Format("PrüfIndex={0}", wMtr.Pruefindex)); /// 7301 logger.WriteLine(string.Format("GeprüftIndex=1")); /// 1 - for (int j = 0; j < flowIDs.Length; j++) + for (int j = 0; j < testInfos.Length; j++) { Results.Entities.MeterTestRslt mtr = wmtrs[j]; - string flID = flowIDs[j]; + string flID = testInfos[j].PruefungsNrStr; if (mtr != null) { @@ -357,7 +320,7 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger logger.WriteLine(string.Format("ZeitImpulse{0}={1}", flID, mtr.TestTime.ToString(Program.AltCulture))); logger.WriteLine(string.Format("Impulse{0}={1}", flID, 0)); logger.WriteLine(string.Format("Volumen{0}={1}", flID, mtr.VolumeMeter.ToString(Program.AltCulture))); - logger.WriteLine(string.Format("KorrFehler{0}={1}", flID, ((flowNames[j] == "Q2") && mtr.WaterMeter.Q2CorrectionDone) ? mtr.WaterMeter.Q2ErrWOCorrection.ToString(Program.AltCulture) + logger.WriteLine(string.Format("KorrFehler{0}={1}", flID, ((testInfos[j].TestName == "Q2") && mtr.WaterMeter.Q2CorrectionDone) ? mtr.WaterMeter.Q2ErrWOCorrection.ToString(Program.AltCulture) : mtr.Error.ToString(Program.AltCulture))); logger.WriteLine(string.Format("KorrDurchfluss{0}={1}", flID, 0)); logger.WriteLine(string.Format("Q{0}KorrBestanden={1}", flID, 0)); @@ -406,18 +369,18 @@ namespace TBF.BenchControl.Output.FileWriters.IperlLogger logger.WriteLine(string.Format("Dichtprüfung={0}", 0)); /// 1 - for (int j = 0; j < flowIDs.Length; j++) + for (int j = 0; j < testInfos.Length; j++) { - Results.Entities.TestRslt tr = wm0.GetTestRslt(flowNames[j]); + Results.Entities.TestRslt tr = wm0.GetTestRslt(testInfos[j].TestName); if (tr != null) { - logger.WriteLine(string.Format("Q{0}_geprüft=1", flowIDs[j])); - WriteOneToDisk(logger, flowIDs[j], tr); + logger.WriteLine(string.Format("Q{0}_geprüft=1", testInfos[j].PruefungsNrStr)); + WriteOneToDisk(logger, testInfos[j].PruefungsNrStr, tr); } else { - logger.WriteLine(string.Format("Q{0}_geprüft=0", flowIDs[j])); + logger.WriteLine(string.Format("Q{0}_geprüft=0", testInfos[j].PruefungsNrStr)); } } diff --git a/TBF/BenchControl/Output/SensusCommon.cs b/TBF/BenchControl/Output/SensusCommon.cs index 5acd7e3ed..bf84f1d51 100644 --- a/TBF/BenchControl/Output/SensusCommon.cs +++ b/TBF/BenchControl/Output/SensusCommon.cs @@ -14,7 +14,61 @@ namespace TBF.BenchControl.Output Count } - public class SensusCommon + public static class SensusCommon { + public static SensusTestInfo[] GetTestInfos(LogType logType) + { + switch (logType) + { + default: + case LogType.Just_Q1Q2Q3: + + return new SensusTestInfo[] + { + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), + new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), + new SensusTestInfo( 3, "03", "Q3", Range.R90_100, "Q3"), + }; + + case LogType.Just_Q1Q2__Q3: + + return new SensusTestInfo[] + { + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), + new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), + new SensusTestInfo( 5, "05", "Q3", Range.R90_100, "Q3"), + }; + + case LogType.DEWA: + + return new SensusTestInfo[] + { + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Adjustment"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1"), + new SensusTestInfo( 2, "02", "Q2", Range.R100_110, "Q2"), + new SensusTestInfo( 3, "03", "Q2", Range.R100_110, "Q2adj"), + new SensusTestInfo( 4, "04", "Q3", Range.R100_110, "Q3"), + new SensusTestInfo( 5, "05", "Q4", Range.R90_100, "Q4"), + }; + + case LogType.Suez: + + return new SensusTestInfo[] + { + new SensusTestInfo(-2, "-2", "Just", Range.R90_100, "Qjust_A4"), + new SensusTestInfo(-1, "-1", "Just", Range.R90_100, "Qjust_A0"), + new SensusTestInfo( 1, "01", "Q1", Range.R100_110, "Q1_lr"), + new SensusTestInfo( 2, "02", "Q2ac", Range.R100_110, "Q2ac_lr"), + new SensusTestInfo( 3, "03", "Q2", Range.R100_110, "Q2_lr"), + new SensusTestInfo( 5, "05", "Q3", Range.R90_100, "Q3_lr"), + new SensusTestInfo( 6, "06", "Q1", Range.R100_110, "Q1_rl"), + new SensusTestInfo( 7, "07", "Q2ac", Range.R100_110, "Q2ac_rl"), + new SensusTestInfo( 8, "08", "Q2", Range.R100_110, "Q2_rl"), + new SensusTestInfo(10, "10", "Q3", Range.R90_100, "Q3_rl"), + }; + } + } } } diff --git a/TBF/BenchControl/Output/SensusTestInfo.cs b/TBF/BenchControl/Output/SensusTestInfo.cs index 81933f99f..1a56ab9f3 100644 --- a/TBF/BenchControl/Output/SensusTestInfo.cs +++ b/TBF/BenchControl/Output/SensusTestInfo.cs @@ -5,25 +5,31 @@ using System; namespace TBF.BenchControl.Output { + public enum Range + { + R90_100, + R100_110, + } + /// /// Information extracted from VT_PRUEFPUNKT_SOLL_SD for a given watermeter by query: /// SELECT * FROM VT_PRUEFPUNKT_SOLL_SD WHERE ANBID=4 AND ID_WZTyp=x AND Rev_WZTyp=y /// public class SensusTestInfo { - public int PruefungsNr; - public string PruefungsNrStr; - public string QBezeichnung; - public string TestName; - public bool Pbs_100_110; + public int PruefungsNr; /// Identification of a flow + public string PruefungsNrStr; /// Identification of a flow - string form for log files + public string QBezeichnung; /// Flow name in Oracle database + public Range Range; /// Range.R90_100 or Range.R100_110 (flow range in % of a target flow) + public string TestName; /// Test name in TBF procedures - public SensusTestInfo(int prNr, string prNrStr, string qBz, string testName, bool p100_110) + public SensusTestInfo(int prNr, string prNrStr, string qBz, Range range, string testName) { PruefungsNr = prNr; PruefungsNrStr = prNrStr; QBezeichnung = qBz; + Range = range; TestName = testName; - Pbs_100_110 = p100_110; } } }