diff --git a/Common/Formulas.cs b/Common/Formulas.cs index 3a25c929e..5143eeebe 100644 --- a/Common/Formulas.cs +++ b/Common/Formulas.cs @@ -213,9 +213,9 @@ namespace Common /// 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; diff --git a/TBF/Properties/AssemblyInfo.cs b/TBF/Properties/AssemblyInfo.cs index 549270949..1c3e8f2f0 100644 --- a/TBF/Properties/AssemblyInfo.cs +++ b/TBF/Properties/AssemblyInfo.cs @@ -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")] diff --git a/TBF/TBF.csproj b/TBF/TBF.csproj index 86f40371c..3790d0f2a 100644 --- a/TBF/TBF.csproj +++ b/TBF/TBF.csproj @@ -2372,12 +2372,6 @@ ProcessTabPageCtrl6.cs - - UserControl - - - ProcessTabPageExCtrl.cs - Form @@ -3268,9 +3262,6 @@ ProcessTabPageCtrl6.cs - - ProcessTabPageExCtrl.cs - DeleteFromOracleForm.cs diff --git a/TBF/UI/Process/ProcessTabPageCtrl.cs b/TBF/UI/Process/ProcessTabPageCtrl.cs index d8297ac68..e5c37535b 100644 --- a/TBF/UI/Process/ProcessTabPageCtrl.cs +++ b/TBF/UI/Process/ProcessTabPageCtrl.cs @@ -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(); } } } diff --git a/TBF/UI/Process/ProcessTabPageExCtrl.Designer.cs b/TBF/UI/Process/ProcessTabPageExCtrl.Designer.cs deleted file mode 100644 index c9f48ac8b..000000000 --- a/TBF/UI/Process/ProcessTabPageExCtrl.Designer.cs +++ /dev/null @@ -1,913 +0,0 @@ -/// -/// Copyright (c) 2019 Sensus Slovensko a.s. -/// -namespace TBF.UI.Process -{ - partial class ProcessTabPageExCtrl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - 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; - - - - } -} diff --git a/TBF/UI/Process/ProcessTabPageExCtrl.cs b/TBF/UI/Process/ProcessTabPageExCtrl.cs deleted file mode 100644 index fe956858b..000000000 --- a/TBF/UI/Process/ProcessTabPageExCtrl.cs +++ /dev/null @@ -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; - - /// - /// Constructor, initializes anonymous event handlers - /// - 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(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(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(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(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(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); - } - - /// - /// Update 'currentMetersKind' variable and visibility of UI items. - /// - /// New value - /// true = always update UI - 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); - } - } - } - } - - - /// - /// Called when a new procedure is selected - /// - 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 = "---"; - } - } - } - - - /// - /// Called when a new procedure or a new test procedure is selected - /// - 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)); - } - } -} diff --git a/TBF/UI/Process/ProcessTabPageExCtrl.resx b/TBF/UI/Process/ProcessTabPageExCtrl.resx deleted file mode 100644 index 0b22fe6b7..000000000 --- a/TBF/UI/Process/ProcessTabPageExCtrl.resx +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - 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 - zVhuAr/Ce2bVcGWw1gAAAABJRU5ErkJggg== - - - - - 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== - - - - - 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== - - - - - 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= - - - - - iVBORw0KGgoAAAANSUhEUgAAAI4AAABtCAYAAAB3LVkkAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAJcEhZcwAADrwAAA68AZW8ckkAAAEuSURBVHhe7dIxDoAwEAQx/v/pQFJQBaRM7ZN8zbZzPTcg - mG/AAeGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIc - EuGQCIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQ - CIdEOCTCIREOiXBIhEMiHBLhkAiHRDgkwiERDolwSIRDIhwS4ZAIh0Q4JMIhEQ6JcEiEQyIcEuGQCIdE - OCTCIREOiXBIhEMiHJIVzm6AP8IhEQ6JcEiEQyIcEuGQCIdEOCTCIREOiXBIhEMiHBLhkKxw5tuN8EU4 - JMIhEQ6JcEiEQyIcEuGQCIdEOCTCIXnDgRPXuAF1p5ji1T6jKwAAAABJRU5ErkJggg== - - - \ No newline at end of file