ProcessTabPageCtrl bug fix, Common.Formulas improvement, clean-up, ver. 3.1.1867
This commit is contained in:
parent
08a08282b5
commit
8d47659660
@ -213,9 +213,9 @@ namespace Common
|
||||
/// </summary>
|
||||
public static double ErrorFromVolumes(double measuredVolume, double trueVolume)
|
||||
{
|
||||
if (trueVolume <= float.Epsilon)
|
||||
if (Math.Abs(trueVolume) <= float.Epsilon)
|
||||
{
|
||||
if (measuredVolume <= float.Epsilon)
|
||||
if (Math.Abs(measuredVolume) <= float.Epsilon)
|
||||
{
|
||||
log.WarnFormat("ErrorFromVolumes({0},{1}) returns {2}", measuredVolume, trueVolume, -100.0);
|
||||
return -100.0;
|
||||
|
||||
@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
|
||||
// Build Number
|
||||
// Revision
|
||||
//
|
||||
[assembly: AssemblyVersion("3.1.1864.0")]
|
||||
[assembly: AssemblyFileVersion("3.1.1864.0")]
|
||||
[assembly: AssemblyVersion("3.1.1867.0")]
|
||||
[assembly: AssemblyFileVersion("3.1.1867.0")]
|
||||
|
||||
@ -2372,12 +2372,6 @@
|
||||
<Compile Include="UI\Process\ProcessTabPageCtrl6.designer.cs">
|
||||
<DependentUpon>ProcessTabPageCtrl6.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\Process\ProcessTabPageExCtrl.cs">
|
||||
<SubType>UserControl</SubType>
|
||||
</Compile>
|
||||
<Compile Include="UI\Process\ProcessTabPageExCtrl.designer.cs">
|
||||
<DependentUpon>ProcessTabPageExCtrl.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="UI\ResultsMI\DeleteFromOracleForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@ -3268,9 +3262,6 @@
|
||||
<EmbeddedResource Include="UI\Process\ProcessTabPageCtrl6.resx">
|
||||
<DependentUpon>ProcessTabPageCtrl6.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UI\Process\ProcessTabPageExCtrl.resx">
|
||||
<DependentUpon>ProcessTabPageExCtrl.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="UI\ResultsMI\DeleteFromOracleForm.resx">
|
||||
<DependentUpon>DeleteFromOracleForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
||||
@ -1,15 +1,17 @@
|
||||
///
|
||||
/// Copyright (c) 2021 Sensus Slovensko a.s.
|
||||
/// Copyright (c) 2021-2022 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig;
|
||||
using TBF.UiBridge;
|
||||
using SchematicDrawing;
|
||||
using TBF.Resources;
|
||||
using TBF.Rig.Sequences;
|
||||
using TBF.UiBridge;
|
||||
|
||||
namespace TBF.UI.Process
|
||||
{
|
||||
@ -557,39 +559,58 @@ namespace TBF.UI.Process
|
||||
|
||||
void OnProcessDataChanged(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
if (processListViewEx.Items.Count != TBF.Rig.Sequences.ProcessData.RegisterReaders.Length)
|
||||
if (ProcessData.RegisterReaders == null || ProcessData.BatchRslts == null ||
|
||||
ProcessData.BatchRslts.Batch == null || ProcessData.BatchRslts.Batch.WaterMeters == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int wmsCount = Math.Min(ProcessData.RegisterReaders.Length, ProcessData.BatchRslts.Batch.WaterMeters.Count);
|
||||
|
||||
if (processListViewEx.Items.Count != wmsCount)
|
||||
{
|
||||
/// Invoked only when the number of water meters or register readers changes
|
||||
processListViewEx.Items.Clear();
|
||||
for (int i = 1; i <= TBF.Rig.Sequences.ProcessData.RegisterReaders.Length; i++)
|
||||
for (int i = 0; i < wmsCount; i++)
|
||||
{
|
||||
var lvi = new ListViewItem(i.ToString());
|
||||
for (Column c = Column.Error; c < Column.Count; c++) lvi.SubItems.Add(".");
|
||||
if (TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters.Count >= i)
|
||||
var lvi = new ListViewItem((i+1).ToString()); /// Column 0
|
||||
for (Column c = (Column)1; c < Column.Count; c++) /// Column 1 .. Column.Count-1
|
||||
{
|
||||
lvi.Tag = TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters[i - 1];
|
||||
lvi.SubItems.Add(".");
|
||||
}
|
||||
lvi.Tag = ProcessData.BatchRslts.Batch.WaterMeters[i];
|
||||
processListViewEx.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 1; i <= TBF.Rig.Sequences.ProcessData.RegisterReaders.Length; i++)
|
||||
TBF.Rig.ControlBoard.IControlBoard cBrd = TBF.Rig.StateMachine.ControlBoard;
|
||||
if (cBrd != null && cBrd.Devices != null && cBrd.Devices.FlowMeter != null)
|
||||
{
|
||||
if (TBF.Rig.Sequences.ProcessData.RegisterReaders[i - 1] != null)
|
||||
double refVolume = cBrd.RefPulses * cBrd.Devices.FlowMeter.LtrPerPulse;
|
||||
for (int i = 0; i < wmsCount; i++)
|
||||
{
|
||||
var lvi = processListViewEx.Items[i - 1];
|
||||
var rr = TBF.Rig.Sequences.ProcessData.RegisterReaders[i - 1];
|
||||
var rr = ProcessData.RegisterReaders[i];
|
||||
var lvi = processListViewEx.Items[i];
|
||||
|
||||
if (rr != null)
|
||||
if (rr != null && Math.Abs(rr.WMVolume) > float.Epsilon && refVolume > float.Epsilon)
|
||||
{
|
||||
/// Update a list view item
|
||||
//lvi.SubItems[(int)Column.Error].Text = Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefVolume).ToString("F1");
|
||||
lvi.SubItems[(int)Column.Error].Text = Formulas.ErrorFromVolumes(rr.WMVolume, refVolume).ToString("F1");
|
||||
lvi.SubItems[(int)Column.Volume].Text = rr.WMVolume.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Pulses].Text = rr.WMPulses.ToString();
|
||||
lvi.SubItems[(int)Column.RefPulses].Text = rr.WMRefPulses.ToString();
|
||||
if (rr is TBF.Rig.RegisterReaders.S640Stream.S640Stream)
|
||||
{
|
||||
lvi.SubItems[(int)Column.SerialNr].Text = (rr as TBF.Rig.RegisterReaders.S640Stream.S640Stream).PcbNumber.ToString();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lvi.SubItems[(int)Column.Error].Text = string.Empty;
|
||||
lvi.SubItems[(int)Column.Volume].Text = string.Empty;
|
||||
lvi.SubItems[(int)Column.Pulses].Text = string.Empty;
|
||||
lvi.SubItems[(int)Column.RefPulses].Text = string.Empty;
|
||||
}
|
||||
|
||||
if (rr is TBF.Rig.RegisterReaders.S640Stream.S640Stream)
|
||||
{
|
||||
lvi.SubItems[(int)Column.SerialNr].Text = (rr as TBF.Rig.RegisterReaders.S640Stream.S640Stream).PcbNumber.ToString();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -597,40 +618,48 @@ namespace TBF.UI.Process
|
||||
|
||||
void OnTestCompleted(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
if (processListViewEx.Items.Count != TBF.Rig.Sequences.ProcessData.RegisterReaders.Length)
|
||||
if (ProcessData.RegisterReaders == null || ProcessData.BatchRslts == null ||
|
||||
ProcessData.BatchRslts.Batch == null || ProcessData.BatchRslts.Batch.WaterMeters == null)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int wmsCount = Math.Min(ProcessData.RegisterReaders.Length, ProcessData.BatchRslts.Batch.WaterMeters.Count);
|
||||
|
||||
if (processListViewEx.Items.Count != wmsCount)
|
||||
{
|
||||
/// Invoked only when the number of water meters or register readers changes
|
||||
processListViewEx.Items.Clear();
|
||||
for (int i = 1; i <= TBF.Rig.Sequences.ProcessData.RegisterReaders.Length; i++)
|
||||
for (int i = 0; i < wmsCount; i++)
|
||||
{
|
||||
var lvi = new ListViewItem(i.ToString());
|
||||
for (Column c = Column.Error; c < Column.Count; c++) lvi.SubItems.Add(".");
|
||||
if (TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters.Count >= i)
|
||||
var lvi = new ListViewItem((i + 1).ToString()); /// Column 0
|
||||
for (Column c = (Column)1; c < Column.Count; c++) /// Column 1 .. Column.Count-1
|
||||
{
|
||||
lvi.Tag = TBF.Rig.Sequences.ProcessData.BatchRslts.Batch.WaterMeters[i - 1];
|
||||
lvi.SubItems.Add(".");
|
||||
}
|
||||
lvi.Tag = ProcessData.BatchRslts.Batch.WaterMeters[i];
|
||||
processListViewEx.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
|
||||
if (args.TestRslt != null)
|
||||
{
|
||||
foreach (var wm in args.TestRslt.Batch.WaterMeters)
|
||||
for (int i = 0; i < wmsCount; i++)
|
||||
{
|
||||
if (wm.WMPosition > 0 && wm.WMPosition <= processListViewEx.Items.Count)
|
||||
var wm = processListViewEx.Items[i].Tag as Results.Entities.WaterMeter;
|
||||
if (wm != null && !wm.Disabled)
|
||||
{
|
||||
foreach (var mtr in wm.MeterTestRslts)
|
||||
Results.Entities.MeterTestRslt mtr = wm.MeterTestRslts.FirstOrDefault(x => x.TestRslt == args.TestRslt);
|
||||
if (mtr != null)
|
||||
{
|
||||
if (mtr != null && mtr.TestRslt == args.TestRslt)
|
||||
{
|
||||
var lvi = processListViewEx.Items[wm.WMPosition - 1];
|
||||
var lvi = processListViewEx.Items[i];
|
||||
|
||||
/// Update a list view item
|
||||
lvi.SubItems[(int)Column.Error].Text = mtr.Error.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Volume].Text = mtr.VolumeMeter.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Pulses].Text = mtr.PulsesMeter.ToString();
|
||||
lvi.SubItems[(int)Column.RefPulses].Text = mtr.PulsesMaster.ToString();
|
||||
lvi.SubItems[(int)Column.SerialNr].Text = mtr.SerialNr();
|
||||
}
|
||||
/// Update a list view item
|
||||
lvi.SubItems[(int)Column.Error].Text = mtr.Error.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Volume].Text = mtr.VolumeMeter.ToString("F1");
|
||||
lvi.SubItems[(int)Column.Pulses].Text = mtr.PulsesMeter.ToString();
|
||||
lvi.SubItems[(int)Column.RefPulses].Text = mtr.PulsesMaster.ToString();
|
||||
lvi.SubItems[(int)Column.SerialNr].Text = mtr.SerialNr();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
913
TBF/UI/Process/ProcessTabPageExCtrl.Designer.cs
generated
913
TBF/UI/Process/ProcessTabPageExCtrl.Designer.cs
generated
@ -1,913 +0,0 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
///
|
||||
namespace TBF.UI.Process
|
||||
{
|
||||
partial class ProcessTabPageExCtrl
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Component Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ProcessTabPageExCtrl));
|
||||
this.splitContainer1 = new System.Windows.Forms.SplitContainer();
|
||||
this.tLoCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.tLoDataLabel = new System.Windows.Forms.Label();
|
||||
this.tLoLabel = new System.Windows.Forms.Label();
|
||||
this.tHiCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.tHiDataLabel = new System.Windows.Forms.Label();
|
||||
this.tHiLabel = new System.Windows.Forms.Label();
|
||||
this.pumpPctTextBox = new System.Windows.Forms.TextBox();
|
||||
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||
this.flowMeterPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.watermeterPictureBox4 = new System.Windows.Forms.PictureBox();
|
||||
this.watermeterPictureBox3 = new System.Windows.Forms.PictureBox();
|
||||
this.watermeterPictureBox2 = new System.Windows.Forms.PictureBox();
|
||||
this.pumpPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.reservoirPictureBox = new System.Windows.Forms.PictureBox();
|
||||
this.airHumiLabel = new System.Windows.Forms.Label();
|
||||
this.airPressLabel = new System.Windows.Forms.Label();
|
||||
this.airTempLabel = new System.Windows.Forms.Label();
|
||||
this.label34 = new System.Windows.Forms.Label();
|
||||
this.label33 = new System.Windows.Forms.Label();
|
||||
this.label32 = new System.Windows.Forms.Label();
|
||||
this.estmtdTimeLabel = new System.Windows.Forms.Label();
|
||||
this.targetRefCountLabel = new System.Windows.Forms.Label();
|
||||
this.label31 = new System.Windows.Forms.Label();
|
||||
this.targetVolumeLabel = new System.Windows.Forms.Label();
|
||||
this.targetFlowHighLabel = new System.Windows.Forms.Label();
|
||||
this.targetFlowLowLabel = new System.Windows.Forms.Label();
|
||||
this.label30 = new System.Windows.Forms.Label();
|
||||
this.label20 = new System.Windows.Forms.Label();
|
||||
this.label29 = new System.Windows.Forms.Label();
|
||||
this.label28 = new System.Windows.Forms.Label();
|
||||
this.refErrorLabel = new System.Windows.Forms.Label();
|
||||
this.label27 = new System.Windows.Forms.Label();
|
||||
this.volumeCtvLabel = new System.Windows.Forms.Label();
|
||||
this.label26 = new System.Windows.Forms.Label();
|
||||
this.refVolumeLabel = new System.Windows.Forms.Label();
|
||||
this.label25 = new System.Windows.Forms.Label();
|
||||
this.massDiffLabel = new System.Windows.Forms.Label();
|
||||
this.label23 = new System.Windows.Forms.Label();
|
||||
this.massLabel = new System.Windows.Forms.Label();
|
||||
this.label22 = new System.Windows.Forms.Label();
|
||||
this.scaleCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.tDivCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.tDivLabel = new System.Windows.Forms.Label();
|
||||
this.label24 = new System.Windows.Forms.Label();
|
||||
this.label21 = new System.Windows.Forms.Label();
|
||||
this.regValvePosLabel = new System.Windows.Forms.Label();
|
||||
this.regValveCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.refFlowCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.refPulsesLabel = new System.Windows.Forms.Label();
|
||||
this.label19 = new System.Windows.Forms.Label();
|
||||
this.refFreqLabel = new System.Windows.Forms.Label();
|
||||
this.label16 = new System.Windows.Forms.Label();
|
||||
this.refFlowLabel = new System.Windows.Forms.Label();
|
||||
this.prInCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.prOutCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.tOutCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.tInCmpntLabel = new System.Windows.Forms.Label();
|
||||
this.label15 = new System.Windows.Forms.Label();
|
||||
this.prOutLabel = new System.Windows.Forms.Label();
|
||||
this.tOutLabel = new System.Windows.Forms.Label();
|
||||
this.label17 = new System.Windows.Forms.Label();
|
||||
this.label18 = new System.Windows.Forms.Label();
|
||||
this.prInLabel = new System.Windows.Forms.Label();
|
||||
this.tInLabel = new System.Windows.Forms.Label();
|
||||
this.label14 = new System.Windows.Forms.Label();
|
||||
this.label13 = new System.Windows.Forms.Label();
|
||||
this.metersListView = new System.Windows.Forms.ListView();
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
|
||||
this.splitContainer1.Panel1.SuspendLayout();
|
||||
this.splitContainer1.Panel2.SuspendLayout();
|
||||
this.splitContainer1.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.flowMeterPictureBox)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.watermeterPictureBox4)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.watermeterPictureBox3)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.watermeterPictureBox2)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pumpPictureBox)).BeginInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.reservoirPictureBox)).BeginInit();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// splitContainer1
|
||||
//
|
||||
this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1;
|
||||
this.splitContainer1.IsSplitterFixed = true;
|
||||
this.splitContainer1.Location = new System.Drawing.Point(0, 0);
|
||||
this.splitContainer1.Name = "splitContainer1";
|
||||
this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal;
|
||||
//
|
||||
// splitContainer1.Panel1
|
||||
//
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tLoCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tLoDataLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tLoLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tHiCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tHiDataLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tHiLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.pumpPctTextBox);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.pictureBox1);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.flowMeterPictureBox);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.watermeterPictureBox4);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.watermeterPictureBox3);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.watermeterPictureBox2);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.pumpPictureBox);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.reservoirPictureBox);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.airHumiLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.airPressLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.airTempLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label34);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label33);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label32);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.estmtdTimeLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.targetRefCountLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label31);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.targetVolumeLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.targetFlowHighLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.targetFlowLowLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label30);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label20);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label29);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label28);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.refErrorLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label27);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.volumeCtvLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label26);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.refVolumeLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label25);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.massDiffLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label23);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.massLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label22);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.scaleCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tDivCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tDivLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label24);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label21);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.regValvePosLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.regValveCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.refFlowCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.refPulsesLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label19);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.refFreqLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label16);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.refFlowLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.prInCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.prOutCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tOutCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tInCmpntLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label15);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.prOutLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tOutLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label17);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label18);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.prInLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.tInLabel);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label14);
|
||||
this.splitContainer1.Panel1.Controls.Add(this.label13);
|
||||
//
|
||||
// splitContainer1.Panel2
|
||||
//
|
||||
this.splitContainer1.Panel2.Controls.Add(this.metersListView);
|
||||
this.splitContainer1.Size = new System.Drawing.Size(1100, 800);
|
||||
this.splitContainer1.SplitterDistance = 450;
|
||||
this.splitContainer1.SplitterWidth = 1;
|
||||
this.splitContainer1.TabIndex = 182;
|
||||
//
|
||||
// tLoCmpntLabel
|
||||
//
|
||||
this.tLoCmpntLabel.AutoSize = true;
|
||||
this.tLoCmpntLabel.Location = new System.Drawing.Point(367, 218);
|
||||
this.tLoCmpntLabel.Name = "tLoCmpntLabel";
|
||||
this.tLoCmpntLabel.Size = new System.Drawing.Size(52, 13);
|
||||
this.tLoCmpntLabel.TabIndex = 250;
|
||||
this.tLoCmpntLabel.Text = "tLoCmpnt";
|
||||
this.tLoCmpntLabel.Visible = false;
|
||||
//
|
||||
// tLoDataLabel
|
||||
//
|
||||
this.tLoDataLabel.AutoSize = true;
|
||||
this.tLoDataLabel.Location = new System.Drawing.Point(367, 234);
|
||||
this.tLoDataLabel.Name = "tLoDataLabel";
|
||||
this.tLoDataLabel.Size = new System.Drawing.Size(45, 13);
|
||||
this.tLoDataLabel.TabIndex = 249;
|
||||
this.tLoDataLabel.Text = "tLoData";
|
||||
this.tLoDataLabel.Visible = false;
|
||||
//
|
||||
// tLoLabel
|
||||
//
|
||||
this.tLoLabel.AutoSize = true;
|
||||
this.tLoLabel.Location = new System.Drawing.Point(306, 234);
|
||||
this.tLoLabel.Name = "tLoLabel";
|
||||
this.tLoLabel.Size = new System.Drawing.Size(48, 13);
|
||||
this.tLoLabel.TabIndex = 248;
|
||||
this.tLoLabel.Text = "T lo [°C]:";
|
||||
this.tLoLabel.Visible = false;
|
||||
//
|
||||
// tHiCmpntLabel
|
||||
//
|
||||
this.tHiCmpntLabel.AutoSize = true;
|
||||
this.tHiCmpntLabel.Location = new System.Drawing.Point(367, 178);
|
||||
this.tHiCmpntLabel.Name = "tHiCmpntLabel";
|
||||
this.tHiCmpntLabel.Size = new System.Drawing.Size(50, 13);
|
||||
this.tHiCmpntLabel.TabIndex = 247;
|
||||
this.tHiCmpntLabel.Text = "tHiCmpnt";
|
||||
this.tHiCmpntLabel.Visible = false;
|
||||
//
|
||||
// tHiDataLabel
|
||||
//
|
||||
this.tHiDataLabel.AutoSize = true;
|
||||
this.tHiDataLabel.Location = new System.Drawing.Point(367, 194);
|
||||
this.tHiDataLabel.Name = "tHiDataLabel";
|
||||
this.tHiDataLabel.Size = new System.Drawing.Size(43, 13);
|
||||
this.tHiDataLabel.TabIndex = 246;
|
||||
this.tHiDataLabel.Text = "tHiData";
|
||||
this.tHiDataLabel.Visible = false;
|
||||
//
|
||||
// tHiLabel
|
||||
//
|
||||
this.tHiLabel.AutoSize = true;
|
||||
this.tHiLabel.Location = new System.Drawing.Point(306, 194);
|
||||
this.tHiLabel.Name = "tHiLabel";
|
||||
this.tHiLabel.Size = new System.Drawing.Size(48, 13);
|
||||
this.tHiLabel.TabIndex = 245;
|
||||
this.tHiLabel.Text = "T hi [°C]:";
|
||||
this.tHiLabel.Visible = false;
|
||||
//
|
||||
// pumpPctTextBox
|
||||
//
|
||||
this.pumpPctTextBox.Location = new System.Drawing.Point(797, 372);
|
||||
this.pumpPctTextBox.Name = "pumpPctTextBox";
|
||||
this.pumpPctTextBox.Size = new System.Drawing.Size(42, 20);
|
||||
this.pumpPctTextBox.TabIndex = 244;
|
||||
//
|
||||
// pictureBox1
|
||||
//
|
||||
this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image")));
|
||||
this.pictureBox1.Location = new System.Drawing.Point(884, 94);
|
||||
this.pictureBox1.Name = "pictureBox1";
|
||||
this.pictureBox1.Size = new System.Drawing.Size(38, 35);
|
||||
this.pictureBox1.TabIndex = 240;
|
||||
this.pictureBox1.TabStop = false;
|
||||
//
|
||||
// flowMeterPictureBox
|
||||
//
|
||||
this.flowMeterPictureBox.ErrorImage = null;
|
||||
this.flowMeterPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("flowMeterPictureBox.Image")));
|
||||
this.flowMeterPictureBox.InitialImage = null;
|
||||
this.flowMeterPictureBox.Location = new System.Drawing.Point(884, 151);
|
||||
this.flowMeterPictureBox.Name = "flowMeterPictureBox";
|
||||
this.flowMeterPictureBox.Size = new System.Drawing.Size(38, 38);
|
||||
this.flowMeterPictureBox.TabIndex = 239;
|
||||
this.flowMeterPictureBox.TabStop = false;
|
||||
//
|
||||
// watermeterPictureBox4
|
||||
//
|
||||
this.watermeterPictureBox4.Image = ((System.Drawing.Image)(resources.GetObject("watermeterPictureBox4.Image")));
|
||||
this.watermeterPictureBox4.Location = new System.Drawing.Point(511, 365);
|
||||
this.watermeterPictureBox4.Name = "watermeterPictureBox4";
|
||||
this.watermeterPictureBox4.Size = new System.Drawing.Size(38, 30);
|
||||
this.watermeterPictureBox4.TabIndex = 238;
|
||||
this.watermeterPictureBox4.TabStop = false;
|
||||
//
|
||||
// watermeterPictureBox3
|
||||
//
|
||||
this.watermeterPictureBox3.Image = ((System.Drawing.Image)(resources.GetObject("watermeterPictureBox3.Image")));
|
||||
this.watermeterPictureBox3.Location = new System.Drawing.Point(370, 365);
|
||||
this.watermeterPictureBox3.Name = "watermeterPictureBox3";
|
||||
this.watermeterPictureBox3.Size = new System.Drawing.Size(38, 30);
|
||||
this.watermeterPictureBox3.TabIndex = 237;
|
||||
this.watermeterPictureBox3.TabStop = false;
|
||||
//
|
||||
// watermeterPictureBox2
|
||||
//
|
||||
this.watermeterPictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("watermeterPictureBox2.Image")));
|
||||
this.watermeterPictureBox2.Location = new System.Drawing.Point(227, 365);
|
||||
this.watermeterPictureBox2.Name = "watermeterPictureBox2";
|
||||
this.watermeterPictureBox2.Size = new System.Drawing.Size(38, 30);
|
||||
this.watermeterPictureBox2.TabIndex = 236;
|
||||
this.watermeterPictureBox2.TabStop = false;
|
||||
//
|
||||
// pumpPictureBox
|
||||
//
|
||||
this.pumpPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("pumpPictureBox.Image")));
|
||||
this.pumpPictureBox.Location = new System.Drawing.Point(799, 396);
|
||||
this.pumpPictureBox.Name = "pumpPictureBox";
|
||||
this.pumpPictureBox.Size = new System.Drawing.Size(38, 38);
|
||||
this.pumpPictureBox.TabIndex = 235;
|
||||
this.pumpPictureBox.TabStop = false;
|
||||
//
|
||||
// reservoirPictureBox
|
||||
//
|
||||
this.reservoirPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("reservoirPictureBox.Image")));
|
||||
this.reservoirPictureBox.Location = new System.Drawing.Point(900, 324);
|
||||
this.reservoirPictureBox.Name = "reservoirPictureBox";
|
||||
this.reservoirPictureBox.Size = new System.Drawing.Size(142, 109);
|
||||
this.reservoirPictureBox.TabIndex = 234;
|
||||
this.reservoirPictureBox.TabStop = false;
|
||||
//
|
||||
// airHumiLabel
|
||||
//
|
||||
this.airHumiLabel.AutoSize = true;
|
||||
this.airHumiLabel.Location = new System.Drawing.Point(141, 95);
|
||||
this.airHumiLabel.Name = "airHumiLabel";
|
||||
this.airHumiLabel.Size = new System.Drawing.Size(42, 13);
|
||||
this.airHumiLabel.TabIndex = 233;
|
||||
this.airHumiLabel.Text = "airHumi";
|
||||
//
|
||||
// airPressLabel
|
||||
//
|
||||
this.airPressLabel.AutoSize = true;
|
||||
this.airPressLabel.Location = new System.Drawing.Point(141, 78);
|
||||
this.airPressLabel.Name = "airPressLabel";
|
||||
this.airPressLabel.Size = new System.Drawing.Size(44, 13);
|
||||
this.airPressLabel.TabIndex = 232;
|
||||
this.airPressLabel.Text = "airPress";
|
||||
//
|
||||
// airTempLabel
|
||||
//
|
||||
this.airTempLabel.AutoSize = true;
|
||||
this.airTempLabel.Location = new System.Drawing.Point(141, 61);
|
||||
this.airTempLabel.Name = "airTempLabel";
|
||||
this.airTempLabel.Size = new System.Drawing.Size(45, 13);
|
||||
this.airTempLabel.TabIndex = 231;
|
||||
this.airTempLabel.Text = "airTemp";
|
||||
//
|
||||
// label34
|
||||
//
|
||||
this.label34.AutoSize = true;
|
||||
this.label34.Location = new System.Drawing.Point(52, 95);
|
||||
this.label34.Name = "label34";
|
||||
this.label34.Size = new System.Drawing.Size(80, 13);
|
||||
this.label34.TabIndex = 230;
|
||||
this.label34.Text = "Air humidity [%]:";
|
||||
//
|
||||
// label33
|
||||
//
|
||||
this.label33.AutoSize = true;
|
||||
this.label33.Location = new System.Drawing.Point(34, 78);
|
||||
this.label33.Name = "label33";
|
||||
this.label33.Size = new System.Drawing.Size(98, 13);
|
||||
this.label33.TabIndex = 229;
|
||||
this.label33.Text = "Air pressure [mBar]:";
|
||||
//
|
||||
// label32
|
||||
//
|
||||
this.label32.AutoSize = true;
|
||||
this.label32.Location = new System.Drawing.Point(31, 61);
|
||||
this.label32.Name = "label32";
|
||||
this.label32.Size = new System.Drawing.Size(101, 13);
|
||||
this.label32.TabIndex = 228;
|
||||
this.label32.Text = "Air temperature [°C]:";
|
||||
//
|
||||
// estmtdTimeLabel
|
||||
//
|
||||
this.estmtdTimeLabel.AutoSize = true;
|
||||
this.estmtdTimeLabel.Location = new System.Drawing.Point(375, 143);
|
||||
this.estmtdTimeLabel.Name = "estmtdTimeLabel";
|
||||
this.estmtdTimeLabel.Size = new System.Drawing.Size(61, 13);
|
||||
this.estmtdTimeLabel.TabIndex = 227;
|
||||
this.estmtdTimeLabel.Text = "estmtdTime";
|
||||
//
|
||||
// targetRefCountLabel
|
||||
//
|
||||
this.targetRefCountLabel.AutoSize = true;
|
||||
this.targetRefCountLabel.Location = new System.Drawing.Point(375, 122);
|
||||
this.targetRefCountLabel.Name = "targetRefCountLabel";
|
||||
this.targetRefCountLabel.Size = new System.Drawing.Size(79, 13);
|
||||
this.targetRefCountLabel.TabIndex = 226;
|
||||
this.targetRefCountLabel.Text = "targetRefCount";
|
||||
//
|
||||
// label31
|
||||
//
|
||||
this.label31.AutoSize = true;
|
||||
this.label31.Location = new System.Drawing.Point(283, 122);
|
||||
this.label31.Name = "label31";
|
||||
this.label31.Size = new System.Drawing.Size(89, 13);
|
||||
this.label31.TabIndex = 225;
|
||||
this.label31.Text = "Target ref. count:";
|
||||
//
|
||||
// targetVolumeLabel
|
||||
//
|
||||
this.targetVolumeLabel.AutoSize = true;
|
||||
this.targetVolumeLabel.Location = new System.Drawing.Point(375, 101);
|
||||
this.targetVolumeLabel.Name = "targetVolumeLabel";
|
||||
this.targetVolumeLabel.Size = new System.Drawing.Size(69, 13);
|
||||
this.targetVolumeLabel.TabIndex = 224;
|
||||
this.targetVolumeLabel.Text = "targetVolume";
|
||||
//
|
||||
// targetFlowHighLabel
|
||||
//
|
||||
this.targetFlowHighLabel.AutoSize = true;
|
||||
this.targetFlowHighLabel.Location = new System.Drawing.Point(375, 81);
|
||||
this.targetFlowHighLabel.Name = "targetFlowHighLabel";
|
||||
this.targetFlowHighLabel.Size = new System.Drawing.Size(78, 13);
|
||||
this.targetFlowHighLabel.TabIndex = 223;
|
||||
this.targetFlowHighLabel.Text = "targetFlowHigh";
|
||||
//
|
||||
// targetFlowLowLabel
|
||||
//
|
||||
this.targetFlowLowLabel.AutoSize = true;
|
||||
this.targetFlowLowLabel.Location = new System.Drawing.Point(375, 61);
|
||||
this.targetFlowLowLabel.Name = "targetFlowLowLabel";
|
||||
this.targetFlowLowLabel.Size = new System.Drawing.Size(76, 13);
|
||||
this.targetFlowLowLabel.TabIndex = 222;
|
||||
this.targetFlowLowLabel.Text = "targetFlowLow";
|
||||
//
|
||||
// label30
|
||||
//
|
||||
this.label30.AutoSize = true;
|
||||
this.label30.Location = new System.Drawing.Point(280, 143);
|
||||
this.label30.Name = "label30";
|
||||
this.label30.Size = new System.Drawing.Size(92, 13);
|
||||
this.label30.TabIndex = 221;
|
||||
this.label30.Text = "Estimated time [s]:";
|
||||
//
|
||||
// label20
|
||||
//
|
||||
this.label20.AutoSize = true;
|
||||
this.label20.Location = new System.Drawing.Point(283, 101);
|
||||
this.label20.Name = "label20";
|
||||
this.label20.Size = new System.Drawing.Size(89, 13);
|
||||
this.label20.TabIndex = 220;
|
||||
this.label20.Text = "Target volume [l]:";
|
||||
//
|
||||
// label29
|
||||
//
|
||||
this.label29.AutoSize = true;
|
||||
this.label29.Location = new System.Drawing.Point(252, 81);
|
||||
this.label29.Name = "label29";
|
||||
this.label29.Size = new System.Drawing.Size(120, 13);
|
||||
this.label29.TabIndex = 219;
|
||||
this.label29.Text = "Target flow high [m3/h]:";
|
||||
//
|
||||
// label28
|
||||
//
|
||||
this.label28.AutoSize = true;
|
||||
this.label28.Location = new System.Drawing.Point(256, 61);
|
||||
this.label28.Name = "label28";
|
||||
this.label28.Size = new System.Drawing.Size(116, 13);
|
||||
this.label28.TabIndex = 218;
|
||||
this.label28.Text = "Target flow low [m3/h]:";
|
||||
//
|
||||
// refErrorLabel
|
||||
//
|
||||
this.refErrorLabel.AutoSize = true;
|
||||
this.refErrorLabel.Location = new System.Drawing.Point(1009, 287);
|
||||
this.refErrorLabel.Name = "refErrorLabel";
|
||||
this.refErrorLabel.Size = new System.Drawing.Size(41, 13);
|
||||
this.refErrorLabel.TabIndex = 217;
|
||||
this.refErrorLabel.Text = "refError";
|
||||
//
|
||||
// label27
|
||||
//
|
||||
this.label27.AutoSize = true;
|
||||
this.label27.Location = new System.Drawing.Point(934, 287);
|
||||
this.label27.Name = "label27";
|
||||
this.label27.Size = new System.Drawing.Size(71, 13);
|
||||
this.label27.TabIndex = 216;
|
||||
this.label27.Text = "Ref. error [%]:";
|
||||
//
|
||||
// volumeCtvLabel
|
||||
//
|
||||
this.volumeCtvLabel.AutoSize = true;
|
||||
this.volumeCtvLabel.Location = new System.Drawing.Point(1009, 265);
|
||||
this.volumeCtvLabel.Name = "volumeCtvLabel";
|
||||
this.volumeCtvLabel.Size = new System.Drawing.Size(57, 13);
|
||||
this.volumeCtvLabel.TabIndex = 215;
|
||||
this.volumeCtvLabel.Text = "volumeCtv";
|
||||
//
|
||||
// label26
|
||||
//
|
||||
this.label26.AutoSize = true;
|
||||
this.label26.Location = new System.Drawing.Point(949, 265);
|
||||
this.label26.Name = "label26";
|
||||
this.label26.Size = new System.Drawing.Size(56, 13);
|
||||
this.label26.TabIndex = 214;
|
||||
this.label26.Text = "Volume [l]:";
|
||||
//
|
||||
// refVolumeLabel
|
||||
//
|
||||
this.refVolumeLabel.AutoSize = true;
|
||||
this.refVolumeLabel.Location = new System.Drawing.Point(810, 182);
|
||||
this.refVolumeLabel.Name = "refVolumeLabel";
|
||||
this.refVolumeLabel.Size = new System.Drawing.Size(54, 13);
|
||||
this.refVolumeLabel.TabIndex = 213;
|
||||
this.refVolumeLabel.Text = "refVolume";
|
||||
//
|
||||
// label25
|
||||
//
|
||||
this.label25.AutoSize = true;
|
||||
this.label25.Location = new System.Drawing.Point(729, 182);
|
||||
this.label25.Name = "label25";
|
||||
this.label25.Size = new System.Drawing.Size(78, 13);
|
||||
this.label25.TabIndex = 212;
|
||||
this.label25.Text = "Ref. volume [l]:";
|
||||
//
|
||||
// massDiffLabel
|
||||
//
|
||||
this.massDiffLabel.AutoSize = true;
|
||||
this.massDiffLabel.Location = new System.Drawing.Point(1009, 244);
|
||||
this.massDiffLabel.Name = "massDiffLabel";
|
||||
this.massDiffLabel.Size = new System.Drawing.Size(47, 13);
|
||||
this.massDiffLabel.TabIndex = 211;
|
||||
this.massDiffLabel.Text = "massDiff";
|
||||
//
|
||||
// label23
|
||||
//
|
||||
this.label23.AutoSize = true;
|
||||
this.label23.Location = new System.Drawing.Point(929, 244);
|
||||
this.label23.Name = "label23";
|
||||
this.label23.Size = new System.Drawing.Size(76, 13);
|
||||
this.label23.TabIndex = 210;
|
||||
this.label23.Text = "Mass diff. [kg]:";
|
||||
//
|
||||
// massLabel
|
||||
//
|
||||
this.massLabel.AutoSize = true;
|
||||
this.massLabel.Location = new System.Drawing.Point(1009, 224);
|
||||
this.massLabel.Name = "massLabel";
|
||||
this.massLabel.Size = new System.Drawing.Size(31, 13);
|
||||
this.massLabel.TabIndex = 209;
|
||||
this.massLabel.Text = "mass";
|
||||
//
|
||||
// label22
|
||||
//
|
||||
this.label22.AutoSize = true;
|
||||
this.label22.Location = new System.Drawing.Point(949, 224);
|
||||
this.label22.Name = "label22";
|
||||
this.label22.Size = new System.Drawing.Size(56, 13);
|
||||
this.label22.TabIndex = 208;
|
||||
this.label22.Text = "Mass [kg]:";
|
||||
//
|
||||
// scaleCmpntLabel
|
||||
//
|
||||
this.scaleCmpntLabel.AutoSize = true;
|
||||
this.scaleCmpntLabel.Location = new System.Drawing.Point(1009, 203);
|
||||
this.scaleCmpntLabel.Name = "scaleCmpntLabel";
|
||||
this.scaleCmpntLabel.Size = new System.Drawing.Size(62, 13);
|
||||
this.scaleCmpntLabel.TabIndex = 207;
|
||||
this.scaleCmpntLabel.Text = "scaleCmpnt";
|
||||
//
|
||||
// tDivCmpntLabel
|
||||
//
|
||||
this.tDivCmpntLabel.AutoSize = true;
|
||||
this.tDivCmpntLabel.Location = new System.Drawing.Point(598, 61);
|
||||
this.tDivCmpntLabel.Name = "tDivCmpntLabel";
|
||||
this.tDivCmpntLabel.Size = new System.Drawing.Size(56, 13);
|
||||
this.tDivCmpntLabel.TabIndex = 206;
|
||||
this.tDivCmpntLabel.Text = "tDivCmpnt";
|
||||
//
|
||||
// tDivLabel
|
||||
//
|
||||
this.tDivLabel.AutoSize = true;
|
||||
this.tDivLabel.Location = new System.Drawing.Point(598, 79);
|
||||
this.tDivLabel.Name = "tDivLabel";
|
||||
this.tDivLabel.Size = new System.Drawing.Size(26, 13);
|
||||
this.tDivLabel.TabIndex = 205;
|
||||
this.tDivLabel.Text = "tDiv";
|
||||
//
|
||||
// label24
|
||||
//
|
||||
this.label24.AutoSize = true;
|
||||
this.label24.Location = new System.Drawing.Point(536, 78);
|
||||
this.label24.Name = "label24";
|
||||
this.label24.Size = new System.Drawing.Size(54, 13);
|
||||
this.label24.TabIndex = 204;
|
||||
this.label24.Text = "T div [°C]:";
|
||||
//
|
||||
// label21
|
||||
//
|
||||
this.label21.AutoSize = true;
|
||||
this.label21.Location = new System.Drawing.Point(721, 79);
|
||||
this.label21.Name = "label21";
|
||||
this.label21.Size = new System.Drawing.Size(85, 13);
|
||||
this.label21.TabIndex = 203;
|
||||
this.label21.Text = "Reg. valve pos.:";
|
||||
//
|
||||
// regValvePosLabel
|
||||
//
|
||||
this.regValvePosLabel.AutoSize = true;
|
||||
this.regValvePosLabel.Location = new System.Drawing.Point(810, 79);
|
||||
this.regValvePosLabel.Name = "regValvePosLabel";
|
||||
this.regValvePosLabel.Size = new System.Drawing.Size(67, 13);
|
||||
this.regValvePosLabel.TabIndex = 202;
|
||||
this.regValvePosLabel.Text = "regValvePos";
|
||||
//
|
||||
// regValveCmpntLabel
|
||||
//
|
||||
this.regValveCmpntLabel.AutoSize = true;
|
||||
this.regValveCmpntLabel.Location = new System.Drawing.Point(810, 61);
|
||||
this.regValveCmpntLabel.Name = "regValveCmpntLabel";
|
||||
this.regValveCmpntLabel.Size = new System.Drawing.Size(79, 13);
|
||||
this.regValveCmpntLabel.TabIndex = 201;
|
||||
this.regValveCmpntLabel.Text = "regValveCmpnt";
|
||||
//
|
||||
// refFlowCmpntLabel
|
||||
//
|
||||
this.refFlowCmpntLabel.AutoSize = true;
|
||||
this.refFlowCmpntLabel.Location = new System.Drawing.Point(810, 108);
|
||||
this.refFlowCmpntLabel.Name = "refFlowCmpntLabel";
|
||||
this.refFlowCmpntLabel.Size = new System.Drawing.Size(71, 13);
|
||||
this.refFlowCmpntLabel.TabIndex = 200;
|
||||
this.refFlowCmpntLabel.Text = "refFlowCmpnt";
|
||||
//
|
||||
// refPulsesLabel
|
||||
//
|
||||
this.refPulsesLabel.AutoSize = true;
|
||||
this.refPulsesLabel.Location = new System.Drawing.Point(810, 126);
|
||||
this.refPulsesLabel.Name = "refPulsesLabel";
|
||||
this.refPulsesLabel.Size = new System.Drawing.Size(50, 13);
|
||||
this.refPulsesLabel.TabIndex = 199;
|
||||
this.refPulsesLabel.Text = "refPulses";
|
||||
//
|
||||
// label19
|
||||
//
|
||||
this.label19.AutoSize = true;
|
||||
this.label19.Location = new System.Drawing.Point(743, 126);
|
||||
this.label19.Name = "label19";
|
||||
this.label19.Size = new System.Drawing.Size(60, 13);
|
||||
this.label19.TabIndex = 198;
|
||||
this.label19.Text = "Ref. count:";
|
||||
//
|
||||
// refFreqLabel
|
||||
//
|
||||
this.refFreqLabel.AutoSize = true;
|
||||
this.refFreqLabel.Location = new System.Drawing.Point(810, 144);
|
||||
this.refFreqLabel.Name = "refFreqLabel";
|
||||
this.refFreqLabel.Size = new System.Drawing.Size(40, 13);
|
||||
this.refFreqLabel.TabIndex = 197;
|
||||
this.refFreqLabel.Text = "refFreq";
|
||||
//
|
||||
// label16
|
||||
//
|
||||
this.label16.AutoSize = true;
|
||||
this.label16.Location = new System.Drawing.Point(727, 144);
|
||||
this.label16.Name = "label16";
|
||||
this.label16.Size = new System.Drawing.Size(76, 13);
|
||||
this.label16.TabIndex = 196;
|
||||
this.label16.Text = "Ref. freq. [Hz]:";
|
||||
//
|
||||
// refFlowLabel
|
||||
//
|
||||
this.refFlowLabel.AutoSize = true;
|
||||
this.refFlowLabel.Location = new System.Drawing.Point(810, 163);
|
||||
this.refFlowLabel.Name = "refFlowLabel";
|
||||
this.refFlowLabel.Size = new System.Drawing.Size(41, 13);
|
||||
this.refFlowLabel.TabIndex = 195;
|
||||
this.refFlowLabel.Text = "refFlow";
|
||||
//
|
||||
// prInCmpntLabel
|
||||
//
|
||||
this.prInCmpntLabel.AutoSize = true;
|
||||
this.prInCmpntLabel.Location = new System.Drawing.Point(141, 178);
|
||||
this.prInCmpntLabel.Name = "prInCmpntLabel";
|
||||
this.prInCmpntLabel.Size = new System.Drawing.Size(55, 13);
|
||||
this.prInCmpntLabel.TabIndex = 194;
|
||||
this.prInCmpntLabel.Text = "prInCmpnt";
|
||||
//
|
||||
// prOutCmpntLabel
|
||||
//
|
||||
this.prOutCmpntLabel.AutoSize = true;
|
||||
this.prOutCmpntLabel.Location = new System.Drawing.Point(598, 178);
|
||||
this.prOutCmpntLabel.Name = "prOutCmpntLabel";
|
||||
this.prOutCmpntLabel.Size = new System.Drawing.Size(63, 13);
|
||||
this.prOutCmpntLabel.TabIndex = 193;
|
||||
this.prOutCmpntLabel.Text = "prOutCmpnt";
|
||||
//
|
||||
// tOutCmpntLabel
|
||||
//
|
||||
this.tOutCmpntLabel.AutoSize = true;
|
||||
this.tOutCmpntLabel.Location = new System.Drawing.Point(598, 218);
|
||||
this.tOutCmpntLabel.Name = "tOutCmpntLabel";
|
||||
this.tOutCmpntLabel.Size = new System.Drawing.Size(57, 13);
|
||||
this.tOutCmpntLabel.TabIndex = 192;
|
||||
this.tOutCmpntLabel.Text = "tOutCmpnt";
|
||||
//
|
||||
// tInCmpntLabel
|
||||
//
|
||||
this.tInCmpntLabel.AutoSize = true;
|
||||
this.tInCmpntLabel.Location = new System.Drawing.Point(141, 218);
|
||||
this.tInCmpntLabel.Name = "tInCmpntLabel";
|
||||
this.tInCmpntLabel.Size = new System.Drawing.Size(49, 13);
|
||||
this.tInCmpntLabel.TabIndex = 191;
|
||||
this.tInCmpntLabel.Text = "tInCmpnt";
|
||||
//
|
||||
// label15
|
||||
//
|
||||
this.label15.AutoSize = true;
|
||||
this.label15.Location = new System.Drawing.Point(717, 163);
|
||||
this.label15.Name = "label15";
|
||||
this.label15.Size = new System.Drawing.Size(86, 13);
|
||||
this.label15.TabIndex = 190;
|
||||
this.label15.Text = "Ref. flow [m3/h]:";
|
||||
//
|
||||
// prOutLabel
|
||||
//
|
||||
this.prOutLabel.AutoSize = true;
|
||||
this.prOutLabel.Location = new System.Drawing.Point(598, 194);
|
||||
this.prOutLabel.Name = "prOutLabel";
|
||||
this.prOutLabel.Size = new System.Drawing.Size(33, 13);
|
||||
this.prOutLabel.TabIndex = 189;
|
||||
this.prOutLabel.Text = "prOut";
|
||||
//
|
||||
// tOutLabel
|
||||
//
|
||||
this.tOutLabel.AutoSize = true;
|
||||
this.tOutLabel.Location = new System.Drawing.Point(598, 234);
|
||||
this.tOutLabel.Name = "tOutLabel";
|
||||
this.tOutLabel.Size = new System.Drawing.Size(27, 13);
|
||||
this.tOutLabel.TabIndex = 188;
|
||||
this.tOutLabel.Text = "tOut";
|
||||
//
|
||||
// label17
|
||||
//
|
||||
this.label17.AutoSize = true;
|
||||
this.label17.Location = new System.Drawing.Point(517, 194);
|
||||
this.label17.Name = "label17";
|
||||
this.label17.Size = new System.Drawing.Size(73, 13);
|
||||
this.label17.TabIndex = 187;
|
||||
this.label17.Text = "Pr down [bar]:";
|
||||
//
|
||||
// label18
|
||||
//
|
||||
this.label18.AutoSize = true;
|
||||
this.label18.Location = new System.Drawing.Point(524, 234);
|
||||
this.label18.Name = "label18";
|
||||
this.label18.Size = new System.Drawing.Size(66, 13);
|
||||
this.label18.TabIndex = 186;
|
||||
this.label18.Text = "T down [°C]:";
|
||||
//
|
||||
// prInLabel
|
||||
//
|
||||
this.prInLabel.AutoSize = true;
|
||||
this.prInLabel.Location = new System.Drawing.Point(141, 194);
|
||||
this.prInLabel.Name = "prInLabel";
|
||||
this.prInLabel.Size = new System.Drawing.Size(25, 13);
|
||||
this.prInLabel.TabIndex = 185;
|
||||
this.prInLabel.Text = "prIn";
|
||||
//
|
||||
// tInLabel
|
||||
//
|
||||
this.tInLabel.AutoSize = true;
|
||||
this.tInLabel.Location = new System.Drawing.Point(141, 234);
|
||||
this.tInLabel.Name = "tInLabel";
|
||||
this.tInLabel.Size = new System.Drawing.Size(19, 13);
|
||||
this.tInLabel.TabIndex = 184;
|
||||
this.tInLabel.Text = "tIn";
|
||||
//
|
||||
// label14
|
||||
//
|
||||
this.label14.AutoSize = true;
|
||||
this.label14.Location = new System.Drawing.Point(73, 194);
|
||||
this.label14.Name = "label14";
|
||||
this.label14.Size = new System.Drawing.Size(59, 13);
|
||||
this.label14.TabIndex = 183;
|
||||
this.label14.Text = "Pr up [bar]:";
|
||||
//
|
||||
// label13
|
||||
//
|
||||
this.label13.AutoSize = true;
|
||||
this.label13.Location = new System.Drawing.Point(80, 234);
|
||||
this.label13.Name = "label13";
|
||||
this.label13.Size = new System.Drawing.Size(52, 13);
|
||||
this.label13.TabIndex = 182;
|
||||
this.label13.Text = "T up [°C]:";
|
||||
//
|
||||
// metersListView
|
||||
//
|
||||
this.metersListView.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.metersListView.Location = new System.Drawing.Point(0, 0);
|
||||
this.metersListView.Name = "metersListView";
|
||||
this.metersListView.Size = new System.Drawing.Size(1100, 349);
|
||||
this.metersListView.TabIndex = 0;
|
||||
this.metersListView.UseCompatibleStateImageBehavior = false;
|
||||
this.metersListView.View = System.Windows.Forms.View.Details;
|
||||
//
|
||||
// ProcessTabPageExCtrl
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.BackColor = System.Drawing.SystemColors.Control;
|
||||
this.Controls.Add(this.splitContainer1);
|
||||
this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
|
||||
this.Name = "ProcessTabPageExCtrl";
|
||||
this.Size = new System.Drawing.Size(1100, 800);
|
||||
this.Load += new System.EventHandler(this.ProcessTabPageCtrl_Load);
|
||||
this.Paint += new System.Windows.Forms.PaintEventHandler(this.ProcessTabPageCtrl_Paint);
|
||||
this.splitContainer1.Panel1.ResumeLayout(false);
|
||||
this.splitContainer1.Panel1.PerformLayout();
|
||||
this.splitContainer1.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).EndInit();
|
||||
this.splitContainer1.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.flowMeterPictureBox)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.watermeterPictureBox4)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.watermeterPictureBox3)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.watermeterPictureBox2)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.pumpPictureBox)).EndInit();
|
||||
((System.ComponentModel.ISupportInitialize)(this.reservoirPictureBox)).EndInit();
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.SplitContainer splitContainer1;
|
||||
private System.Windows.Forms.TextBox pumpPctTextBox;
|
||||
private System.Windows.Forms.PictureBox pictureBox1;
|
||||
private System.Windows.Forms.PictureBox flowMeterPictureBox;
|
||||
private System.Windows.Forms.PictureBox watermeterPictureBox4;
|
||||
private System.Windows.Forms.PictureBox watermeterPictureBox3;
|
||||
private System.Windows.Forms.PictureBox watermeterPictureBox2;
|
||||
private System.Windows.Forms.PictureBox pumpPictureBox;
|
||||
private System.Windows.Forms.PictureBox reservoirPictureBox;
|
||||
private System.Windows.Forms.Label airHumiLabel;
|
||||
private System.Windows.Forms.Label airPressLabel;
|
||||
private System.Windows.Forms.Label airTempLabel;
|
||||
private System.Windows.Forms.Label label34;
|
||||
private System.Windows.Forms.Label label33;
|
||||
private System.Windows.Forms.Label label32;
|
||||
private System.Windows.Forms.Label estmtdTimeLabel;
|
||||
private System.Windows.Forms.Label targetRefCountLabel;
|
||||
private System.Windows.Forms.Label label31;
|
||||
private System.Windows.Forms.Label targetVolumeLabel;
|
||||
private System.Windows.Forms.Label targetFlowHighLabel;
|
||||
private System.Windows.Forms.Label targetFlowLowLabel;
|
||||
private System.Windows.Forms.Label label30;
|
||||
private System.Windows.Forms.Label label20;
|
||||
private System.Windows.Forms.Label label29;
|
||||
private System.Windows.Forms.Label label28;
|
||||
private System.Windows.Forms.Label refErrorLabel;
|
||||
private System.Windows.Forms.Label label27;
|
||||
private System.Windows.Forms.Label volumeCtvLabel;
|
||||
private System.Windows.Forms.Label label26;
|
||||
private System.Windows.Forms.Label refVolumeLabel;
|
||||
private System.Windows.Forms.Label label25;
|
||||
private System.Windows.Forms.Label massDiffLabel;
|
||||
private System.Windows.Forms.Label label23;
|
||||
private System.Windows.Forms.Label massLabel;
|
||||
private System.Windows.Forms.Label label22;
|
||||
private System.Windows.Forms.Label scaleCmpntLabel;
|
||||
private System.Windows.Forms.Label tDivCmpntLabel;
|
||||
private System.Windows.Forms.Label tDivLabel;
|
||||
private System.Windows.Forms.Label label24;
|
||||
private System.Windows.Forms.Label label21;
|
||||
private System.Windows.Forms.Label regValvePosLabel;
|
||||
private System.Windows.Forms.Label regValveCmpntLabel;
|
||||
private System.Windows.Forms.Label refFlowCmpntLabel;
|
||||
private System.Windows.Forms.Label refPulsesLabel;
|
||||
private System.Windows.Forms.Label label19;
|
||||
private System.Windows.Forms.Label refFreqLabel;
|
||||
private System.Windows.Forms.Label label16;
|
||||
private System.Windows.Forms.Label refFlowLabel;
|
||||
private System.Windows.Forms.Label prInCmpntLabel;
|
||||
private System.Windows.Forms.Label prOutCmpntLabel;
|
||||
private System.Windows.Forms.Label tOutCmpntLabel;
|
||||
private System.Windows.Forms.Label tInCmpntLabel;
|
||||
private System.Windows.Forms.Label label15;
|
||||
private System.Windows.Forms.Label prOutLabel;
|
||||
private System.Windows.Forms.Label tOutLabel;
|
||||
private System.Windows.Forms.Label label17;
|
||||
private System.Windows.Forms.Label label18;
|
||||
private System.Windows.Forms.Label prInLabel;
|
||||
private System.Windows.Forms.Label tInLabel;
|
||||
private System.Windows.Forms.Label label14;
|
||||
private System.Windows.Forms.Label label13;
|
||||
private System.Windows.Forms.ListView metersListView;
|
||||
private System.Windows.Forms.Label tLoCmpntLabel;
|
||||
private System.Windows.Forms.Label tLoDataLabel;
|
||||
private System.Windows.Forms.Label tLoLabel;
|
||||
private System.Windows.Forms.Label tHiCmpntLabel;
|
||||
private System.Windows.Forms.Label tHiDataLabel;
|
||||
private System.Windows.Forms.Label tHiLabel;
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,710 +0,0 @@
|
||||
///
|
||||
/// Copyright (c) 2019 Sensus Slovensko a.s.
|
||||
///
|
||||
using System;
|
||||
using System.Drawing;
|
||||
using System.Windows.Forms;
|
||||
using log4net;
|
||||
using Common;
|
||||
using Config.Entities;
|
||||
using Results.Entities;
|
||||
using TBF.Rig.Sequences;
|
||||
using TBF.UiBridge;
|
||||
using TBF.Resources;
|
||||
|
||||
#pragma warning disable 162 /// Disables 'Unreachable code detected' warning
|
||||
|
||||
namespace TBF.UI.Process
|
||||
{
|
||||
public partial class ProcessTabPageExCtrl : UserControl
|
||||
{
|
||||
static readonly ILog log = LogManager.GetLogger(typeof(ProcessTabPageExCtrl));
|
||||
|
||||
enum Columns
|
||||
{
|
||||
Meter = 0,
|
||||
Sensor,
|
||||
Pulses,
|
||||
RefPulses,
|
||||
Volume,
|
||||
Error,
|
||||
Result,
|
||||
Energy,
|
||||
EnergyError,
|
||||
HeatMeterResult,
|
||||
}
|
||||
|
||||
MetersKind currentMetersKind;
|
||||
|
||||
bool pumpOn = true;
|
||||
bool diverterToTank = true;
|
||||
|
||||
/// <summary>
|
||||
/// Constructor, initializes anonymous event handlers
|
||||
/// </summary>
|
||||
public ProcessTabPageExCtrl()
|
||||
{
|
||||
currentMetersKind = MetersKind.Single;
|
||||
|
||||
InitializeComponent();
|
||||
|
||||
#if HEAT_METERS
|
||||
tLoLabel.Visible = true;
|
||||
tLoCmpntLabel.Visible = true;
|
||||
tLoDataLabel.Visible = true;
|
||||
tHiLabel.Visible = true;
|
||||
tHiCmpntLabel.Visible = true;
|
||||
tHiDataLabel.Visible = true;
|
||||
#endif
|
||||
|
||||
Bridge.ProcedureSelectedHandler += delegate(object sndr, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcedureSelectedEventArgs>(OnProcedureSelected), sndr, args);
|
||||
else OnProcedureSelected(sndr, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcedureSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestSelectedHandler += delegate(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<TestSelectedEventArgs>(OnTestSelected), sender, args);
|
||||
else OnTestSelected(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnTestSelected() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcessDataHandler += delegate(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcessDataEventArgs>(OnProcessDataChanged), sender, args);
|
||||
else OnProcessDataChanged(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcessDataChanged() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.TestCompletedHandler += delegate(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<TestCompletedEventArgs>(OnTestCompleted), sender, args);
|
||||
else OnTestCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnTestCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Bridge.ProcedureCompletedHandler += delegate(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
try
|
||||
{
|
||||
if (InvokeRequired) Invoke(new EventHandler<ProcedureCompletedEventArgs>(OnProcedureCompleted), sender, args);
|
||||
else OnProcedureCompleted(sender, args);
|
||||
}
|
||||
catch (Exception e) { log.ErrorFormat("ProcessTabPage24.OnProcedureCompleted() failed: {0}", e.Message); }
|
||||
};
|
||||
|
||||
Timer timer = new Timer();
|
||||
timer.Tick += (s, e) => { OnTimerTick(); };
|
||||
timer.Interval = 5000;
|
||||
timer.Start();
|
||||
}
|
||||
|
||||
private void ProcessTabPageCtrl_Load(object sender, EventArgs e)
|
||||
{
|
||||
Once();
|
||||
ResetLabelsAndTargetVals();
|
||||
ResetReadings(); /// Erase all results
|
||||
OnTimerTick(); /// Redraw measurements that are always available
|
||||
ProcessTabPageCtrl_Paint(this, null);
|
||||
}
|
||||
|
||||
void Once()
|
||||
{
|
||||
UpdateCurrentMetersKind(MetersKind.Single, true);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Update 'currentMetersKind' variable and visibility of UI items.
|
||||
/// </summary>
|
||||
/// <param name="metersKind">New value</param>
|
||||
/// <param name="fromScratch">true = always update UI</param>
|
||||
void UpdateCurrentMetersKind(MetersKind metersKind, bool fromScratch = false)
|
||||
{
|
||||
if (currentMetersKind != metersKind || fromScratch)
|
||||
{
|
||||
currentMetersKind = metersKind;
|
||||
|
||||
metersListView.Items.Clear();
|
||||
metersListView.Columns.Clear();
|
||||
|
||||
metersListView.Columns.Add(Strings.Meter, 60);
|
||||
metersListView.Columns.Add(Strings.Sensor, 80);
|
||||
metersListView.Columns.Add(Strings.Pulses_count, 100);
|
||||
metersListView.Columns.Add(Strings.Ref_pulses_count, 120);
|
||||
metersListView.Columns.Add(Strings.Volume, 80);
|
||||
metersListView.Columns.Add(Strings.Error, 80);
|
||||
metersListView.Columns.Add(Strings.Result, 80);
|
||||
///
|
||||
if (metersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
metersListView.Columns.Add(Strings.Energy, 80);
|
||||
metersListView.Columns.Add(Strings.Error, 80);
|
||||
metersListView.Columns.Add(Strings.Result, 80);
|
||||
}
|
||||
|
||||
if ((metersKind == MetersKind.Single) || (metersKind == MetersKind.HeatMeter))
|
||||
{
|
||||
for (int i = 0; i < Data.WMsCount; i++)
|
||||
{
|
||||
ListViewItem lvi = new ListViewItem(new string[] { (i + 1).ToString(), "---", "---", "---", "---", "---", "---" });
|
||||
if (metersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
lvi.SubItems.Add("---"); /// energy
|
||||
lvi.SubItems.Add("---"); /// energy error
|
||||
lvi.SubItems.Add("---"); /// HeatMeter result
|
||||
}
|
||||
metersListView.Items.Add(lvi);
|
||||
}
|
||||
}
|
||||
else if (metersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < TBF.Data.CompoundWMsCount; z++)
|
||||
{
|
||||
ListViewItem lvi = new ListViewItem(string.Format("{0} {1}", Strings.Compound_meter_0, z + 1));
|
||||
lvi.SubItems.Add(string.Empty); /// sensor
|
||||
lvi.SubItems.Add(string.Empty); /// pulses count
|
||||
lvi.SubItems.Add("---"); /// ref. pulses count
|
||||
lvi.SubItems.Add("---"); /// volume
|
||||
lvi.SubItems.Add("---"); /// error
|
||||
lvi.SubItems.Add("---"); /// result
|
||||
metersListView.Items.Add(lvi);
|
||||
|
||||
ListViewItem iMain = new ListViewItem(Strings.Main);
|
||||
iMain.SubItems.Add("---"); /// sensor
|
||||
iMain.SubItems.Add("---"); /// pulses count
|
||||
iMain.SubItems.Add(string.Empty); /// ref. pulses count
|
||||
iMain.SubItems.Add("---"); /// volume
|
||||
iMain.SubItems.Add(string.Empty); /// error
|
||||
iMain.SubItems.Add(string.Empty); /// result
|
||||
metersListView.Items.Add(iMain);
|
||||
|
||||
ListViewItem iAux = new ListViewItem(Strings.Aux);
|
||||
iAux.SubItems.Add("---"); /// sensor
|
||||
iAux.SubItems.Add("---"); /// pulses count
|
||||
iAux.SubItems.Add(string.Empty); /// ref. pulses count
|
||||
iAux.SubItems.Add("---"); /// volume
|
||||
iAux.SubItems.Add(string.Empty); /// error
|
||||
iAux.SubItems.Add(string.Empty); /// result
|
||||
metersListView.Items.Add(iAux);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Called when a new procedure is selected
|
||||
/// </summary>
|
||||
void ResetLabelsAndTargetVals()
|
||||
{
|
||||
/// Target values
|
||||
targetFlowLowLabel.Text = "---";
|
||||
targetFlowHighLabel.Text = "---";
|
||||
targetVolumeLabel.Text = "---";
|
||||
targetRefCountLabel.Text = "---";
|
||||
estmtdTimeLabel.Text = "---";
|
||||
|
||||
//
|
||||
refFlowCmpntLabel.Text = "---";
|
||||
regValveCmpntLabel.Text = "---";
|
||||
|
||||
/// Water pressure
|
||||
prInCmpntLabel.Text = "---";
|
||||
prOutCmpntLabel.Text = "---";
|
||||
|
||||
/// Water temperature
|
||||
tInCmpntLabel.Text = "---";
|
||||
tOutCmpntLabel.Text = "---";
|
||||
tDivCmpntLabel.Text = "---";
|
||||
tHiCmpntLabel.Text = "---";
|
||||
tLoCmpntLabel.Text = "---";
|
||||
|
||||
scaleCmpntLabel.Text = "---";
|
||||
|
||||
if ((currentMetersKind == MetersKind.Single) || (currentMetersKind == MetersKind.HeatMeter))
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Sensor].Text = "---";
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(TBF.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Sensor].Text = "---";
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Sensor].Text = "---";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Called when a new procedure or a new test procedure is selected
|
||||
/// </summary>
|
||||
void ResetReadings()
|
||||
{
|
||||
/// Top part
|
||||
refPulsesLabel.Text = "---";
|
||||
refFreqLabel.Text = "---";
|
||||
refFlowLabel.Text = "---";
|
||||
refVolumeLabel.Text = "---";
|
||||
|
||||
regValvePosLabel.Text = "---";
|
||||
tDivLabel.Text = "---";
|
||||
|
||||
tInLabel.Text = "---";
|
||||
prInLabel.Text = "---";
|
||||
|
||||
tHiDataLabel.Text = "---";
|
||||
tLoDataLabel.Text = "---";
|
||||
|
||||
tOutLabel.Text = "---";
|
||||
prOutLabel.Text = "---";
|
||||
|
||||
massLabel.Text = "---";
|
||||
massDiffLabel.Text = "---";
|
||||
volumeCtvLabel.Text = "---";
|
||||
refErrorLabel.Text = "---";
|
||||
|
||||
|
||||
if (currentMetersKind == MetersKind.Single)
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = "---";
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.Energy].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.EnergyError].Text = "---";
|
||||
metersListView.Items[i].SubItems[(int)Columns.HeatMeterResult].Text = "---";
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(TBF.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
/// Compound
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.RefPulses].Text = "---";
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Volume].Text = "---";
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Error].Text = "---";
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Result].Text = "---";
|
||||
|
||||
/// Main
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Volume].Text = "---";
|
||||
|
||||
/// Aux
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Pulses].Text = "---";
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Volume].Text = "---";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void OnTimerTick()
|
||||
{
|
||||
///
|
||||
/// Always available
|
||||
///
|
||||
airTempLabel.Text = ProcessData.AmbTemp.ToString();
|
||||
airPressLabel.Text = Common.Units.ConvertTo(Common.Unit.mbar, ProcessData.AmbPress.Val).ToString("F0");
|
||||
airHumiLabel.Text = ProcessData.AmbHumi.ToString();
|
||||
|
||||
tInLabel.Text = ProcessData.TempUp.ToString();
|
||||
tOutLabel.Text = ProcessData.TempDown.ToString();
|
||||
tDivLabel.Text = ProcessData.TempDiv.ToString();
|
||||
|
||||
prInLabel.Text = ProcessData.PressUp.ToString();
|
||||
prOutLabel.Text = ProcessData.PressDown.ToString();
|
||||
|
||||
//massLabel.Text = ProcessData.Mass.ToString();
|
||||
|
||||
#if HEAT_METERS
|
||||
tHiDataLabel.Text = (ProcessData.TempRefHi1.Valid && ProcessData.TempRefHi2.Valid) ? ((ProcessData.TempRefHi1.Val + ProcessData.TempRefHi2.Val) / 2).ToString("F2") : "---";
|
||||
tLoDataLabel.Text = (ProcessData.TempRefLo1.Valid && ProcessData.TempRefLo2.Valid) ? ((ProcessData.TempRefLo1.Val + ProcessData.TempRefLo2.Val) / 2).ToString("F2") : "---";
|
||||
#endif
|
||||
}
|
||||
|
||||
void OnProcedureSelected(object sender, ProcedureSelectedEventArgs args)
|
||||
{
|
||||
UpdateCurrentMetersKind(args.Procedure.MetersKind);
|
||||
ResetLabelsAndTargetVals();
|
||||
ResetReadings();
|
||||
OnTimerTick(); /// Redraw measurements that are always available
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
void OnTestSelected(object sender, TestSelectedEventArgs args)
|
||||
{
|
||||
/// Readings and target values
|
||||
ResetReadings();
|
||||
|
||||
/// Target values
|
||||
targetFlowLowLabel.Text = args.Test.Qfrom.ToString("F3");
|
||||
targetFlowHighLabel.Text = args.Test.Qto.ToString("F3");
|
||||
targetVolumeLabel.Text = args.Test.Volume.ToString("F1");
|
||||
//targetRefCountLabel.Text = args.TotalPulses.ToString();
|
||||
estmtdTimeLabel.Text = args.Test.TestTime.ToString("F1");
|
||||
|
||||
/// Names of virtual bench components
|
||||
if (args.OutputPath.FlowMeter != null) refFlowCmpntLabel.Text = args.OutputPath.FlowMeter.Name;
|
||||
if (args.OutputPath.RegValve != null) regValveCmpntLabel.Text = args.OutputPath.RegValve.Name;
|
||||
if (args.OutputPath.Scale != null) scaleCmpntLabel.Text = args.OutputPath.Scale.Name;
|
||||
if (args.BenchPath.PressMtrUp != null) prInCmpntLabel.Text = args.BenchPath.PressMtrUp.Name;
|
||||
if (args.BenchPath.PressMtrDown != null) prOutCmpntLabel.Text = args.BenchPath.PressMtrDown.Name;
|
||||
if (args.BenchPath.TempMtrUp != null) tInCmpntLabel.Text = args.BenchPath.TempMtrUp.Name;
|
||||
if (args.BenchPath.TempMtrDown != null) tOutCmpntLabel.Text = args.BenchPath.TempMtrDown.Name;
|
||||
if (args.OutputPath.TempMtrDiv != null) tDivCmpntLabel.Text = args.OutputPath.TempMtrDiv.Name;
|
||||
#if HEAT_METERS
|
||||
if (args.HeatMetersPath != null && args.HeatMetersPath.TMeterRefWarm1 != null) tHiCmpntLabel.Text = args.HeatMetersPath.TMeterRefWarm1.Name;
|
||||
if (args.HeatMetersPath != null && args.HeatMetersPath.TMeterRefCold1 != null) tLoCmpntLabel.Text = args.HeatMetersPath.TMeterRefCold1.Name;
|
||||
#endif
|
||||
|
||||
OnTimerTick(); /// Redraw measurements that are always available
|
||||
|
||||
if ((currentMetersKind == MetersKind.Single) || (currentMetersKind == MetersKind.HeatMeter))
|
||||
{
|
||||
for (int i = 0; i < metersListView.Items.Count; i++)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Sensor].Text = (args.MetersPath.RegisterReaders[i] != null)
|
||||
? args.MetersPath.RegisterReaders[i].Cfg.Name
|
||||
: string.Empty;
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(TBF.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Sensor].Text
|
||||
= ((args.MetersPath.RegisterReaders != null) && (args.MetersPath.RegisterReaders.Length > 2 * z) && (args.MetersPath.RegisterReaders[2 * z] != null))
|
||||
? args.MetersPath.RegisterReaders[2 * z].Cfg.Name
|
||||
: string.Empty;
|
||||
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Sensor].Text
|
||||
= ((args.MetersPath.RegisterReaders != null) && (args.MetersPath.RegisterReaders.Length > 2 * z + 1) && (args.MetersPath.RegisterReaders[2 * z + 1] != null))
|
||||
? args.MetersPath.RegisterReaders[2 * z + 1].Cfg.Name
|
||||
: string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
if (args.FeedingPath != null && (args.FeedingPath.Pump is Rig.GenericDevices.IPumpFM))
|
||||
{
|
||||
pumpPctTextBox.Visible = true;
|
||||
pumpPctTextBox.Text = (args.FeedingPath.Pump as Rig.GenericDevices.IPumpFM).Power.ToString("F0") + " %";
|
||||
}
|
||||
else
|
||||
{
|
||||
pumpPctTextBox.Visible = false;
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcessDataChanged(object sender, ProcessDataEventArgs args)
|
||||
{
|
||||
/// Pressure may change faster then temperature, therefore it is updated also here
|
||||
prInLabel.Text = ProcessData.PressUp.ToString();
|
||||
prOutLabel.Text = ProcessData.PressDown.ToString();
|
||||
|
||||
//massLabel.Text = ProcessData.Mass.ToString();
|
||||
|
||||
if (args.TestPhase == Progress.FlowSetting ||
|
||||
args.TestPhase == Progress.Test)
|
||||
{
|
||||
///
|
||||
/// Available when setting the flow and during a test
|
||||
///
|
||||
refFreqLabel.Text = ProcessData.RefFrequency.ToString();
|
||||
refFlowLabel.Text = Utils.DoubleToStr(ProcessData.RefFlow.Val, 4);
|
||||
}
|
||||
|
||||
if (args.TestPhase == Progress.Test)
|
||||
{
|
||||
///
|
||||
/// Available only during a test
|
||||
///
|
||||
refPulsesLabel.Text = ProcessData.RefPulses.ToString();
|
||||
double refVolume = ProcessData.LtrPerRefPulse * (double)ProcessData.RefPulses;
|
||||
refVolumeLabel.Text = refVolume.ToString("F2");
|
||||
|
||||
//double massDiff = ProcessData.Mass.Val - ProcessData.StartMass.Val;
|
||||
//massDiffLabel.Text = massDiff.ToString("F3");
|
||||
//double volumeCtv = 1000 * Formulas.Buoyancy() * massDiff
|
||||
// / Formulas.WaterDensityFromTempPress((ProcessData.TempUp.Val + ProcessData.TempDown.Val) / 2,
|
||||
// (ProcessData.PressUp.Val + ProcessData.PressDown.Val) / 2);
|
||||
//volumeCtvLabel.Text = volumeCtv.ToString("F2");
|
||||
//double refError = Formulas.ErrorFromVolumes(refVolume, volumeCtv);
|
||||
//refErrorLabel.Text = refError.ToString("F3");
|
||||
|
||||
if (currentMetersKind == MetersKind.Single || currentMetersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
for (int i = 0; i < Math.Min(metersListView.Items.Count, ProcessData.RegisterReaders.Length); i++)
|
||||
{
|
||||
ListViewItem lvi = metersListView.Items[i];
|
||||
Rig.GenericDevices.IRegReader rr = ProcessData.RegisterReaders[i];
|
||||
if (rr != null)
|
||||
{
|
||||
lvi.SubItems[(int)Columns.Pulses].Text = rr.WMPulses.ToString();
|
||||
lvi.SubItems[(int)Columns.RefPulses].Text = rr.WMRefPulses.ToString();
|
||||
lvi.SubItems[(int)Columns.Volume].Text = rr.WMVolume.ToString("F1");
|
||||
lvi.SubItems[(int)Columns.Error].Text = Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefPulses * ProcessData.LtrPerRefPulse).ToString("F1");
|
||||
}
|
||||
|
||||
if (currentMetersKind == MetersKind.HeatMeter)
|
||||
{
|
||||
/// TODO:
|
||||
lvi.SubItems[(int)Columns.Energy].Text = ProcessData.Energy.Last.ToString("F1");
|
||||
lvi.SubItems[(int)Columns.EnergyError].Text = Formulas.ErrorFromVolumes(rr.WMVolume, rr.WMRefPulses * ProcessData.LtrPerRefPulse).ToString("F1");
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (currentMetersKind == MetersKind.Combined)
|
||||
{
|
||||
for (int z = 0; z < Math.Min(TBF.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
Rig.GenericDevices.IRegReader rrMain = (ProcessData.RegisterReaders.Length > 2 * z) ? ProcessData.RegisterReaders[2 * z] : null;
|
||||
Rig.GenericDevices.IRegReader rrAux = (ProcessData.RegisterReaders.Length > 2 * z + 1) ? ProcessData.RegisterReaders[2 * z + 1] : null;
|
||||
|
||||
Double compoundVolume = 0;
|
||||
if (rrMain != null) compoundVolume += rrMain.WMVolume;
|
||||
if (rrAux != null) compoundVolume += rrAux.WMVolume;
|
||||
|
||||
/// Compound
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.RefPulses].Text = ProcessData.RefPulses.ToString();
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Volume].Text = compoundVolume.ToString("F1");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Error].Text = Formulas.ErrorFromVolumes(compoundVolume, refVolume).ToString("F1"); ;
|
||||
|
||||
/// Main
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Pulses].Text = (rrMain != null) ? rrMain.WMPulses.ToString() : string.Empty;
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Volume].Text = (rrMain != null) ? rrMain.WMVolume.ToString("F1") : string.Empty;
|
||||
|
||||
/// Aux
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Pulses].Text = (rrAux != null) ? rrMain.WMPulses.ToString() : string.Empty;
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Volume].Text = (rrAux != null) ? rrMain.WMVolume.ToString("F1") : string.Empty;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//if (pumpOn != args.PumpOn || diverterToTank != args.DivToTank)
|
||||
//{
|
||||
// //if (pumpOn != args.PumpOn)
|
||||
// //{
|
||||
// // if (pumpOn) pumpPictureBox.Image = System.Resources.
|
||||
// // else pumpPictureBox.Image = System.Resources.
|
||||
// //}
|
||||
// pumpOn = args.PumpOn;
|
||||
// diverterToTank = args.DivToTank;
|
||||
// Invalidate();
|
||||
//}
|
||||
}
|
||||
|
||||
void OnTestCompleted(object sender, TestCompletedEventArgs args)
|
||||
{
|
||||
if (args == null) return;
|
||||
|
||||
TestRslt tRes = args.TestRslt;
|
||||
if (tRes == null) return;
|
||||
|
||||
/// Pressure may change faster then temperature, therefore it is updated also here
|
||||
prInLabel.Text = ProcessData.PressUp.ToString();
|
||||
prOutLabel.Text = ProcessData.PressDown.ToString();
|
||||
|
||||
//massLabel.Text = ProcessData.Mass.ToString();
|
||||
massDiffLabel.Text = (tRes.MassEnd - tRes.MassStart).ToString("F3");
|
||||
|
||||
refPulsesLabel.Text = tRes.PulsesMaster.ToString("F0");
|
||||
refFreqLabel.Text = "---";
|
||||
refFlowLabel.Text = Utils.DoubleToStr(tRes.FlowVolume, 4);
|
||||
|
||||
refVolumeLabel.Text = tRes.VolumeCTV.ToString("F2");
|
||||
//regValvePosLabel.Text = tstRslt.
|
||||
|
||||
volumeCtvLabel.Text = tRes.VolumeCTV.ToString("F1");
|
||||
refErrorLabel.Text = (tRes.ErrorMaster == 0) ? "---" : tRes.ErrorMaster.ToString("F3");
|
||||
|
||||
if ((currentMetersKind == MetersKind.Single) && !tRes.Batch.Compound && !tRes.Batch.HeatMeter)
|
||||
{
|
||||
///
|
||||
/// Test results for single meters
|
||||
///
|
||||
for (int i = 0; i < Math.Min(metersListView.Items.Count, ProcessData.BatchRslts.Batch.WaterMeters.Count); i++)
|
||||
{
|
||||
WaterMeter wm = ProcessData.BatchRslts.Batch.WaterMeters[i];
|
||||
MeterTestRslt mtr = (wm != null && !wm.Disabled) ? wm.GetMeterTestRslt(args.TestName) : null;
|
||||
|
||||
if (mtr != null)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = mtr.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = mtr.PulsesMaster.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = mtr.VolumeMeter.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = mtr.Error.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = mtr.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((currentMetersKind == MetersKind.HeatMeter) && tRes.Batch.HeatMeter)
|
||||
{
|
||||
///
|
||||
/// Test results for heat meters
|
||||
///
|
||||
for (int i = 0; i < Math.Min(metersListView.Items.Count, ProcessData.BatchRslts.Batch.WaterMeters.Count); i++)
|
||||
{
|
||||
WaterMeter wm = ProcessData.BatchRslts.Batch.WaterMeters[i];
|
||||
if (wm == null || wm.Disabled) continue;
|
||||
|
||||
MeterTestRslt mtrVolume = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.HeatMeterVolume);
|
||||
MeterTestRslt mtrEnergy = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.HeatMeterEnergy);
|
||||
|
||||
if (mtrVolume != null)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Pulses].Text = mtrVolume.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.RefPulses].Text = mtrVolume.PulsesMaster.ToString("F0");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Volume].Text = mtrVolume.VolumeMeter.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Error].Text = mtrVolume.Error.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.Result].Text = mtrVolume.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
|
||||
if (mtrEnergy != null)
|
||||
{
|
||||
metersListView.Items[i].SubItems[(int)Columns.Energy].Text = mtrEnergy.VolumeMeter.ToString("F1"); ;
|
||||
metersListView.Items[i].SubItems[(int)Columns.EnergyError].Text = mtrEnergy.Error.ToString("F2");
|
||||
metersListView.Items[i].SubItems[(int)Columns.HeatMeterResult].Text = mtrEnergy.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if ((currentMetersKind == MetersKind.Combined) && tRes.Batch.Compound)
|
||||
{
|
||||
///
|
||||
/// Test results for compond meters
|
||||
///
|
||||
for (int z = 0; z < Math.Min(TBF.Data.CompoundWMsCount, metersListView.Items.Count / 3); z++)
|
||||
{
|
||||
WaterMeter wm = ProcessData.BatchRslts.Batch.WaterMeters[z];
|
||||
if (wm == null && !wm.Disabled) continue;
|
||||
|
||||
MeterTestRslt mtrComp = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.Compound);
|
||||
MeterTestRslt mtrMain = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.CompoundMain);
|
||||
MeterTestRslt mtrAux = wm.GetMeterTestRslt(args.TestName, CompoundMeterId.CompoundAux);
|
||||
|
||||
if (mtrComp != null)
|
||||
{
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.RefPulses].Text = mtrMain.PulsesMaster.ToString("F0");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Volume].Text = mtrComp.VolumeMeter.ToString("F2");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Error].Text = mtrComp.Error.ToString("F2");
|
||||
metersListView.Items[3 * z].SubItems[(int)Columns.Result].Text = mtrComp.Passed ? Strings.Passed : Strings.Failed;
|
||||
}
|
||||
|
||||
if (mtrMain != null)
|
||||
{
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Pulses].Text = mtrMain.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[3 * z + 1].SubItems[(int)Columns.Volume].Text = mtrMain.VolumeMeter.ToString("F2");
|
||||
}
|
||||
|
||||
if (mtrAux != null)
|
||||
{
|
||||
metersListView.Items[3 * z + 2].SubItems[(int)Columns.Pulses].Text = mtrAux.PulsesMeter.ToString("F0");
|
||||
metersListView.Items[2 * z + 2].SubItems[(int)Columns.Volume].Text = mtrAux.VolumeMeter.ToString("F2");
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/// Mismatch between Batch.Compound, Batch.HeatMeter and currentMetersKind
|
||||
}
|
||||
}
|
||||
|
||||
void OnProcedureCompleted(object sender, ProcedureCompletedEventArgs args)
|
||||
{
|
||||
}
|
||||
|
||||
private void ProcessTabPageCtrl_Paint(object sender, PaintEventArgs e)
|
||||
{
|
||||
System.Drawing.Graphics formGraphics = this.CreateGraphics();
|
||||
|
||||
System.Drawing.SolidBrush filledBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Blue);
|
||||
System.Drawing.SolidBrush emptyBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Gray);
|
||||
System.Drawing.SolidBrush benchBrush = (pumpOn ? filledBrush : emptyBrush);
|
||||
|
||||
int diam = 14; // pipe diameter (pixels)
|
||||
int left = 20; // left-most pipe x-coordinate
|
||||
int top = 14; // top-most pipe y-coordinate
|
||||
int topLeft = 876;
|
||||
int topRight = 966;
|
||||
int divTop = 40;
|
||||
int bottom = 504; // bottom-most pipe y-coordinate
|
||||
int benchTop = 378; // bench-pipe top y-coordinate
|
||||
int pumpLeft = 779;
|
||||
int pumpWdth = 38;
|
||||
|
||||
/// Pipes
|
||||
formGraphics.FillRectangle(filledBrush,new Rectangle(pumpLeft+pumpWdth, bottom-diam, 65, diam)); // tank -> pump
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left, bottom-diam, pumpLeft-left, diam)); // pump ->bench horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left, benchTop, diam, bottom-benchTop)); // ->bench vertical
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(left + diam, benchTop, topLeft-left, diam)); // bench horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topLeft, top + diam, diam, benchTop-top-diam)); // bench -> top vertical
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topLeft, top, topRight-topLeft, diam)); // top horizontal
|
||||
formGraphics.FillRectangle(benchBrush, new Rectangle(topRight-diam, top+diam, diam, divTop-top-diam)); // top -> diverter vertical
|
||||
|
||||
/// Diverter
|
||||
int displacement = diverterToTank ? 25 : -25;
|
||||
Point[] points = new Point[4];
|
||||
points[0].X = topRight - diam;
|
||||
points[0].Y = divTop;
|
||||
points[1].X = topRight;
|
||||
points[1].Y = divTop;
|
||||
points[2].X = topRight + displacement;
|
||||
points[2].Y = divTop + 50;
|
||||
points[3].X = topRight - diam + displacement;
|
||||
points[3].Y = divTop + 50;
|
||||
formGraphics.FillPolygon(benchBrush, points);
|
||||
|
||||
/// Sink
|
||||
formGraphics.FillEllipse(emptyBrush, topRight - diam / 2 - 45, divTop + 50, 40, 30);
|
||||
formGraphics.DrawEllipse(Pens.Black, topRight - diam / 2 - 45, divTop + 50, 40, 30);
|
||||
|
||||
/// Tank
|
||||
formGraphics.DrawRectangle(Pens.Black, topRight - diam / 2, divTop + 51, 60, 80);
|
||||
|
||||
|
||||
emptyBrush.Dispose();
|
||||
filledBrush.Dispose();
|
||||
formGraphics.Dispose();
|
||||
}
|
||||
|
||||
private void PaintBypass(System.Drawing.Graphics formGraphics, System.Drawing.SolidBrush brush, int startX, int startY)
|
||||
{
|
||||
int w = 80;
|
||||
int h = 43;
|
||||
int diam = 10; // pipe diameter (pixels)
|
||||
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX, startY, diam, h - diam));
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX, startY + h - diam, w, diam));
|
||||
formGraphics.FillRectangle(brush, new Rectangle(startX + w - diam, startY, diam, h));
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1,237 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="pictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACYAAAAjCAYAAAD48HgdAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAN0SURBVFhHxZg5SDNBGIZHiTZBEA9UEESE2ARvxIMIVuJV
|
||||
qY0iKoithSBok87CIFgZwUIQlEDEo7EQBRuJKNiYSsFSsDJaeRTf7zvLbvb4drObqH/xNNmZ93symWsj
|
||||
UqkU6RkeHiYhxH9B72ERA1NTU2zH3+T29tbgwIqdnp7KxvPzgoh+j89PQUVFgmZnZy0OrBg4OzuTcuEw
|
||||
H5orT0/KSE1OTrL1bcXAxcWF7Hxzw4fnAnILCwvZusBRDAQCARny9sYXyIbVVWcpkFEMBINBKijgi3hl
|
||||
eVkZrYeHB7aWiisxdb5VVvLF3ILFhJyRkRG2jh5XYiAej8vQtTW+qBuqqwUNDQ2x+WZci4GlpSUpt7nJ
|
||||
F7bj40NQcbGg/v5+NpfDkxhoaGiQcqkUL8GB9kofPpPDsxioqKiQhd7feRE9h4eC8vPz6erqSuu/sbFB
|
||||
VVVVEp/Pp4mD7u5u2SYrsUQiIUP8fl5GZXtbKZZMJi0ZJycn37t+kZRWpe7u7rTnWYmBo6MjGeY03/C8
|
||||
tbVV6zM3N0dtbW2aiMri4qL8svr8rMWAWiQWs0oFg4La29tpfHycxsbGDCItLS20srIin4XDYTY7JzFQ
|
||||
X18vix0cpKUCAeOIgNHRUZqentb6mUfITM5ioLa2lpqarDJYJJ2dnWyfTGQthvsTMMuocH284Flsd3eX
|
||||
SktLKS8vzyLz/CyorOwPxSYmJqirq8sigom7t7cnf8re3vQcwzN8xmW5xVZsZmZGHracTCQS0dph8vf0
|
||||
pKUAFgLa4pk+0wsGMezIjY2NFpm+vj65tPVtQU1NDYVCRikVbCHou7W1ZennBoOYuvQBNkanm8Dx8bFs
|
||||
hyOHEwN1dUoWNmMuwwmDWHNzM0WjUUMDDvV+lkjwQnpwbPn9fnp8fGSz7HA1+fXEYjEplUzyImZw0KM9
|
||||
9jQuzw7PYpiD5eWCvr54EY54XJHDlYnL5PAk1tHR8T0P+eKZiEYVOYw4l23GtRjOOgRzRd0yMKDI7e/v
|
||||
szX0uBI7Pz+XgevrfEEv4IUGWVwdPRnF7u/vZdDODl8oG3w+XIuCbD0VR7HLy0t5JuqvND/B66syaniZ
|
||||
5uoCR7FQKCQDXl74ArkQiSjvAtfX12xtW7HBwUEqKfG2LXgFf9jgi2PDNtdnxRYWFmQHnHe/jd1isIip
|
||||
b0B/Df4sTHuk6B/rrIep2LXHGgAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="flowMeterPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAN+SURBVFhHtZi5SgRBEIbbW8QjkRXBKxPWEwRF1EjQSBDE
|
||||
RFBxDdRdEDxBUDDyJXwBH8DAzNxQQdDIR9g3aOfv3emp6qkd5zL4PHqqqn/6qO5qVa1WdVwqlYpWSqVG
|
||||
iumztrZm2NraqtlLRo3IW9j6+rphZGQkbO8aS3x8fOiDg4Owc0ImJib04+OjjYvR8Tk5OeH2VIBEuVzm
|
||||
DqC9XauODq3u76MZH6/Zuf4en5+f+ufnx7Czs8O+tba2RgsbR2DiYNjb0+ruThbSCPj097M46ByiNjY2
|
||||
WPvKyopZa6Kwl5cXY2AdOju1mp+XO03C7q5WU1NMiM/g4KD++vrSs7OzjYUxUZg2qZMsjI0xUT09PXZa
|
||||
8T80hISFpu/8XA6ehclJ1kdLS0u0MLbQMVL/IWpxMeiD0Oktl+/vb6vFCkNKsIZYU1LQrFBRXV21NjKt
|
||||
T09PYWEsT+Wx0F28HGbjg+vr4BtpDwmjH1nAPFhYCGJjpKgogIGofz87OwuEsV2InEOdsrK0FMT2dp9o
|
||||
A3wbDytsYGCg1ogFf3srO6bB2X3q5ka2A9vb1s4Ks45xjpm4zM0FcbGZrq5kO5/9fWtfLBYdYZJDGpaX
|
||||
g5i9vbKNRP1cLRQKWnV3d+crbHo6iAeSLI26sKamJvwmQSTjJHjnnI2FG8LFhWzXCH4TsX/IxnGhO7uv
|
||||
T7b5C1HYzIxsHAc6UkCyiUOuI+ZeY5JOHyU3YXT3pZ0+ChWWOl3QPIWFLtkkpS7MpAsmDHcxycHFzeiX
|
||||
l7JdEo6PtWpuNvGssC4crOgAiiUnCj37kDzzOsJI5n94eKgJGxoaCjqLOsTpLSHvO5sf18PMIn68vr4G
|
||||
H1DNSI7u9P119iUBxUc9LgoRKwyYg9PvFNUMdaQ3T1xdom4JaSAz9vz8zIWhQrad47zznaTrcJ6cntr4
|
||||
o6OjRgsTZv7xBQDPKPI6nAcofuo7Eby/v8vCULa3tbVxMUC6DmcFy4X0sedtOqqFCbONxMEgBc6C8x5S
|
||||
KpXCGtwG9y3BgGmVOkgD1hSZPuBqAEwYfXVB2Y4KmQbIVNYhJQwPs3iHh4dMDMUKo+9TeODw21Eh02AG
|
||||
FA7I1JIAytERy+gUd025GGGbm5vMCa8uvgHKdlTI9LsFR1gUzpQBpAS6+xqh7JunR4cX7O3tTTQEq6ur
|
||||
rJOk+MkzDp59zYlOXyP+83GYU9W/sZE2jpG87/4AAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="watermeterPictureBox4.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAIGSURBVFhH7de/SwJhGAfwtwJpUlBwaVIEcXDVxcUxQaS1
|
||||
QdLVwTnQv0AcGgUdo9U1dNAWHVwiEQKFaAkCwZqq5el53rvT03v8cXqeDQ0fjXu97/PFO+w9MZlMYFO1
|
||||
Wg2EEJbg8vX+iy3i8vW2KHaEznbkgm63C6PRiJ1DtijmQLCjMRLg8/mgUqmwsw5UTEN5UfD7/ZDL5eZm
|
||||
mSqWz+cxyMpimhZS7r12uy1n4d/GG3O5Y8QFWyWCTpCcRy8lRK3XeUJcoJVGaFrsXj34V9hYrFrtQSj0
|
||||
wa4Z2VgsGh1Dq9WS79z6PBuLkUbjQZZLJN7Y9ZkVxYrFgQzZl3j83TBz5oDFms02uN3fhrmKAxbzer8M
|
||||
M2dWFNsH7R4Lh+mXnf+MwsZi6fSLLBUMfrLr82wsVio9ssd5NhYzZ1rsEhXVg4dA3ybN12CnSCQCRCkY
|
||||
UP0gLmAfnpGQHfQM+zGlIO257hAXZLUMJJPJuQ6yx+KBfr+P/3CreAIVTOoC9uEK8Q8mS3ew5XIZYrEY
|
||||
nuhCN2qQlQZIQL1eZ+ev3VoHAgFwOOjSXqNXNXRXSqlOp8POJBvt+Xu9ngwS4lQN3oVy+egJybLHt2w2
|
||||
K0OFOFeHmJFByn5+2eXTM1WMDIdD8Hg8coAQtyquCKGfHVq/kOekUik2k2O6mKZQKOBAKrea0+nE7Y2b
|
||||
zVhuAr/Ce2bVcGWw1gAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="watermeterPictureBox3.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAIGSURBVFhH7de/SwJhGAfwtwJpUlBwaVIEcXDVxcUxQaS1
|
||||
QdLVwTnQv0AcGgUdo9U1dNAWHVwiEQKFaAkCwZqq5el53rvT03v8cXqeDQ0fjXu97/PFO+w9MZlMYFO1
|
||||
Wg2EEJbg8vX+iy3i8vW2KHaEznbkgm63C6PRiJ1DtijmQLCjMRLg8/mgUqmwsw5UTEN5UfD7/ZDL5eZm
|
||||
mSqWz+cxyMpimhZS7r12uy1n4d/GG3O5Y8QFWyWCTpCcRy8lRK3XeUJcoJVGaFrsXj34V9hYrFrtQSj0
|
||||
wa4Z2VgsGh1Dq9WS79z6PBuLkUbjQZZLJN7Y9ZkVxYrFgQzZl3j83TBz5oDFms02uN3fhrmKAxbzer8M
|
||||
M2dWFNsH7R4Lh+mXnf+MwsZi6fSLLBUMfrLr82wsVio9ssd5NhYzZ1rsEhXVg4dA3ybN12CnSCQCRCkY
|
||||
UP0gLmAfnpGQHfQM+zGlIO257hAXZLUMJJPJuQ6yx+KBfr+P/3CreAIVTOoC9uEK8Q8mS3ew5XIZYrEY
|
||||
nuhCN2qQlQZIQL1eZ+ev3VoHAgFwOOjSXqNXNXRXSqlOp8POJBvt+Xu9ngwS4lQN3oVy+egJybLHt2w2
|
||||
K0OFOFeHmJFByn5+2eXTM1WMDIdD8Hg8coAQtyquCKGfHVq/kOekUik2k2O6mKZQKOBAKrea0+nE7Y2b
|
||||
zVhuAr/Ce2bVcGWw1gAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="watermeterPictureBox2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACYAAAAeCAYAAABAFGxuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAIGSURBVFhH7de/SwJhGAfwtwJpUlBwaVIEcXDVxcUxQaS1
|
||||
QdLVwTnQv0AcGgUdo9U1dNAWHVwiEQKFaAkCwZqq5el53rvT03v8cXqeDQ0fjXu97/PFO+w9MZlMYFO1
|
||||
Wg2EEJbg8vX+iy3i8vW2KHaEznbkgm63C6PRiJ1DtijmQLCjMRLg8/mgUqmwsw5UTEN5UfD7/ZDL5eZm
|
||||
mSqWz+cxyMpimhZS7r12uy1n4d/GG3O5Y8QFWyWCTpCcRy8lRK3XeUJcoJVGaFrsXj34V9hYrFrtQSj0
|
||||
wa4Z2VgsGh1Dq9WS79z6PBuLkUbjQZZLJN7Y9ZkVxYrFgQzZl3j83TBz5oDFms02uN3fhrmKAxbzer8M
|
||||
M2dWFNsH7R4Lh+mXnf+MwsZi6fSLLBUMfrLr82wsVio9ssd5NhYzZ1rsEhXVg4dA3ybN12CnSCQCRCkY
|
||||
UP0gLmAfnpGQHfQM+zGlIO257hAXZLUMJJPJuQ6yx+KBfr+P/3CreAIVTOoC9uEK8Q8mS3ew5XIZYrEY
|
||||
nuhCN2qQlQZIQL1eZ+ev3VoHAgFwOOjSXqNXNXRXSqlOp8POJBvt+Xu9ngwS4lQN3oVy+egJybLHt2w2
|
||||
K0OFOFeHmJFByn5+2eXTM1WMDIdD8Hg8coAQtyquCKGfHVq/kOekUik2k2O6mKZQKOBAKrea0+nE7Y2b
|
||||
zVhuAr/Ce2bVcGWw1gAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
<data name="pumpPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAACYAAAAmCAYAAACoPemuAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAALTSURBVFhH7Ze9ajJBFIbXP0iRBAL+QMDa3hRqIbkAQSw1
|
||||
iCRaWHgHuQBLwU7SpLBKaRmSXhOwScQmZW5AUqWb7Lt6ds7uHmMkO3x8kOKBXefMOw/O7jLHWq1W6jdE
|
||||
IhFlWVYAqXYf9hbLZDIOXKJUKqlms+nCx+LxuFM/Ho/FvG38SGw6napGo+FZsN/v/4hqterOSaVSqtfr
|
||||
iWv42SlWLBY9QoQkIcHFOMvlUlyP+FYsl8uJoUCSkNgmhi2W1iREsdFopMrlshtycmLZW2Cp62sdLElI
|
||||
cLH7e0tdXOiMWCymKpVKYH0ginGp01NLKbXmt2KUc35uqcNDnTWfzwMOATG+fbe3OixMMfD+rrPwz/k9
|
||||
PGL8Qef/FBGmGHh+1nl45haLRVAMnwQqwjPlDwFhiwFsK40PBoOgGP9O4UGXQkyIARoHATEaaLflycCU
|
||||
GN5WqqnX6+Sjf4zFLPX0JE8GpsRALqezN+iboyN5EmFS7PFRZ2/QN9IEjkkxcHys8230jVTM+SdijYZc
|
||||
zDEt9vGh823WF62WXMwxLQao1mZ98Se2A6q1WV/8ie2Aam30jVTIMS32f33HwM2NPIEwKYaD48GBzrfQ
|
||||
80WjUecGx93PT3kiMCl2d6ezHXDEQDNKPzw8yBOBSTGqKRQKajKZ6PNYMpl0B3E+kiabEiuVdO5wOPQe
|
||||
FNEh0yBaLCnAhNjbm85MJBKOi0fMudkUAJzF/SFhi728oAnRmbPZTBZD2w5rFOFFwJvCg8IWu7zUea1W
|
||||
y/UAHjECfR5NQItFQWGJvb5a6upKZ7Xb7YCDKIa2nSYB2tYwxPBM8e0DkoMoBtC2838OnJ3pa0lCgovx
|
||||
tw90Oh1xbbBVjECHzMMISUKCi3H8z5SfnWJo29Eh+4MlCQm/GF4u/vZtY6cYB80oLZDP51263a5Hho9l
|
||||
s1mnHl90+nj+hL3EOOl02oFE/dB4rVYT53/PSn0BMb7xlEsaQlIAAAAASUVORK5CYII=
|
||||
</value>
|
||||
</data>
|
||||
<data name="reservoirPictureBox.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
iVBORw0KGgoAAAANSUhEUgAAAI4AAABtCAYAAAB3LVkkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
|
||||
YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAEuSURBVHhe7dIxDoAwEAQx/v/pQFJQBaRM7ZN8zbZzPTcg
|
||||
mG/AAeGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIc
|
||||
EuGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQ
|
||||
CIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQCIdE
|
||||
OCTCIREOiXBIhEMiHJIVzm6AP8IhEQ6JcEiEQyIcEuGQCIdEOCTCIREOiXBIhEMiHBLhkKxw5tuN8EU4
|
||||
JMIhEQ6JcEiEQyIcEuGQCIdEOCTCIXnDgRPXuAF1p5ji1T6jKwAAAABJRU5ErkJggg==
|
||||
</value>
|
||||
</data>
|
||||
</root>
|
||||
Loading…
Reference in New Issue
Block a user