- The update of the 6th watermeter data in ProcessTabPageCtrl fixed

- Valve/Pump delay evaluation modified: Delays of valves/pums that have not changed
  are not taken into account (faster when there is no valve/pump switching)
This commit is contained in:
Milan Hanajik
2014-09-17 19:17:05 +02:00
parent 15ab22362e
commit c3bfe5223b
5 changed files with 75 additions and 45 deletions
@@ -303,10 +303,18 @@ namespace TBF.BenchControl.Elde
sendCommandFlag = true; sendCommandFlag = true;
} }
public void SetValves(ulong valvesToOpen, ulong valvesToClose) /// <summary>
/// Set valves to new positions.
/// </summary>
/// <param name="valvesToOpen">'ulong' with bits of valves to open set to '1'</param>
/// <param name="valvesToClose">'ulong' with bits of valves to close set to '1'</param>
/// <returns>'ulong' with bits of valves that have changed set to '1'</returns>
public ulong SetValves(ulong valvesToOpen, ulong valvesToClose)
{ {
ulong oldRoute = route;
route = (((route ^ valvesToInvert) | valvesToOpen) & (~valvesToClose)) ^ valvesToInvert; route = (((route ^ valvesToInvert) | valvesToOpen) & (~valvesToClose)) ^ valvesToInvert;
sendCommandFlag = true; sendCommandFlag = true;
return oldRoute ^ route;
} }
/// <summary> /// <summary>
@@ -27,16 +27,33 @@ namespace TBF.BenchControl.Elde.Valve
this.VClose = (vClose == null) ? new List<IValve>() : vClose; this.VClose = (vClose == null) ? new List<IValve>() : vClose;
} }
/// Max. delay in [s] of all valves to be opened or closed /// <summary>
public int MaxDelay /// Max. delay of all valves that were opened or closed
/// </summary>
/// <param name="changed">'ulong' with bits of valves that were actually changed set ot '1'</param>
/// <returns>Delay in [s]</returns>
public int MaxDelay(ulong changed)
{ {
get int max = 0;
foreach (var vlv in VOpen)
{ {
int max = 0; /// Skip the delay evaluation and update in case the valve/pump have not changed
foreach (var vlv in VOpen) if ((vlv != null) && (vlv.Delay > max)) max = vlv.Delay; if (vlv is Valve && ((vlv as Valve).Mask & changed) == 0) continue;
foreach (var vlv in VClose) if ((vlv != null) && (vlv.Delay > max)) max = vlv.Delay; if (vlv is Pump.Pump && ((vlv as Pump.Pump).Mask & changed) == 0) continue;
return max; if (vlv is PumpWithFM.Pump && ((vlv as PumpWithFM.Pump).Mask & changed) == 0) continue;
if ((vlv != null) && (vlv.Delay > max)) max = vlv.Delay;
} }
foreach (var vlv in VClose)
{
/// Skip the delay evaluation and update in case the valve/pump have not changed
if (vlv is Valve && ((vlv as Valve).Mask & changed) == 0) continue;
if (vlv is Pump.Pump && ((vlv as Pump.Pump).Mask & changed) == 0) continue;
if (vlv is PumpWithFM.Pump && ((vlv as PumpWithFM.Pump).Mask & changed) == 0) continue;
if ((vlv != null) && (vlv.Delay > max)) max = vlv.Delay;
}
return max;
} }
} }
@@ -183,9 +200,9 @@ namespace TBF.BenchControl.Elde.Valve
/// <summary>Start this operation</summary> /// <summary>Start this operation</summary>
public void Start() public void Start()
{ {
controlBoard.SetValves(switchPoints[0].MasksOpen, switchPoints[0].MasksClose); ulong changed = controlBoard.SetValves(switchPoints[0].MasksOpen, switchPoints[0].MasksClose);
swStartTime = StateMachine.Time; swStartTime = StateMachine.Time;
maxDelayTime = switchPoints[0].MaxDelay; maxDelayTime = switchPoints[0].MaxDelay(changed);
nextIx = 1; nextIx = 1;
} }
@@ -203,11 +220,14 @@ namespace TBF.BenchControl.Elde.Valve
if (StateMachine.Time >= swStartTime + switchPoints[nextIx].TimeSec) if (StateMachine.Time >= swStartTime + switchPoints[nextIx].TimeSec)
{ {
if (switchPoints[nextIx].TimeSec + switchPoints[nextIx].MaxDelay > maxDelayTime) ulong changed = controlBoard.SetValves(switchPoints[nextIx].MasksOpen, switchPoints[nextIx].MasksClose);
int nextDelay = switchPoints[nextIx].MaxDelay(changed);
if (switchPoints[nextIx].TimeSec + nextDelay > maxDelayTime)
{ {
maxDelayTime = switchPoints[nextIx].TimeSec + switchPoints[nextIx].MaxDelay; maxDelayTime = switchPoints[nextIx].TimeSec + nextDelay;
} }
controlBoard.SetValves(switchPoints[nextIx].MasksOpen, switchPoints[nextIx].MasksClose);
nextIx++; nextIx++;
} }
+17 -17
View File
@@ -708,7 +708,7 @@
// regValveCmpntLabel // regValveCmpntLabel
// //
this.regValveCmpntLabel.AutoSize = true; this.regValveCmpntLabel.AutoSize = true;
this.regValveCmpntLabel.Location = new System.Drawing.Point(987, 58); this.regValveCmpntLabel.Location = new System.Drawing.Point(1014, 58);
this.regValveCmpntLabel.Name = "regValveCmpntLabel"; this.regValveCmpntLabel.Name = "regValveCmpntLabel";
this.regValveCmpntLabel.Size = new System.Drawing.Size(79, 13); this.regValveCmpntLabel.Size = new System.Drawing.Size(79, 13);
this.regValveCmpntLabel.TabIndex = 34; this.regValveCmpntLabel.TabIndex = 34;
@@ -717,7 +717,7 @@
// regValvePosLabel // regValvePosLabel
// //
this.regValvePosLabel.AutoSize = true; this.regValvePosLabel.AutoSize = true;
this.regValvePosLabel.Location = new System.Drawing.Point(987, 78); this.regValvePosLabel.Location = new System.Drawing.Point(1014, 78);
this.regValvePosLabel.Name = "regValvePosLabel"; this.regValvePosLabel.Name = "regValvePosLabel";
this.regValvePosLabel.Size = new System.Drawing.Size(67, 13); this.regValvePosLabel.Size = new System.Drawing.Size(67, 13);
this.regValvePosLabel.TabIndex = 35; this.regValvePosLabel.TabIndex = 35;
@@ -726,7 +726,7 @@
// label21 // label21
// //
this.label21.AutoSize = true; this.label21.AutoSize = true;
this.label21.Location = new System.Drawing.Point(898, 78); this.label21.Location = new System.Drawing.Point(925, 78);
this.label21.Name = "label21"; this.label21.Name = "label21";
this.label21.Size = new System.Drawing.Size(85, 13); this.label21.Size = new System.Drawing.Size(85, 13);
this.label21.TabIndex = 36; this.label21.TabIndex = 36;
@@ -735,7 +735,7 @@
// tDivCmpntLabel // tDivCmpntLabel
// //
this.tDivCmpntLabel.AutoSize = true; this.tDivCmpntLabel.AutoSize = true;
this.tDivCmpntLabel.Location = new System.Drawing.Point(987, 129); this.tDivCmpntLabel.Location = new System.Drawing.Point(1014, 129);
this.tDivCmpntLabel.Name = "tDivCmpntLabel"; this.tDivCmpntLabel.Name = "tDivCmpntLabel";
this.tDivCmpntLabel.Size = new System.Drawing.Size(56, 13); this.tDivCmpntLabel.Size = new System.Drawing.Size(56, 13);
this.tDivCmpntLabel.TabIndex = 39; this.tDivCmpntLabel.TabIndex = 39;
@@ -744,7 +744,7 @@
// tDivLabel // tDivLabel
// //
this.tDivLabel.AutoSize = true; this.tDivLabel.AutoSize = true;
this.tDivLabel.Location = new System.Drawing.Point(987, 148); this.tDivLabel.Location = new System.Drawing.Point(1014, 148);
this.tDivLabel.Name = "tDivLabel"; this.tDivLabel.Name = "tDivLabel";
this.tDivLabel.Size = new System.Drawing.Size(26, 13); this.tDivLabel.Size = new System.Drawing.Size(26, 13);
this.tDivLabel.TabIndex = 38; this.tDivLabel.TabIndex = 38;
@@ -753,7 +753,7 @@
// label24 // label24
// //
this.label24.AutoSize = true; this.label24.AutoSize = true;
this.label24.Location = new System.Drawing.Point(929, 148); this.label24.Location = new System.Drawing.Point(956, 148);
this.label24.Name = "label24"; this.label24.Name = "label24";
this.label24.Size = new System.Drawing.Size(54, 13); this.label24.Size = new System.Drawing.Size(54, 13);
this.label24.TabIndex = 37; this.label24.TabIndex = 37;
@@ -762,7 +762,7 @@
// scaleCmpntLabel // scaleCmpntLabel
// //
this.scaleCmpntLabel.AutoSize = true; this.scaleCmpntLabel.AutoSize = true;
this.scaleCmpntLabel.Location = new System.Drawing.Point(987, 209); this.scaleCmpntLabel.Location = new System.Drawing.Point(1014, 209);
this.scaleCmpntLabel.Name = "scaleCmpntLabel"; this.scaleCmpntLabel.Name = "scaleCmpntLabel";
this.scaleCmpntLabel.Size = new System.Drawing.Size(62, 13); this.scaleCmpntLabel.Size = new System.Drawing.Size(62, 13);
this.scaleCmpntLabel.TabIndex = 40; this.scaleCmpntLabel.TabIndex = 40;
@@ -771,7 +771,7 @@
// label22 // label22
// //
this.label22.AutoSize = true; this.label22.AutoSize = true;
this.label22.Location = new System.Drawing.Point(927, 230); this.label22.Location = new System.Drawing.Point(954, 230);
this.label22.Name = "label22"; this.label22.Name = "label22";
this.label22.Size = new System.Drawing.Size(56, 13); this.label22.Size = new System.Drawing.Size(56, 13);
this.label22.TabIndex = 41; this.label22.TabIndex = 41;
@@ -780,7 +780,7 @@
// massLabel // massLabel
// //
this.massLabel.AutoSize = true; this.massLabel.AutoSize = true;
this.massLabel.Location = new System.Drawing.Point(987, 230); this.massLabel.Location = new System.Drawing.Point(1014, 230);
this.massLabel.Name = "massLabel"; this.massLabel.Name = "massLabel";
this.massLabel.Size = new System.Drawing.Size(31, 13); this.massLabel.Size = new System.Drawing.Size(31, 13);
this.massLabel.TabIndex = 42; this.massLabel.TabIndex = 42;
@@ -789,7 +789,7 @@
// label23 // label23
// //
this.label23.AutoSize = true; this.label23.AutoSize = true;
this.label23.Location = new System.Drawing.Point(907, 250); this.label23.Location = new System.Drawing.Point(934, 250);
this.label23.Name = "label23"; this.label23.Name = "label23";
this.label23.Size = new System.Drawing.Size(76, 13); this.label23.Size = new System.Drawing.Size(76, 13);
this.label23.TabIndex = 43; this.label23.TabIndex = 43;
@@ -798,7 +798,7 @@
// massDiffLabel // massDiffLabel
// //
this.massDiffLabel.AutoSize = true; this.massDiffLabel.AutoSize = true;
this.massDiffLabel.Location = new System.Drawing.Point(987, 250); this.massDiffLabel.Location = new System.Drawing.Point(1014, 250);
this.massDiffLabel.Name = "massDiffLabel"; this.massDiffLabel.Name = "massDiffLabel";
this.massDiffLabel.Size = new System.Drawing.Size(47, 13); this.massDiffLabel.Size = new System.Drawing.Size(47, 13);
this.massDiffLabel.TabIndex = 44; this.massDiffLabel.TabIndex = 44;
@@ -825,7 +825,7 @@
// label26 // label26
// //
this.label26.AutoSize = true; this.label26.AutoSize = true;
this.label26.Location = new System.Drawing.Point(927, 271); this.label26.Location = new System.Drawing.Point(954, 271);
this.label26.Name = "label26"; this.label26.Name = "label26";
this.label26.Size = new System.Drawing.Size(56, 13); this.label26.Size = new System.Drawing.Size(56, 13);
this.label26.TabIndex = 47; this.label26.TabIndex = 47;
@@ -834,7 +834,7 @@
// volumeCtvLabel // volumeCtvLabel
// //
this.volumeCtvLabel.AutoSize = true; this.volumeCtvLabel.AutoSize = true;
this.volumeCtvLabel.Location = new System.Drawing.Point(987, 271); this.volumeCtvLabel.Location = new System.Drawing.Point(1014, 271);
this.volumeCtvLabel.Name = "volumeCtvLabel"; this.volumeCtvLabel.Name = "volumeCtvLabel";
this.volumeCtvLabel.Size = new System.Drawing.Size(57, 13); this.volumeCtvLabel.Size = new System.Drawing.Size(57, 13);
this.volumeCtvLabel.TabIndex = 48; this.volumeCtvLabel.TabIndex = 48;
@@ -843,7 +843,7 @@
// label27 // label27
// //
this.label27.AutoSize = true; this.label27.AutoSize = true;
this.label27.Location = new System.Drawing.Point(912, 293); this.label27.Location = new System.Drawing.Point(939, 293);
this.label27.Name = "label27"; this.label27.Name = "label27";
this.label27.Size = new System.Drawing.Size(71, 13); this.label27.Size = new System.Drawing.Size(71, 13);
this.label27.TabIndex = 49; this.label27.TabIndex = 49;
@@ -852,7 +852,7 @@
// refErrorLabel // refErrorLabel
// //
this.refErrorLabel.AutoSize = true; this.refErrorLabel.AutoSize = true;
this.refErrorLabel.Location = new System.Drawing.Point(987, 293); this.refErrorLabel.Location = new System.Drawing.Point(1014, 293);
this.refErrorLabel.Name = "refErrorLabel"; this.refErrorLabel.Name = "refErrorLabel";
this.refErrorLabel.Size = new System.Drawing.Size(41, 13); this.refErrorLabel.Size = new System.Drawing.Size(41, 13);
this.refErrorLabel.TabIndex = 50; this.refErrorLabel.TabIndex = 50;
@@ -1005,7 +1005,7 @@
// reservoirPictureBox // reservoirPictureBox
// //
this.reservoirPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("reservoirPictureBox.Image"))); this.reservoirPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("reservoirPictureBox.Image")));
this.reservoirPictureBox.Location = new System.Drawing.Point(922, 386); this.reservoirPictureBox.Location = new System.Drawing.Point(949, 386);
this.reservoirPictureBox.Name = "reservoirPictureBox"; this.reservoirPictureBox.Name = "reservoirPictureBox";
this.reservoirPictureBox.Size = new System.Drawing.Size(142, 109); this.reservoirPictureBox.Size = new System.Drawing.Size(142, 109);
this.reservoirPictureBox.TabIndex = 67; this.reservoirPictureBox.TabIndex = 67;
@@ -1504,7 +1504,7 @@
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238))); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
this.Name = "ProcessTabPageCtrl"; this.Name = "ProcessTabPageCtrl";
this.Size = new System.Drawing.Size(1071, 498); this.Size = new System.Drawing.Size(1097, 498);
this.Load += new System.EventHandler(this.ProcessTabPageCtrl_Load); this.Load += new System.EventHandler(this.ProcessTabPageCtrl_Load);
this.groupBox1.ResumeLayout(false); this.groupBox1.ResumeLayout(false);
this.groupBox1.PerformLayout(); this.groupBox1.PerformLayout();
@@ -275,10 +275,10 @@ namespace TBF.Screens
if (Program.WMsCount >= 6) if (Program.WMsCount >= 6)
{ {
pulses5Label.Text = args.WmPulses[5].ToString(); pulses6Label.Text = args.WmPulses[5].ToString();
refPulses5Label.Text = args.WmRefPulses[5].ToString(); refPulses6Label.Text = args.WmRefPulses[5].ToString();
volume5Label.Text = args.WmVolume[5].ToString(); volume6Label.Text = args.WmVolume[5].ToString();
error5Label.Text = args.WmErrPct[5].ToString(); error6Label.Text = args.WmErrPct[5].ToString();
} }
tInLabel.Text = args.Tin.ToString(); tInLabel.Text = args.Tin.ToString();
@@ -339,10 +339,10 @@ namespace TBF.Screens
if (Program.WMsCount >= 6) if (Program.WMsCount >= 6)
{ {
pulses5Label.Text = tRes.Meters[5].PulsesMeter.ToString("F0"); pulses6Label.Text = tRes.Meters[5].PulsesMeter.ToString("F0");
refPulses5Label.Text = tRes.Meters[5].PulsesMaster.ToString("F0"); refPulses6Label.Text = tRes.Meters[5].PulsesMaster.ToString("F0");
volume5Label.Text = tRes.Meters[5].VolumeMeter.ToString("F2"); volume6Label.Text = tRes.Meters[5].VolumeMeter.ToString("F2");
error5Label.Text = tRes.Meters[5].VolumeErrorPct.ToString("F2"); error6Label.Text = tRes.Meters[5].VolumeErrorPct.ToString("F2");
} }
tInLabel.Text = tRes.TempInAvrg.ToString("F2"); tInLabel.Text = tRes.TempInAvrg.ToString("F2");
@@ -366,6 +366,8 @@ namespace TBF.Screens
} }
else if (tRes.MetersKind == Entities.MetersKind.Combined) else if (tRes.MetersKind == Entities.MetersKind.Combined)
{ {
/// TODO: Rewrite for an arbitrary number of watermeters
///
pulses1Label.Text = tRes.Meters[0].PulsesMeter.ToString("F0"); pulses1Label.Text = tRes.Meters[0].PulsesMeter.ToString("F0");
pulses2Label.Text = tRes.Meters[1].PulsesMeter.ToString("F0"); pulses2Label.Text = tRes.Meters[1].PulsesMeter.ToString("F0");
pulses3Label.Text = tRes.CombinedMeters[0].PulsesMeter.ToString("F0"); pulses3Label.Text = tRes.CombinedMeters[0].PulsesMeter.ToString("F0");
@@ -121,7 +121,7 @@
<data name="reservoirPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="reservoirPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAAI4AAABtCAYAAAB3LVkkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAAI4AAABtCAYAAAB3LVkkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAEuSURBVHhe7dIxDoAwEAQx/v/pQFJQBaRM7ZN8zbZzPTcg YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAEuSURBVHhe7dIxDoAwEAQx/v/pQFJQBaRM7ZN8zbZzPTcg
mG/AAeGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIc mG/AAeGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIc
EuGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQ EuGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQ
CIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQCIdE CIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQCIdE
@@ -132,7 +132,7 @@
<data name="pumpPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="pumpPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAALTSURBVFhH7Ze9ajJBFIZXjZAiCQT8gYC1vSnUQnIBglhq YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAALTSURBVFhH7Ze9ajJBFIZXjZAiCQT8gYC1vSnUQnIBglhq
EEm0sPAOcgGWgp2kSWGV0jIkvSZgk4hNGiF3kCrdZN/Vs3N29xiV7PDxQYoHdp0z7zw4u8sca7lcqt8Q EEm0sPAOcgGWgp2kSWGV0jIkvSZgk4hNGiF3kCrdZN/Vs3N29xiV7PDxQYoHdp0z7zw4u8sca7lcqt8Q
iUSUZVkBpNp92FssnU47cIlisagajYYLHzs4OHDqR6ORmLeJncQmk4mq1+ueBXu93k5UKhV3TjKZVN1u iUSUZVkBpNp92FssnU47cIlisagajYYLHzs4OHDqR6ORmLeJncQmk4mq1+ueBXu93k5UKhV3TjKZVN1u
V1zDz1axQqHgESIkCQkuxlksFuJ6xI9i2WxWDAWShMQmMWyxtCYhig2HQ1UqldyQ01PL3gJL3dzoYElC V1zDz1axQqHgESIkCQkuxlksFuJ6xI9i2WxWDAWShMQmMWyxtCYhig2HQ1UqldyQ01PL3gJL3dzoYElC
@@ -150,7 +150,7 @@
<data name="watermeterPictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="watermeterPictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW
N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv
sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay
maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY
@@ -165,7 +165,7 @@
<data name="watermeterPictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="watermeterPictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW
N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv
sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay
maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY
@@ -180,7 +180,7 @@
<data name="watermeterPictureBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="watermeterPictureBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr4AAA6+AepCscAAAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW
N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv
sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay
maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY
@@ -195,7 +195,7 @@
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW
N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv
sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay
maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY
@@ -210,7 +210,7 @@
<data name="pictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="pictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADr0AAA69AUf7kK0AAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAIfSURBVFhH7dexS2pRHAfw0wukyUChpUkRoqFVF5fGApHW
N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv N8TL1cE50L9AHBoFHaPVNWrQFh1cHk+CBwqXtzwIgmqqll/fc+65eo/3p2Xee23owMfi/s79/b54L3Wv
sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay sCyLPqrZbJIQwhdcf7fvYNO4/m6fCLYG20vapF6vR6PRiJ0jfSJYBGhJ9yAokUhQvV5nZ60omEP2y1Ay
maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY maRisWjMWihYqVRCIz+DOdpg33udTkfNwu/eG3O2H8A19ksa1kHNkx9VkKnf8we4hn4awTjYpT74VYQY