ErrorFlags E15 and E16, Results DB upgraded (int ErrorFlags in WaterMeter table, int DiverterStart, DiverterEnd in TestRslt table), ver. 2.17.674

This commit is contained in:
Milan Hanajik
2017-09-28 00:07:47 +02:00
parent fa36932fbc
commit ae1ed99c9f
19 changed files with 185 additions and 81 deletions
+19 -4
View File
@@ -50,8 +50,7 @@ namespace Results.Entities
public virtual string EndStateAux { get; set; } /// End state of the auxiliary water meter
public virtual double QRise { get; set; } /// [m3/h] detected Q_rise of a composed meter
public virtual double QFall { get; set; } /// [m3/h] detected Q_fall of a composed meter
//public virtual int ErrorFlags { get; set; } /// bitfield : bit14=E15, bit15=E16
//public virtual sbyte ErrorFlagsMd { get; set; } /// 0=off, 1=info, 2=on (evaluated in MeterTestRslt.Passed)
public virtual int ErrorFlags { get; set; } /// bitfield : bit14=E15, bit15=E16
public virtual bool Passed { get; set; }
public virtual int ResultCode { get; set; }
public virtual string ArchivePath { get; set; }
@@ -111,24 +110,39 @@ namespace Results.Entities
public virtual MeterTestRslt LastMeterTestRslts() { return lastMeterTestRslts; }
public virtual int ErrorFlagsFromTests()
public virtual int ErrorFlagsFromTests(out ErrorFlagsMode errorFlagsMode)
{
int errorFlags = 0;
ErrorFlagsMode eFlagsMode = 0; /// = ErrorFlagsMode.Off;
foreach (var mtr in MeterTestRslts)
{
if (mtr.TestDone) errorFlags |= mtr.TestRslt.ErrorFlags;
if ((int)mtr.TestRslt.ErrorFlagsMode() > (int)eFlagsMode) eFlagsMode = mtr.TestRslt.ErrorFlagsMode();
}
errorFlagsMode = eFlagsMode; /// Maximum from all tests (=ErrorFlagsMode.On if at least one test is ErrorFlagsMode.On)
return errorFlags;
}
public virtual int ErrorFlagsFromTestsAndWM(out ErrorFlagsMode errorFlagsMode)
{
int eFlagsFromTests = ErrorFlagsFromTests(out errorFlagsMode) | ErrorFlags;
return (errorFlagsMode != ErrorFlagsMode.Off) ? (eFlagsFromTests | ErrorFlags) : 0;
}
public virtual string ErrorFlagstStr()
{
return Utils.ErrorFlagsStr(ErrorFlagsFromTests());
ErrorFlagsMode errorFlagsMode;
return Utils.ErrorFlagsStr(ErrorFlagsFromTestsAndWM(out errorFlagsMode));
}
public virtual bool PassedFromTests()
{
ErrorFlagsMode eFlagsMode;
int eFlags = ErrorFlagsFromTestsAndWM(out eFlagsMode);
bool passed = true;
if (eFlagsMode == ErrorFlagsMode.On && eFlags != 0) passed = false;
foreach (var mtr in MeterTestRslts)
{
if (mtr.Evaluate() && (!mtr.Passed || !mtr.TestDone))
@@ -137,6 +151,7 @@ namespace Results.Entities
break;
}
}
return passed;
}