Uncertainty used when evaluating tests, in TestWizard, UI, etc., version 2.1.171.

This commit is contained in:
Milan Hanajik
2016-01-02 11:11:45 +01:00
parent 81fe244c23
commit 61bfa51fa7
22 changed files with 146 additions and 109 deletions
+3 -3
View File
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Sensus")] [assembly: AssemblyCompany("Sensus")]
[assembly: AssemblyProduct("Config")] [assembly: AssemblyProduct("Config")]
[assembly: AssemblyCopyright("Copyright © 2013 - 2015 Sensus Slovensko a.s.")] [assembly: AssemblyCopyright("Copyright © 2013 - 2016 Sensus Slovensko a.s.")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.2.0")] [assembly: AssemblyVersion("2.1.171.0")]
[assembly: AssemblyFileVersion("2.0.2.0")] [assembly: AssemblyFileVersion("2.1.171.0")]
+4 -4
View File
@@ -8,9 +8,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Results")] [assembly: AssemblyTitle("Results")]
[assembly: AssemblyDescription("")] [assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("Sensus")]
[assembly: AssemblyProduct("Results")] [assembly: AssemblyProduct("Results")]
[assembly: AssemblyCopyright("Copyright © 2015")] [assembly: AssemblyCopyright("Copyright © 2016")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.2.0")] [assembly: AssemblyVersion("2.1.171.0")]
[assembly: AssemblyFileVersion("2.0.2.0")] [assembly: AssemblyFileVersion("2.1.171.0")]
+4 -4
View File
@@ -8,9 +8,9 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTitle("ResultsBrowser")] [assembly: AssemblyTitle("ResultsBrowser")]
[assembly: AssemblyDescription("")] [assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")] [assembly: AssemblyCompany("Sensus")]
[assembly: AssemblyProduct("ResultsBrowser")] [assembly: AssemblyProduct("ResultsBrowser")]
[assembly: AssemblyCopyright("Copyright © 2015")] [assembly: AssemblyCopyright("Copyright © 2015 - 2016 Sensus Slovensko a.s.")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// You can specify all the values or you can default the Build and Revision Numbers // You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below: // by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("2.0.2.0")] [assembly: AssemblyVersion("2.1.171.0")]
[assembly: AssemblyFileVersion("2.0.2.0")] [assembly: AssemblyFileVersion("2.1.171.0")]
@@ -818,8 +818,8 @@ namespace TBF.BenchControl.Sequences
sb.Append(";"); sb.Append(tstRslt.Volume); sb.Append(";"); sb.Append(tstRslt.Volume);
sb.Append(";"); sb.Append(tstRslt.Qfrom); sb.Append(";"); sb.Append(tstRslt.Qfrom);
sb.Append(";"); sb.Append(tstRslt.Qto); sb.Append(";"); sb.Append(tstRslt.Qto);
sb.Append(";"); sb.Append(tstRslt.ErrLimLo); sb.Append(";"); sb.Append(tstRslt.ErrLimLo + tstRslt.Uncertainty);
sb.Append(";"); sb.Append(tstRslt.ErrLimHi); sb.Append(";"); sb.Append(tstRslt.ErrLimHi - tstRslt.Uncertainty);
sb.Append(";"); sb.Append("0"); sb.Append(";"); sb.Append("0");
sb.Append(";"); sb.Append("60"); sb.Append(";"); sb.Append("60");
sb.Append(";"); sb.Append("0"); sb.Append(";"); sb.Append("0");
@@ -899,7 +899,8 @@ namespace TBF.BenchControl.Sequences
sb.Append(";"); sb.Append(mtrRslt.PulsesMeter); /// WM Np met - pocet impulzov zo skusaneho meradla sb.Append(";"); sb.Append(mtrRslt.PulsesMeter); /// WM Np met - pocet impulzov zo skusaneho meradla
sb.Append(";"); sb.Append(mtrRslt.PulsesMaster); /// WM Np elm - pocet impulzov etalonu pocas merania pre prislusny vodomer sb.Append(";"); sb.Append(mtrRslt.PulsesMaster); /// WM Np elm - pocet impulzov etalonu pocas merania pre prislusny vodomer
sb.Append(";"); sb.Append(mtrRslt.Time); /// WM Tmet - cas merania (obmedzany pri synchro skuske) sb.Append(";"); sb.Append(mtrRslt.Time); /// WM Tmet - cas merania (obmedzany pri synchro skuske)
bool ok = (mtrRslt.VolumeErrorPct >= tstRslt.ErrLimLo) && (mtrRslt.VolumeErrorPct <= tstRslt.ErrLimHi); bool ok = (mtrRslt.VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (mtrRslt.VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
sb.Append(";"); sb.Append(ok ? "OK" : "NOK"); /// WM Vysledok (t.j. ci je v hraniciach chyb) - OK/NOK sb.Append(";"); sb.Append(ok ? "OK" : "NOK"); /// WM Vysledok (t.j. ci je v hraniciach chyb) - OK/NOK
sb.Append(";"); sb.Append(mtrRslt.Q2Correction.ToString("F1")); /// iPerl Q2 correction factor used during the test / AN value - hodnota z analogoveho prevodnika sb.Append(";"); sb.Append(mtrRslt.Q2Correction.ToString("F1")); /// iPerl Q2 correction factor used during the test / AN value - hodnota z analogoveho prevodnika
sb.Append(";"); sb.Append(mtrRslt.VolumeStart); /// WM Volume_start - pri datastreamovych hodnotach (alebo kamera) sb.Append(";"); sb.Append(mtrRslt.VolumeStart); /// WM Volume_start - pri datastreamovych hodnotach (alebo kamera)
@@ -921,7 +922,8 @@ namespace TBF.BenchControl.Sequences
sb.Append(";"); sb.Append(mtrRslt.PulsesMeter); /// WM Np met - pocet impulzov zo skusaneho meradla sb.Append(";"); sb.Append(mtrRslt.PulsesMeter); /// WM Np met - pocet impulzov zo skusaneho meradla
sb.Append(";"); sb.Append(mtrRslt.PulsesMaster); /// WM Np elm - pocet impulzov etalonu pocas merania pre prislusny vodomer sb.Append(";"); sb.Append(mtrRslt.PulsesMaster); /// WM Np elm - pocet impulzov etalonu pocas merania pre prislusny vodomer
sb.Append(";"); sb.Append(mtrRslt.Time); /// WM Tmet - cas merania (obmedzany pri synchro skuske) sb.Append(";"); sb.Append(mtrRslt.Time); /// WM Tmet - cas merania (obmedzany pri synchro skuske)
bool ok = (mtrRslt.VolumeErrorPct >= tstRslt.ErrLimLo) && (mtrRslt.VolumeErrorPct <= tstRslt.ErrLimHi); bool ok = (mtrRslt.VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (mtrRslt.VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
sb.Append(";"); sb.Append(ok ? "OK" : "NOK"); /// WM Vysledok (t.j. ci je v hraniciach chyb) - OK/NOK sb.Append(";"); sb.Append(ok ? "OK" : "NOK"); /// WM Vysledok (t.j. ci je v hraniciach chyb) - OK/NOK
sb.Append(";"); sb.Append(" "); /// WM AN value - hodnota z analogoveho prevodnika (teraz nic) sb.Append(";"); sb.Append(" "); /// WM AN value - hodnota z analogoveho prevodnika (teraz nic)
sb.Append(";"); sb.Append(mtrRslt.VolumeStart); /// WM Volume_start - pri datastreamovych hodnotach (alebo kamera) sb.Append(";"); sb.Append(mtrRslt.VolumeStart); /// WM Volume_start - pri datastreamovych hodnotach (alebo kamera)
@@ -1007,7 +1009,8 @@ namespace TBF.BenchControl.Sequences
tstRslt.Meters[i].PulsesMaster = tstRslt.PulsesMaster; tstRslt.Meters[i].PulsesMaster = tstRslt.PulsesMaster;
tstRslt.Meters[i].VolumeStart = 0; tstRslt.Meters[i].VolumeStart = 0;
tstRslt.Meters[i].VolumeErrorPct = errorPct; tstRslt.Meters[i].VolumeErrorPct = errorPct;
tstRslt.Meters[i].Passed = (test.ErrLimLo <= errorPct) && (errorPct <= test.ErrLimHi); tstRslt.Meters[i].Passed = (errorPct >= test.ErrLimLo + test.Uncertainty)
&& (errorPct <= test.ErrLimHi - test.Uncertainty);
tstRslt.Meters[i].VolumeMeter = test.Volume * (1.0f + 0.01f * errorPct); tstRslt.Meters[i].VolumeMeter = test.Volume * (1.0f + 0.01f * errorPct);
tstRslt.Meters[i].PulsesMeter = sensPath.RegisterReaders[i].PulsesPerLtr * tstRslt.Meters[i].VolumeMeter; tstRslt.Meters[i].PulsesMeter = sensPath.RegisterReaders[i].PulsesPerLtr * tstRslt.Meters[i].VolumeMeter;
tstRslt.Meters[i].Disabled = false; tstRslt.Meters[i].Disabled = false;
@@ -1124,7 +1127,8 @@ namespace TBF.BenchControl.Sequences
tstRslt.Meters[i].TimeEnd = test.TstTime; tstRslt.Meters[i].TimeEnd = test.TstTime;
tstRslt.Meters[i].PulsesMaster = tstRslt.PulsesMaster; tstRslt.Meters[i].PulsesMaster = tstRslt.PulsesMaster;
tstRslt.Meters[i].VolumeErrorPct = errorPct; tstRslt.Meters[i].VolumeErrorPct = errorPct;
tstRslt.Meters[i].Passed = (test.ErrLimLo <= errorPct) && (errorPct <= test.ErrLimHi); tstRslt.Meters[i].Passed = (errorPct >= test.ErrLimLo + test.Uncertainty)
&& (errorPct <= test.ErrLimHi - test.Uncertainty);
tstRslt.Meters[i].PulsesMeter = sensPath.RegisterReaders[i].PulsesPerLtr * tstRslt.Meters[i].VolumeMeter; tstRslt.Meters[i].PulsesMeter = sensPath.RegisterReaders[i].PulsesPerLtr * tstRslt.Meters[i].VolumeMeter;
} }
@@ -1133,7 +1137,8 @@ namespace TBF.BenchControl.Sequences
tstRslt.CombinedMeters[iCmbnd].PulsesMaster = tstRslt.PulsesMaster; tstRslt.CombinedMeters[iCmbnd].PulsesMaster = tstRslt.PulsesMaster;
tstRslt.CombinedMeters[iCmbnd].Time = test.TstTime; tstRslt.CombinedMeters[iCmbnd].Time = test.TstTime;
tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef); tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef);
tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.ErrLimLo <= tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct) && (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
} }
return tstRslt; return tstRslt;
@@ -338,7 +338,8 @@ namespace TBF.BenchControl.TestMethods.Adjustment
{ {
tstRslt.Meters[i].VolumeErrorPct = -100; tstRslt.Meters[i].VolumeErrorPct = -100;
} }
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.Meters[i].Passed = (tstRslt.Meters[i].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
tstRslt.Meters[i].Disabled = false; tstRslt.Meters[i].Disabled = false;
} }
@@ -140,7 +140,7 @@ namespace TBF.BenchControl.TestMethods.Adjustment
{ {
if (!disabled[i]) if (!disabled[i])
{ {
PaintOne(graphics, rects[i], tr.Meters[i].VolumeErrorPct, tr.ErrLimLo, tr.ErrLimHi); PaintOne(graphics, rects[i], tr.Meters[i].VolumeErrorPct, tr.ErrLimLo + tr.Uncertainty, tr.ErrLimHi - tr.Uncertainty);
} }
} }
} }
@@ -179,7 +179,7 @@ namespace TBF.BenchControl.TestMethods.Adjustment
{ {
if (!disabled[i]) if (!disabled[i])
{ {
PaintOne(graphics, rects[i], tr.Meters[i].VolumeErrorPct, tr.ErrLimLo, tr.ErrLimHi); PaintOne(graphics, rects[i], tr.Meters[i].VolumeErrorPct, tr.ErrLimLo + tr.Uncertainty, tr.ErrLimHi - tr.Uncertainty);
} }
} }
} }
@@ -183,7 +183,7 @@ namespace TBF.BenchControl.TestMethods.Adjustment
{ {
if (!disabled[i]) if (!disabled[i])
{ {
PaintOne(graphics, rects[i], tr.Meters[i].VolumeErrorPct, tr.ErrLimLo, tr.ErrLimHi); PaintOne(graphics, rects[i], tr.Meters[i].VolumeErrorPct, tr.ErrLimLo + tr.Uncertainty, tr.ErrLimHi - tr.Uncertainty);
} }
} }
} }
@@ -461,7 +461,8 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
tstRslt.CombinedMeters[iCmbnd].PulsesMaster = cBrd.EtPulses(0); tstRslt.CombinedMeters[iCmbnd].PulsesMaster = cBrd.EtPulses(0);
tstRslt.CombinedMeters[iCmbnd].Time = cBrd.TTime; tstRslt.CombinedMeters[iCmbnd].Time = cBrd.TTime;
tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef); tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef);
tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.ErrLimLo <= tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct) && (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
} }
/// Add data - end /// Add data - end
@@ -639,7 +639,8 @@ namespace TBF.BenchControl.TestMethods.CombinedWithDetection
tstRslt.CombinedMeters[iCmbnd].PulsesMaster = cBrd.EtPulses(0); tstRslt.CombinedMeters[iCmbnd].PulsesMaster = cBrd.EtPulses(0);
tstRslt.CombinedMeters[iCmbnd].Time = cBrd.TTime; tstRslt.CombinedMeters[iCmbnd].Time = cBrd.TTime;
tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef); tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef);
tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.ErrLimLo <= tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct) && (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
} }
/// Add data - end /// Add data - end
@@ -471,7 +471,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartAdvanced
{ {
Bridge.OnActivity(this, "Enter the water meter data"); Bridge.OnActivity(this, "Enter the water meter data");
State.Create("FixedStartAdvanced : Enter end-state") State.Create("FixedStartAdvanced : Enter end-state")
.AddOperation(dataEntryCmpnt.ShowTestEndFormOp(tstRslt.VolumeCTV, tstRslt.ErrLimLo, tstRslt.ErrLimHi)) .AddOperation(dataEntryCmpnt.ShowTestEndFormOp(tstRslt.VolumeCTV, tstRslt.ErrLimLo + tstRslt.Uncertainty,
tstRslt.ErrLimHi - tstRslt.Uncertainty))
.AddOperation(checkUiOp) .AddOperation(checkUiOp)
.EnterState(); .EnterState();
do do
@@ -563,7 +564,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartAdvanced
{ {
tstRslt.Meters[i].VolumeErrorPct = -100; tstRslt.Meters[i].VolumeErrorPct = -100;
} }
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.Meters[i].Passed = (tstRslt.Meters[i].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
tstRslt.Meters[i].Disabled = false; tstRslt.Meters[i].Disabled = false;
} }
@@ -482,8 +482,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartCombinedMeters
{ {
Bridge.OnActivity(this, "Enter the water meter data"); Bridge.OnActivity(this, "Enter the water meter data");
State.Create("FixedStartCombinedMeters : Enter end-state") State.Create("FixedStartCombinedMeters : Enter end-state")
.AddOperation(dataEntryCmpnt.ShowTestEndFormOp(tstRslt.VolumeCTV, tstRslt.ErrLimLo, tstRslt.ErrLimHi)) .AddOperation(dataEntryCmpnt.ShowTestEndFormOp(tstRslt.VolumeCTV, tstRslt.ErrLimLo + tstRslt.Uncertainty,
.AddOperation(checkUiOp) tstRslt.ErrLimHi - tstRslt.Uncertainty))
.AddOperation(checkUiOp)
.EnterState(); .EnterState();
do do
{ {
@@ -581,7 +582,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartCombinedMeters
tstRslt.CombinedMeters[iCmbnd].Time = cBrd.TTime; tstRslt.CombinedMeters[iCmbnd].Time = cBrd.TTime;
tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef); tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.CombinedMeters[iCmbnd].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef);
tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.ErrLimLo <= tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct) && (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.CombinedMeters[iCmbnd].Passed = (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
} }
/// Add data - end /// Add data - end
@@ -471,8 +471,9 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
{ {
Bridge.OnActivity(this, "Enter the water meter data"); Bridge.OnActivity(this, "Enter the water meter data");
State.Create("FixedStartMassCollection : Enter end-state") State.Create("FixedStartMassCollection : Enter end-state")
.AddOperation(dataEntryCmpnt.ShowTestEndFormOp(tstRslt.VolumeCTV, tstRslt.ErrLimLo, tstRslt.ErrLimHi)) .AddOperation(dataEntryCmpnt.ShowTestEndFormOp(tstRslt.VolumeCTV, tstRslt.ErrLimLo + tstRslt.Uncertainty,
.AddOperation(checkUiOp) tstRslt.ErrLimHi - tstRslt.Uncertainty))
.AddOperation(checkUiOp)
.EnterState(); .EnterState();
do do
{ {
@@ -563,7 +564,8 @@ namespace TBF.BenchControl.TestMethods.FixedStartMassCollection
{ {
tstRslt.Meters[i].VolumeErrorPct = -100; tstRslt.Meters[i].VolumeErrorPct = -100;
} }
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.Meters[i].Passed = (tstRslt.Meters[i].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
tstRslt.Meters[i].Disabled = false; tstRslt.Meters[i].Disabled = false;
} }
@@ -311,7 +311,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStart
{ {
tstRslt.Meters[i].VolumeErrorPct = -100; tstRslt.Meters[i].VolumeErrorPct = -100;
} }
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.Meters[i].Passed = (tstRslt.Meters[i].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
} }
else else
{ {
@@ -508,7 +508,8 @@ namespace TBF.BenchControl.TestMethods.FlyingStartCollectionMethod
{ {
tstRslt.Meters[i].VolumeErrorPct = -100; tstRslt.Meters[i].VolumeErrorPct = -100;
} }
tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi); tstRslt.Meters[i].Passed = (tstRslt.Meters[i].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
&& (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
} }
else else
{ {
@@ -218,60 +218,60 @@ namespace TBF.BenchControl.TestMethods.PMaxTest
if (StateMachine.Procedure.MetersKind == Config.Entities.MetersKind.Single) if (StateMachine.Procedure.MetersKind == Config.Entities.MetersKind.Single)
{ {
for (int i = 0; i < Config.Data.WMsCount; i++) for (int i = 0; i < Config.Data.WMsCount; i++)
{
if (sensPath.RegisterReaders[i] != null)
{ {
tstRslt.Meters[i].SerialNr = (WaterMeters.Count > i) ? WaterMeters[i].SerialNr : string.Empty; if (sensPath.RegisterReaders[i] != null)
tstRslt.Meters[i].VolumeStart = 0; {
tstRslt.Meters[i].VolumeEnd = 0; tstRslt.Meters[i].SerialNr = (WaterMeters.Count > i) ? WaterMeters[i].SerialNr : string.Empty;
tstRslt.Meters[i].VolumeMeter = 0; tstRslt.Meters[i].VolumeStart = 0;
tstRslt.Meters[i].VolumeRef = 0; tstRslt.Meters[i].VolumeEnd = 0;
tstRslt.Meters[i].PulsesMeter = 0; tstRslt.Meters[i].VolumeMeter = 0;
tstRslt.Meters[i].PulsesMaster = 0; tstRslt.Meters[i].VolumeRef = 0;
tstRslt.Meters[i].Time = testParams.DurationPMax; tstRslt.Meters[i].PulsesMeter = 0;
tstRslt.Meters[i].VolumeErrorPct = 0; tstRslt.Meters[i].PulsesMaster = 0;
tstRslt.Meters[i].Passed = true; tstRslt.Meters[i].Time = testParams.DurationPMax;
} tstRslt.Meters[i].VolumeErrorPct = 0;
} tstRslt.Meters[i].Passed = true;
} }
else
{
for (int iCmbnd = 0; iCmbnd < Config.Data.CompoundWMsCount; iCmbnd++)
{
tstRslt.CombinedMeters[iCmbnd].VolumeRef = 0;
for (int i = 2 * iCmbnd; i < 2 * iCmbnd + 2; i++)
{
if (sensPath.RegisterReaders[i] == null || sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon)
{
tstRslt.Meters[i].PulsesPerLiter = 1.0f;
}
else
{
tstRslt.Meters[i].PulsesPerLiter = sensPath.RegisterReaders[i].PulsesPerLtr;
}
tstRslt.Meters[i].SerialNr = (WaterMeters.Count > i) ? WaterMeters[i].SerialNr : string.Empty;
tstRslt.Meters[i].VolumeStart = 0;
tstRslt.Meters[i].VolumeEnd = 0;
tstRslt.Meters[i].VolumeRef = 0;
tstRslt.Meters[i].VolumeMeter = 0;
tstRslt.Meters[i].Time = test.TstTime;
tstRslt.Meters[i].TimeStart = 0;
tstRslt.Meters[i].TimeEnd = testParams.DurationPMax;
tstRslt.Meters[i].PulsesMeter = 0;
tstRslt.Meters[i].PulsesMaster = 0;
tstRslt.Meters[i].VolumeErrorPct = 0;
tstRslt.Meters[i].Passed = true;
} }
}
else
{
for (int iCmbnd = 0; iCmbnd < Config.Data.CompoundWMsCount; iCmbnd++)
{
tstRslt.CombinedMeters[iCmbnd].VolumeRef = 0;
tstRslt.CombinedMeters[iCmbnd].VolumeMeter = 0; for (int i = 2 * iCmbnd; i < 2 * iCmbnd + 2; i++)
tstRslt.CombinedMeters[iCmbnd].PulsesMaster = 0; {
tstRslt.CombinedMeters[iCmbnd].Time = testParams.DurationPMax; if (sensPath.RegisterReaders[i] == null || sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon)
tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = 0; {
tstRslt.CombinedMeters[iCmbnd].Passed = true; tstRslt.Meters[i].PulsesPerLiter = 1.0f;
} }
else
{
tstRslt.Meters[i].PulsesPerLiter = sensPath.RegisterReaders[i].PulsesPerLtr;
}
tstRslt.Meters[i].SerialNr = (WaterMeters.Count > i) ? WaterMeters[i].SerialNr : string.Empty;
tstRslt.Meters[i].VolumeStart = 0;
tstRslt.Meters[i].VolumeEnd = 0;
tstRslt.Meters[i].VolumeRef = 0;
tstRslt.Meters[i].VolumeMeter = 0;
tstRslt.Meters[i].Time = test.TstTime;
tstRslt.Meters[i].TimeStart = 0;
tstRslt.Meters[i].TimeEnd = testParams.DurationPMax;
tstRslt.Meters[i].PulsesMeter = 0;
tstRslt.Meters[i].PulsesMaster = 0;
tstRslt.Meters[i].VolumeErrorPct = 0;
tstRslt.Meters[i].Passed = true;
}
tstRslt.CombinedMeters[iCmbnd].VolumeMeter = 0;
tstRslt.CombinedMeters[iCmbnd].PulsesMaster = 0;
tstRslt.CombinedMeters[iCmbnd].Time = testParams.DurationPMax;
tstRslt.CombinedMeters[iCmbnd].VolumeErrorPct = 0;
tstRslt.CombinedMeters[iCmbnd].Passed = true;
}
} }
/// Add data - end /// Add data - end
@@ -398,7 +398,8 @@ namespace TBF.BenchControl.TestMethods.ReferenceFlowmeterCalibration
// { // {
// tstRslt.Meters[i].VolumeErrorPct = -100; // tstRslt.Meters[i].VolumeErrorPct = -100;
// } // }
// tstRslt.Meters[i].Passed = (tstRslt.ErrLimLo <= tstRslt.Meters[i].VolumeErrorPct) && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi); // tstRslt.Meters[i].Passed = (tstRslt.Meters[i].VolumeErrorPct >= tstRslt.ErrLimLo + tstRslt.Uncertainty)
// && (tstRslt.Meters[i].VolumeErrorPct <= tstRslt.ErrLimHi - tstRslt.Uncertainty);
// } // }
//} //}
/// Add data - end /// Add data - end
@@ -251,8 +251,8 @@ namespace TBF.BenchControl.TestMethods.iPerlCommunication
if (iPerl == null || if (iPerl == null ||
Math.Abs(oriTestRslt.Meters[i].VolumeErrorPct) <= 0.5f || Math.Abs(oriTestRslt.Meters[i].VolumeErrorPct) <= 0.5f ||
oriTestRslt.Meters[i].VolumeErrorPct < oriTestRslt.ErrLimLo || oriTestRslt.Meters[i].VolumeErrorPct < oriTestRslt.ErrLimLo + oriTestRslt.Uncertainty ||
oriTestRslt.Meters[i].VolumeErrorPct > oriTestRslt.ErrLimHi) oriTestRslt.Meters[i].VolumeErrorPct > oriTestRslt.ErrLimHi - oriTestRslt.Uncertainty)
{ {
/// Normal meter or iPerl without correction /// Normal meter or iPerl without correction
tstRslt.Meters[i].VolumeStart = oriTestRslt.Meters[i].VolumeStart; tstRslt.Meters[i].VolumeStart = oriTestRslt.Meters[i].VolumeStart;
@@ -176,8 +176,8 @@ namespace TBF.BenchControl.WaterMeters.iPerl
double F = D / (NominalTestFlow * 10.0); /// Error corrected with 8 Raw Units per minute [%] double F = D / (NominalTestFlow * 10.0); /// Error corrected with 8 Raw Units per minute [%]
double G = F / B; /// Error corrected with 1 Raw Unit per minute [%] double G = F / B; /// Error corrected with 1 Raw Unit per minute [%]
float errLimitLo = LastTestResult.TestResult.ErrLimLo; float errLimitLo = LastTestResult.TestResult.ErrLimLo + LastTestResult.TestResult.Uncertainty;
float errLimitHi = LastTestResult.TestResult.ErrLimHi; float errLimitHi = LastTestResult.TestResult.ErrLimHi - LastTestResult.TestResult.Uncertainty;
if (LastTestResult.VolumeErrorPct < errLimitLo) return 0; /// No Q2 correction if error too large -> WM failed if (LastTestResult.VolumeErrorPct < errLimitLo) return 0; /// No Q2 correction if error too large -> WM failed
if (LastTestResult.VolumeErrorPct > errLimitHi) return 0; /// No Q2 correction if error too large -> WM failed if (LastTestResult.VolumeErrorPct > errLimitHi) return 0; /// No Q2 correction if error too large -> WM failed
@@ -10,7 +10,7 @@ using System.Runtime.InteropServices;
[assembly: AssemblyConfiguration("")] [assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Sensus")] [assembly: AssemblyCompany("Sensus")]
[assembly: AssemblyProduct("TestBenchFramework")] [assembly: AssemblyProduct("TestBenchFramework")]
[assembly: AssemblyCopyright("Copyright © 2013 - 2015 Sensus Slovensko, a.s.")] [assembly: AssemblyCopyright("Copyright © 2013 - 2016 Sensus Slovensko, a.s.")]
[assembly: AssemblyTrademark("")] [assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")] [assembly: AssemblyCulture("")]
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number // Build Number
// Revision // Revision
// //
[assembly: AssemblyVersion("2.0.170.1")] [assembly: AssemblyVersion("2.1.171.1")]
[assembly: AssemblyFileVersion("2.0.170.1")] [assembly: AssemblyFileVersion("2.1.171.1")]
@@ -43,6 +43,8 @@ namespace TBF.TestWizard
this.cancelButton = new System.Windows.Forms.Button(); this.cancelButton = new System.Windows.Forms.Button();
this.nextButton = new System.Windows.Forms.Button(); this.nextButton = new System.Windows.Forms.Button();
this.backButton = new System.Windows.Forms.Button(); this.backButton = new System.Windows.Forms.Button();
this.uncertaintyTextBox = new System.Windows.Forms.TextBox();
this.uncertaintyLabel = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.horizSplitContainer)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.horizSplitContainer)).BeginInit();
this.horizSplitContainer.Panel1.SuspendLayout(); this.horizSplitContainer.Panel1.SuspendLayout();
this.horizSplitContainer.Panel2.SuspendLayout(); this.horizSplitContainer.Panel2.SuspendLayout();
@@ -59,6 +61,8 @@ namespace TBF.TestWizard
// //
// horizSplitContainer.Panel1 // horizSplitContainer.Panel1
// //
this.horizSplitContainer.Panel1.Controls.Add(this.uncertaintyTextBox);
this.horizSplitContainer.Panel1.Controls.Add(this.uncertaintyLabel);
this.horizSplitContainer.Panel1.Controls.Add(this.errLoPctTextBox); this.horizSplitContainer.Panel1.Controls.Add(this.errLoPctTextBox);
this.horizSplitContainer.Panel1.Controls.Add(this.errHiPctTextBox); this.horizSplitContainer.Panel1.Controls.Add(this.errHiPctTextBox);
this.horizSplitContainer.Panel1.Controls.Add(this.durationTextBox); this.horizSplitContainer.Panel1.Controls.Add(this.durationTextBox);
@@ -79,7 +83,7 @@ namespace TBF.TestWizard
// //
// errLoPctTextBox // errLoPctTextBox
// //
this.errLoPctTextBox.Location = new System.Drawing.Point(150, 85); this.errLoPctTextBox.Location = new System.Drawing.Point(150, 76);
this.errLoPctTextBox.Name = "errLoPctTextBox"; this.errLoPctTextBox.Name = "errLoPctTextBox";
this.errLoPctTextBox.Size = new System.Drawing.Size(86, 20); this.errLoPctTextBox.Size = new System.Drawing.Size(86, 20);
this.errLoPctTextBox.TabIndex = 7; this.errLoPctTextBox.TabIndex = 7;
@@ -87,7 +91,7 @@ namespace TBF.TestWizard
// //
// errHiPctTextBox // errHiPctTextBox
// //
this.errHiPctTextBox.Location = new System.Drawing.Point(150, 117); this.errHiPctTextBox.Location = new System.Drawing.Point(150, 102);
this.errHiPctTextBox.Name = "errHiPctTextBox"; this.errHiPctTextBox.Name = "errHiPctTextBox";
this.errHiPctTextBox.Size = new System.Drawing.Size(86, 20); this.errHiPctTextBox.Size = new System.Drawing.Size(86, 20);
this.errHiPctTextBox.TabIndex = 6; this.errHiPctTextBox.TabIndex = 6;
@@ -95,7 +99,7 @@ namespace TBF.TestWizard
// //
// durationTextBox // durationTextBox
// //
this.durationTextBox.Location = new System.Drawing.Point(150, 53); this.durationTextBox.Location = new System.Drawing.Point(150, 50);
this.durationTextBox.Name = "durationTextBox"; this.durationTextBox.Name = "durationTextBox";
this.durationTextBox.Size = new System.Drawing.Size(86, 20); this.durationTextBox.Size = new System.Drawing.Size(86, 20);
this.durationTextBox.TabIndex = 5; this.durationTextBox.TabIndex = 5;
@@ -112,7 +116,7 @@ namespace TBF.TestWizard
// errHiPctLabel // errHiPctLabel
// //
this.errHiPctLabel.AutoSize = true; this.errHiPctLabel.AutoSize = true;
this.errHiPctLabel.Location = new System.Drawing.Point(35, 117); this.errHiPctLabel.Location = new System.Drawing.Point(35, 105);
this.errHiPctLabel.Name = "errHiPctLabel"; this.errHiPctLabel.Name = "errHiPctLabel";
this.errHiPctLabel.Size = new System.Drawing.Size(89, 13); this.errHiPctLabel.Size = new System.Drawing.Size(89, 13);
this.errHiPctLabel.TabIndex = 3; this.errHiPctLabel.TabIndex = 3;
@@ -121,17 +125,17 @@ namespace TBF.TestWizard
// errLoPctLabel // errLoPctLabel
// //
this.errLoPctLabel.AutoSize = true; this.errLoPctLabel.AutoSize = true;
this.errLoPctLabel.Location = new System.Drawing.Point(35, 88); this.errLoPctLabel.Location = new System.Drawing.Point(35, 79);
this.errLoPctLabel.Name = "errLoPctLabel"; this.errLoPctLabel.Name = "errLoPctLabel";
this.errLoPctLabel.Size = new System.Drawing.Size(85, 13); this.errLoPctLabel.Size = new System.Drawing.Size(85, 13);
this.errLoPctLabel.TabIndex = 2; this.errLoPctLabel.TabIndex = 2;
this.errLoPctLabel.Text = "Error low limit [%]"; this.errLoPctLabel.Text = "Error low limit [%]";
// //
// timeLabel // durationLabel
// //
this.durationLabel.AutoSize = true; this.durationLabel.AutoSize = true;
this.durationLabel.Location = new System.Drawing.Point(35, 56); this.durationLabel.Location = new System.Drawing.Point(35, 53);
this.durationLabel.Name = "timeLabel"; this.durationLabel.Name = "durationLabel";
this.durationLabel.Size = new System.Drawing.Size(83, 13); this.durationLabel.Size = new System.Drawing.Size(83, 13);
this.durationLabel.TabIndex = 1; this.durationLabel.TabIndex = 1;
this.durationLabel.Text = "Test duration [s]"; this.durationLabel.Text = "Test duration [s]";
@@ -180,6 +184,22 @@ namespace TBF.TestWizard
this.backButton.UseVisualStyleBackColor = true; this.backButton.UseVisualStyleBackColor = true;
this.backButton.Click += new System.EventHandler(this.backButton_Click); this.backButton.Click += new System.EventHandler(this.backButton_Click);
// //
// uncertaintyTextBox
//
this.uncertaintyTextBox.Location = new System.Drawing.Point(150, 128);
this.uncertaintyTextBox.Name = "uncertaintyTextBox";
this.uncertaintyTextBox.Size = new System.Drawing.Size(86, 20);
this.uncertaintyTextBox.TabIndex = 9;
//
// uncertaintyLabel
//
this.uncertaintyLabel.AutoSize = true;
this.uncertaintyLabel.Location = new System.Drawing.Point(35, 131);
this.uncertaintyLabel.Name = "uncertaintyLabel";
this.uncertaintyLabel.Size = new System.Drawing.Size(78, 13);
this.uncertaintyLabel.TabIndex = 8;
this.uncertaintyLabel.Text = "Uncertainty [%]";
//
// VolumeAndErrorSelection // VolumeAndErrorSelection
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -213,5 +233,7 @@ namespace TBF.TestWizard
private System.Windows.Forms.Label errLoPctLabel; private System.Windows.Forms.Label errLoPctLabel;
private System.Windows.Forms.Label durationLabel; private System.Windows.Forms.Label durationLabel;
private System.Windows.Forms.Label volumeLabel; private System.Windows.Forms.Label volumeLabel;
private System.Windows.Forms.TextBox uncertaintyTextBox;
private System.Windows.Forms.Label uncertaintyLabel;
} }
} }
@@ -1,13 +1,7 @@
/// ///
/// Copyright (c) 2013-2015 Sensus Metering Systems /// Copyright (c) 2013-2016 Sensus Metering Systems
/// ///
using System; using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using Config.Entities; using Config.Entities;
using TBF.Resources; using TBF.Resources;
@@ -33,6 +27,7 @@ namespace TBF.TestWizard
durationLabel.Text = Strings.Duration_s; durationLabel.Text = Strings.Duration_s;
errLoPctLabel.Text = Strings.Err_limit_neg_pct_chdr; errLoPctLabel.Text = Strings.Err_limit_neg_pct_chdr;
errHiPctLabel.Text = Strings.Err_limit_pos_pct_chdr; errHiPctLabel.Text = Strings.Err_limit_pos_pct_chdr;
uncertaintyLabel.Text = Strings.Uncertainty_pct_chdr;
backButton.Text = Strings.BackBtnText; backButton.Text = Strings.BackBtnText;
nextButton.Text = Strings.FinishBtnText; nextButton.Text = Strings.FinishBtnText;
cancelButton.Text = Strings.CancelBtnText; cancelButton.Text = Strings.CancelBtnText;
@@ -54,6 +49,7 @@ namespace TBF.TestWizard
durationTextBox.Text = test.TstTime.ToString(); durationTextBox.Text = test.TstTime.ToString();
errLoPctTextBox.Text = test.ErrLimLo.ToString(); errLoPctTextBox.Text = test.ErrLimLo.ToString();
errHiPctTextBox.Text = test.ErrLimHi.ToString(); errHiPctTextBox.Text = test.ErrLimHi.ToString();
uncertaintyTextBox.Text = test.Uncertainty.ToString();
nextButton.Enabled = IsFormValid(); nextButton.Enabled = IsFormValid();
} }
@@ -64,7 +60,8 @@ namespace TBF.TestWizard
return Utils.TryParseUFloat(volumeTextBox.Text, out dummy) && return Utils.TryParseUFloat(volumeTextBox.Text, out dummy) &&
Utils.TryParseUFloat(durationTextBox.Text, out dummy) && Utils.TryParseUFloat(durationTextBox.Text, out dummy) &&
Utils.TryParseSFloat(errLoPctTextBox.Text, out dummy) && Utils.TryParseSFloat(errLoPctTextBox.Text, out dummy) &&
Utils.TryParseSFloat(errHiPctTextBox.Text, out dummy); Utils.TryParseSFloat(errHiPctTextBox.Text, out dummy) &&
Utils.TryParseUFloat(uncertaintyTextBox.Text, out dummy);
} }
void UpdateTest() void UpdateTest()
@@ -73,6 +70,7 @@ namespace TBF.TestWizard
test.TstTime = Utils.ParseUFloat(durationTextBox.Text); test.TstTime = Utils.ParseUFloat(durationTextBox.Text);
test.ErrLimLo = Utils.ParseSFloat(errLoPctTextBox.Text); test.ErrLimLo = Utils.ParseSFloat(errLoPctTextBox.Text);
test.ErrLimHi = Utils.ParseSFloat(errHiPctTextBox.Text); test.ErrLimHi = Utils.ParseSFloat(errHiPctTextBox.Text);
test.Uncertainty = Utils.ParseUFloat(uncertaintyTextBox.Text);
} }
private void backButton_Click(object sender, EventArgs e) private void backButton_Click(object sender, EventArgs e)