(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

View File

@ -1,26 +1,17 @@
- 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
LO Low importance
MI Medium importance
2. MI Bolo by dobré mať count down pri zavodnení napriklad ako pri skuške
4. HI chýba procedúra pre reguláciu vodomerov
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:

View File

@ -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);

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));

View File

@ -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],
testRslt.Meters[2 * mtr + 1],
testRslt.CombinedMeters[mtr]));
str = (item.PrintCombined == null) ? string.Empty : item.PrintCombined(testRslt.Meters[2 * mtr],
testRslt.Meters[2 * mtr + 1],
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);