(1) Passed/Failed with color in the on-screen results

(2) Error of main and aux. combined watermeters calculated and can be used in results
(3) Bugfix: no zero reference exception when the list of results items is empty
This commit is contained in:
Milan Hanajik
2015-01-14 03:19:12 +01:00
parent 00b937553c
commit 5a4df5593a
4 changed files with 83 additions and 37 deletions
+5 -14
View File
@@ -1,28 +1,19 @@
- zdruzeny: vysledky na process obrazovke sa opakuju 3x
- s/n sa nedostalo do vysledkov
- oprava process obrazovky
- zdruzeny: ignorovanie pulzov z velkeho vodomera
BUGS HI – High importance BUGS HI – High importance
LO – Low importance LO – Low importance
MI – Medium importance MI – Medium importance
1. HI Po prípravnej procedure zruší nastavenie frekvencie èerpadla a nenastaví ho
2. MI Bolo by dobré ma� count down pri zavodnení napriklad ako pri skuške 2. MI Bolo by dobré ma� count down pri zavodnení napriklad ako pri skuške
3. LI text pri zavodnení volite¾ný
4. HI chýba procedúra pre reguláciu vodomerov 4. HI chýba procedúra pre reguláciu vodomerov
5. HI ak sa prekopirovala procedura tak TEST CONFIGURATION ERROR na zaèiatku skúšky
6. LI Zobrazovanie stavu èo sa deje bude treba modifikova� keï za pozrieme na obrazovku nevieme kde sa nachádzame 6. LI Zobrazovanie stavu èo sa deje bude treba modifikova� keï za pozrieme na obrazovku nevieme kde sa nachádzame
7. MI Vysledky by mali by� v poradí Nazov skúšky, Flow, Error, Vet, Vetmet, Vmeter, Tupa, Tdwa, Pupa, Pdwa 7. MI Vysledky by mali by� v poradí Nazov skúšky, Flow, Error, Vet, Vetmet, Vmeter, Tupa, Tdwa, Pupa, Pdwa
= ked dam na DN100 zdruzeny test tak na konci testu pri prepisovani vysledkov padne: = ked dam na DN100 zdruzeny test tak na konci testu pri prepisovani vysledkov padne:
pouzije sa index vodomera 2 (treti), pricom su ale iba 2 vodomery pouzije sa index vodomera 2 (treti), pricom su ale iba 2 vodomery
= vyriesit znovunacitanie procedury po zmene = vyriesit znovunacitanie procedury po zmene
@@ -346,6 +346,8 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
for (int iCmbnd = 0; iCmbnd < Program.WMsCount / 2; iCmbnd++) for (int iCmbnd = 0; iCmbnd < Program.WMsCount / 2; iCmbnd++)
{ {
tstRslt.CombinedMeters[iCmbnd].VolumeRef = tstRslt.VolumeCTV; /// [l] must be calculated before main & aux. meter error
for (int i = 2 * iCmbnd; i < 2 * iCmbnd + 2; i++) for (int i = 2 * iCmbnd; i < 2 * iCmbnd + 2; i++)
{ {
if (sensPath.RegisterReaders[i] == null || sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon) if (sensPath.RegisterReaders[i] == null || sensPath.RegisterReaders[i].PulsesPerLtr <= float.Epsilon)
@@ -357,11 +359,11 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
tstRslt.Meters[i].VolumeMeter = Convert.ToSingle(WMPulses[i]) / sensPath.RegisterReaders[i].PulsesPerLtr; tstRslt.Meters[i].VolumeMeter = Convert.ToSingle(WMPulses[i]) / sensPath.RegisterReaders[i].PulsesPerLtr;
} }
tstRslt.Meters[i].SerialNr = "wm" + (i + 1).ToString(); tstRslt.Meters[i].SerialNr = "not specified";
tstRslt.Meters[i].VolumeStart = 0; /// liter tstRslt.Meters[i].VolumeStart = 0; /// [l]
tstRslt.Meters[i].VolumeEnd = 0; /// liter tstRslt.Meters[i].VolumeEnd = 0; /// [l]
tstRslt.Meters[i].VolumeRef = tstRslt.VolumeCTV; /// liter tstRslt.Meters[i].VolumeRef = tstRslt.VolumeCTV; /// [l]
if (WMRefPulses[i] != 0) if (WMRefPulses[i] != 0)
{ {
tstRslt.Meters[i].VolumeMeter *= ((float)cBrd.EtPulses(0) / (float)WMRefPulses[i]); tstRslt.Meters[i].VolumeMeter *= ((float)cBrd.EtPulses(0) / (float)WMRefPulses[i]);
@@ -371,10 +373,9 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
tstRslt.Meters[i].PulsesMaster = WMRefPulses[i]; tstRslt.Meters[i].PulsesMaster = WMRefPulses[i];
tstRslt.Meters[i].Time = cBrd.TTime; tstRslt.Meters[i].Time = cBrd.TTime;
tstRslt.Meters[i].VolumeErrorPct = 0; /// Not used tstRslt.Meters[i].VolumeErrorPct = Formulas.ErrorFromVolumes(tstRslt.Meters[i].VolumeMeter, tstRslt.CombinedMeters[iCmbnd].VolumeRef); /// Not used
} }
tstRslt.CombinedMeters[iCmbnd].VolumeRef = tstRslt.VolumeCTV; /// liter
tstRslt.CombinedMeters[iCmbnd].VolumeMeter = tstRslt.Meters[2 * iCmbnd].VolumeMeter + tstRslt.Meters[2 * iCmbnd + 1].VolumeMeter; tstRslt.CombinedMeters[iCmbnd].VolumeMeter = tstRslt.Meters[2 * iCmbnd].VolumeMeter + tstRslt.Meters[2 * iCmbnd + 1].VolumeMeter;
tstRslt.CombinedMeters[iCmbnd].PulsesMaster = cBrd.EtPulses(0); tstRslt.CombinedMeters[iCmbnd].PulsesMaster = cBrd.EtPulses(0);
+2 -2
View File
@@ -88,8 +88,8 @@ namespace TBF.Forms
AllItems.Add(new ResultItemSpec("Error", "Error [%]", x => x.VolumeErrorPct.ToString("F2"), AllItems.Add(new ResultItemSpec("Error", "Error [%]", x => x.VolumeErrorPct.ToString("F2"),
(x, y, z) => z.VolumeErrorPct.ToString("F2"))); (x, y, z) => z.VolumeErrorPct.ToString("F2")));
AllItems.Add(new ResultItemSpec("Passed", "Result", x => (x.Passed ? Strings.Passed : Strings.Failed), AllItems.Add(new ResultItemSpec("Passed", "Result", x => (x.Passed ? Strings.Passed + "|Green" : Strings.Failed + "|Red"),
(x, y, z) => (z.Passed ? Strings.Passed : Strings.Failed))); (x, y, z) => (z.Passed ? Strings.Passed + "|Green" : Strings.Failed + "|Red")));
AllItems.Add(new ResultItemSpec("Serial Nr", "s/n", x => x.SerialNr, (x, y, z) => z.SerialNr)); AllItems.Add(new ResultItemSpec("Serial Nr", "s/n", x => x.SerialNr, (x, y, z) => z.SerialNr));
AllItems.Add(new ResultItemSpec("End state", "End state", x => x.EndState, (x, y, z) => z.EndState)); AllItems.Add(new ResultItemSpec("End state", "End state", x => x.EndState, (x, y, z) => z.EndState));
@@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Drawing; using System.Drawing;
using System.Linq; using System.Linq;
using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using log4net; using log4net;
using TBF.Resources; using TBF.Resources;
@@ -230,8 +231,9 @@ namespace TBF.Screens
/// <returns>ListView object</returns> /// <returns>ListView object</returns>
ListView GetResultsTestsAreRows(int mtr, bool combined) ListView GetResultsTestsAreRows(int mtr, bool combined)
{ {
if (tests == null) return null;
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM); IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (tests == null || items == null) return null;
ListView lview = GetListView(); ListView lview = GetListView();
// Header // Header
@@ -247,15 +249,33 @@ namespace TBF.Screens
{ {
foreach (var item in items) foreach (var item in items)
{ {
string str;
if (combined) if (combined)
{ {
lvi.SubItems.Add((item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr], str = (item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr],
testRslt.Meters[2 * mtr + 1], testRslt.Meters[2 * mtr + 1],
testRslt.CombinedMeters[mtr])); testRslt.CombinedMeters[mtr]);
} }
else else
{ {
lvi.SubItems.Add((item.Print == null) ? string.Empty : item.Print(testRslt.Meters[mtr])); str = (item.Print == null) ? string.Empty : item.Print(testRslt.Meters[mtr]);
}
string[] texts = str.Split(new char[] { '|' });
if (texts.Length == 1)
{
lvi.SubItems.Add(str);
}
else if (texts.Length == 2)
{
Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White);
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add(texts[0]);
lvi.SubItems[lvi.SubItems.Count - 1].BackColor = color;
}
else
{
lvi.SubItems.Add(string.Empty);
} }
} }
} }
@@ -272,8 +292,9 @@ namespace TBF.Screens
/// <returns>ListView object</returns> /// <returns>ListView object</returns>
ListView GetResultsTestsAreColumns(int mtr, bool combined) ListView GetResultsTestsAreColumns(int mtr, bool combined)
{ {
if (tests == null) return null;
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM); IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (tests == null || items == null) return null;
ListView lview = GetListView(); ListView lview = GetListView();
// Header // Header
@@ -289,16 +310,49 @@ namespace TBF.Screens
{ {
foreach (var tr in trs) foreach (var tr in trs)
{ {
lvi.SubItems.Add((item.PrintCombined == null || tr == null) ? string.Empty : item.PrintCombined(tr.Meters[2 * mtr], string str = (item.PrintCombined == null || tr == null) ? string.Empty : item.PrintCombined(tr.Meters[2 * mtr],
tr.Meters[2 * mtr + 1], tr.Meters[2 * mtr + 1],
tr.CombinedMeters[mtr])); tr.CombinedMeters[mtr]);
string[] texts = str.Split(new char[] { '|' });
if (texts.Length == 1)
{
lvi.SubItems.Add(str);
}
else if (texts.Length == 2)
{
Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White);
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add(texts[0]);
lvi.SubItems[lvi.SubItems.Count - 1].BackColor = color;
}
else
{
lvi.SubItems.Add(string.Empty);
}
} }
} }
else else
{ {
foreach (var tr in trs) foreach (var tr in trs)
{ {
lvi.SubItems.Add((item.Print == null || tr == null) ? string.Empty : item.Print(tr.Meters[mtr])); string str = (item.Print == null || tr == null) ? string.Empty : item.Print(tr.Meters[mtr]);
string[] texts = str.Split(new char[] { '|' });
if (texts.Length == 1)
{
lvi.SubItems.Add(str);
}
else if (texts.Length == 2)
{
Color color = texts[1].Equals("Green") ? Color.Green : (texts[1].Equals("Red") ? Color.Red : Color.White);
lvi.UseItemStyleForSubItems = false;
lvi.SubItems.Add(texts[0]);
lvi.SubItems[lvi.SubItems.Count - 1].BackColor = color;
}
else
{
lvi.SubItems.Add(string.Empty);
}
} }
} }
lview.Items.Add(lvi); lview.Items.Add(lvi);