(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:
parent
16c59b5c47
commit
3b2139d3df
@ -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
|
||||
{
|
||||
|
||||
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -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"),
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user