(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
LO – Low 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
3. LI text pri zavodnení volite¾ný
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
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:
pouzije sa index vodomera 2 (treti), pricom su ale iba 2 vodomery
= vyriesit znovunacitanie procedury po zmene
@@ -346,6 +346,8 @@ namespace TBF.BenchControl.TestMethods.CombinedMeters
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++)
{
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].SerialNr = "wm" + (i + 1).ToString();
tstRslt.Meters[i].VolumeStart = 0; /// liter
tstRslt.Meters[i].VolumeEnd = 0; /// liter
tstRslt.Meters[i].SerialNr = "not specified";
tstRslt.Meters[i].VolumeStart = 0; /// [l]
tstRslt.Meters[i].VolumeEnd = 0; /// [l]
tstRslt.Meters[i].VolumeRef = tstRslt.VolumeCTV; /// liter
tstRslt.Meters[i].VolumeRef = tstRslt.VolumeCTV; /// [l]
if (WMRefPulses[i] != 0)
{
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].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].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"),
(x, y, z) => z.VolumeErrorPct.ToString("F2")));
AllItems.Add(new ResultItemSpec("Passed", "Result", x => (x.Passed ? Strings.Passed : Strings.Failed),
(x, y, z) => (z.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 + "|Green" : Strings.Failed + "|Red")));
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));
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using log4net;
using TBF.Resources;
@@ -230,8 +231,9 @@ namespace TBF.Screens
/// <returns>ListView object</returns>
ListView GetResultsTestsAreRows(int mtr, bool combined)
{
if (tests == null) return null;
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (tests == null || items == null) return null;
ListView lview = GetListView();
// Header
@@ -247,15 +249,33 @@ namespace TBF.Screens
{
foreach (var item in items)
{
string str;
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.CombinedMeters[mtr]));
testRslt.CombinedMeters[mtr]);
}
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>
ListView GetResultsTestsAreColumns(int mtr, bool combined)
{
if (tests == null) return null;
IList<Forms.ResultItemSpec> items = (combined ? RsltItems_Screen_CombinedWM : RsltItems_Screen_SingleWM);
if (tests == null || items == null) return null;
ListView lview = GetListView();
// Header
@@ -289,16 +310,49 @@ namespace TBF.Screens
{
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.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
{
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);