(1) Output.FileWriters.IperlLogger uses definitions stored in Output.SensusTestInfo objects, (2) sensusOracle.Database OK for Suez, searches for appropriate SensusTestInfo-s.

This commit is contained in:
Milan Hanajik 2018-09-19 07:50:49 +02:00
parent 16c59b5c47
commit 3b2139d3df
4 changed files with 187 additions and 117 deletions

View File

@ -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<SensusTestInfo> testInfos = new List<SensusTestInfo>();
IList<SensusTestInfo> oraDbTestInfos = new List<SensusTestInfo>(); /// 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<SensusTestInfo>();
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
{

View File

@ -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));
}
}

View File

@ -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"),
};
}
}
}
}

View File

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