diff --git a/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs b/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
index 176fdf08f..1ae0b90f1 100644
--- a/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
+++ b/TestBenchFramework/BenchControl/Elde/ControlBoardDev.cs
@@ -56,7 +56,7 @@ namespace TBF.BenchControl.Elde
public float RValvePosition(int rvNr1) { return controlCom.RValvePosition(rvNr1); }
public float DivSamples(int ms) { return controlCom.DivSamples(ms); }
public int ScopeSamples(int i, int j, int k) { return controlCom.ScopeSamples(i, j, k); }
- public uint DigitalInputs { get { return controlCom.DigitalInputs; } }
+ public ulong DigitalInputs { get { return controlCom.DigitalInputs; } }
public float AnalogInput(int adcNr0) { return controlCom.AnalogInput(adcNr0); }
public uint AnalogInputRaw(int adcNr0, int bank) { return controlCom.AnalogInputRaw(adcNr0, bank); } /// adcNr0: 0=RV1, 1=RV2,... bank: 0=RV, 1=Temp
public float ReferenceVolume { get { return controlCom.ReferenceVolume; } }
diff --git a/TestBenchFramework/BenchControl/Elde/ControlComSim.cs b/TestBenchFramework/BenchControl/Elde/ControlComSim.cs
index e9f6476ad..ee7d3be38 100644
--- a/TestBenchFramework/BenchControl/Elde/ControlComSim.cs
+++ b/TestBenchFramework/BenchControl/Elde/ControlComSim.cs
@@ -63,7 +63,7 @@ namespace TBF.BenchControl.Elde
public float RValvePosition(int rvNr1) { return 0; }
public float DivSamples(int ms) { return 0; }
public int ScopeSamples(int i, int j, int k) { return 0; }
- public uint DigitalInputs { get { return 0; } }
+ public ulong DigitalInputs { get { return 0; } }
public float AnalogInput(int adcNr0) { return 0; }
public uint AnalogInputRaw(int adcNr0, int bank) { return 0; } /// bank0=RV, bank1=Temp
public float ReferenceVolume { get { return 0; } }
diff --git a/TestBenchFramework/BenchControl/Elde/ControlComWrap.cs b/TestBenchFramework/BenchControl/Elde/ControlComWrap.cs
index 206d1b541..b53e651b7 100644
--- a/TestBenchFramework/BenchControl/Elde/ControlComWrap.cs
+++ b/TestBenchFramework/BenchControl/Elde/ControlComWrap.cs
@@ -51,7 +51,7 @@ namespace TBF.BenchControl.Elde
}
public float DivSamples(int ms) { return ctrlBrdComponent.DIVSamples[ms, 0]; }
public int ScopeSamples(int i, int j, int k) { return ctrlBrdComponent.ScopeSamples[i, j, k]; }
- public uint DigitalInputs { get { return ctrlBrdComponent.Vstupy; } }
+ public ulong DigitalInputs { get { return (ulong)ctrlBrdComponent.Vstupy; } }
public float AnalogInput(int adcNr0) { return ctrlBrdComponent.Analogy[adcNr0]; }
public uint AnalogInputRaw(int adcNr0, int bank) { return ctrlBrdComponent.AnalogyRaw[adcNr0, bank]; } /// bank0=RV, bank1=Temp
public float ReferenceVolume { get { return ctrlBrdComponent.ReferenceVolume; } }
diff --git a/TestBenchFramework/BenchControl/Elde/IControlCom.cs b/TestBenchFramework/BenchControl/Elde/IControlCom.cs
index 910d1fdd9..0836a0a90 100644
--- a/TestBenchFramework/BenchControl/Elde/IControlCom.cs
+++ b/TestBenchFramework/BenchControl/Elde/IControlCom.cs
@@ -25,7 +25,7 @@ namespace TBF.BenchControl.Elde
float RValvePosition(int rvNr1);
float DivSamples(int ms);
int ScopeSamples(int i, int j, int k);
- uint DigitalInputs { get; }
+ ulong DigitalInputs { get; }
float AnalogInput(int adcNr0);
uint AnalogInputRaw(int adcNr0, int bank);
float ReferenceVolume { get; }
diff --git a/TestBenchFramework/BenchControl/TbfComponents.cs b/TestBenchFramework/BenchControl/TbfComponents.cs
index fab85f431..5bfea50eb 100644
--- a/TestBenchFramework/BenchControl/TbfComponents.cs
+++ b/TestBenchFramework/BenchControl/TbfComponents.cs
@@ -42,7 +42,8 @@ namespace TBF.BenchControl
Factories.Add(new Cameras.IdcCamera.IdcCameraFactory());
Factories.Add(new WaterMeters.iPerl.WaterMeterFactory()); /// iPerl
Factories.Add(new TestMethods.iPerlAdjustment.TestMethodFactory()); /// iPerlAdjustment
- Factories.Add(new TestMethods.LeakTest.TestMethodFactory());
+ Factories.Add(new TestMethods.iPerlCommunication.TestMethodFactory()); /// iPerlCommunication
+ Factories.Add(new TestMethods.LeakTest.TestMethodFactory());
Factories.Add(new MettlerToledo.Standard.BalanceFactory()); /// MettlerToledo Balance
Factories.Add(new MettlerToledo.Standard.BalanceNewFactory()); /// MettlerToledoBalanceSN
Factories.Add(new MettlerToledo.Multi.BalanceFactory()); /// MettlerToledo-Multi
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.cs
similarity index 89%
rename from TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.cs
rename to TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.cs
index 484631da5..425036543 100644
--- a/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.cs
@@ -13,9 +13,9 @@ using TBF.BenchControl.WaterMeters.iPerl;
namespace TBF.BenchControl.TestMethods.iPerlAdjustment
{
- public partial class iPerlCommunicationForm : Form, GenericDevices.IHasCompleted
+ public partial class iPerlAdjustmentForm : Form, GenericDevices.IHasCompleted
{
- private static readonly ILog log = LogManager.GetLogger(typeof(iPerlCommunicationForm));
+ private static readonly ILog log = LogManager.GetLogger(typeof(iPerlAdjustmentForm));
[DllImport("libRfid.dll", EntryPoint = "getDllVersion")]
@@ -92,7 +92,7 @@ namespace TBF.BenchControl.TestMethods.iPerlAdjustment
/// Parameterless constructor for 3 watermeters
- public iPerlCommunicationForm()
+ public iPerlAdjustmentForm()
{
InitializeComponent();
@@ -151,7 +151,7 @@ namespace TBF.BenchControl.TestMethods.iPerlAdjustment
/// Constructor
///
/// Number of text boxes for serial numbers
- public iPerlCommunicationForm(IList waterMeters)
+ public iPerlAdjustmentForm(IList waterMeters)
: this()
{
this.WaterMetersCount = waterMeters.Count;
@@ -322,8 +322,6 @@ namespace TBF.BenchControl.TestMethods.iPerlAdjustment
private void readConfigBtn_Click(object sender, EventArgs e)
{
- byte[] data;
-
int i = 0;
for (int group = 1; group <= 10; group++)
@@ -336,23 +334,35 @@ namespace TBF.BenchControl.TestMethods.iPerlAdjustment
foreach (var wm in WaterMeters)
{
- if (wm.DebugLevel == Entities.DebugMode.Normal && wm.Group == group)
+ if (wm.Group == group)
{
- int r1 = openPort((uint)wm.RfidComPortNr);
- int r2 = ReadRequestPort(MessageID.Configuration, 0, ConfigStruct.Length, out data, 1000);
- int r3 = closePort();
+ Text = string.Format("WM={0} Group={1}", wm.Name, group);
+ if (wm.DebugLevel == Entities.DebugMode.Normal)
+ {
+ byte[] data = null;
+ bool success = false;
+ int r1 = openPort((uint)wm.RfidComPortNr);
+ for (int j = 0; j < 3; j++)
+ {
+ if (0 == ReadRequestPort(MessageID.Configuration, 0, ConfigStruct.Length, out data, 1000))
+ {
+ success = true;
+ break;
+ }
+ }
+ closePort();
- if (r1==0 && r2==0 && r3==0)
- {
- errors[i++].Text = ConfigStruct.FromByteArray(data).ToString();
+ if (r1 == 0 && success && data != null)
+ {
+ errors[i].Text = ConfigStruct.FromByteArray(data).ToString(1);
+ }
+ else
+ {
+ errors[i].Text = "Cannot read configuration";
+ }
}
- else
- {
- errors[i++].Text = "Cannot read configuration";
- }
- }
- else
i++;
+ }
}
}
}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.designer.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.designer.cs
similarity index 99%
rename from TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.designer.cs
rename to TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.designer.cs
index 39c5f1e10..13b14acfc 100644
--- a/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.designer.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.designer.cs
@@ -3,7 +3,7 @@
///
namespace TBF.BenchControl.TestMethods.iPerlAdjustment
{
- partial class iPerlCommunicationForm
+ partial class iPerlAdjustmentForm
{
///
/// Required designer variable.
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.resx b/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.resx
similarity index 100%
rename from TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlCommunicationForm.resx
rename to TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentForm.resx
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentSeq.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentSeq.cs
index 63c755d57..ba534f0b7 100644
--- a/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlAdjustment/iPerlAdjustmentSeq.cs
@@ -20,9 +20,9 @@ namespace TBF.BenchControl.TestMethods.iPerlAdjustment
///
delegate void ErrorsFormDlgt(iPerlAdjustmentSeq myRef);
///
- void OpenWMErrorsForm(iPerlAdjustmentSeq myRef)
+ void OpenIPerlCommForm(iPerlAdjustmentSeq myRef)
{
- myRef.modelessDlg = new iPerlCommunicationForm(WaterMeters);
+ myRef.modelessDlg = new iPerlAdjustmentForm(WaterMeters);
modelessDlg.Show();
}
@@ -75,7 +75,7 @@ namespace TBF.BenchControl.TestMethods.iPerlAdjustment
///
/// Show the modeless dialog with error indication
///
- Program.MainWnd.Invoke(new ErrorsFormDlgt(OpenWMErrorsForm), this);
+ Program.MainWnd.Invoke(new ErrorsFormDlgt(OpenIPerlCommForm), this);
loop:
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/AllCompletedEventArgs.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/AllCompletedEventArgs.cs
new file mode 100644
index 000000000..1832ed383
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/AllCompletedEventArgs.cs
@@ -0,0 +1,18 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public class AllCompletedEventArgs : EventArgs
+ {
+ public string CommMessage;
+
+ public AllCompletedEventArgs(string commMessage)
+ {
+ this.CommMessage = commMessage;
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/CommCompletedEventArgs.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/CommCompletedEventArgs.cs
new file mode 100644
index 000000000..4a86cc4f2
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/CommCompletedEventArgs.cs
@@ -0,0 +1,22 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public class CommCompletedEventArgs : EventArgs
+ {
+ public int ThreadId;
+ public int WMNr;
+ public string CommMessage;
+
+ public CommCompletedEventArgs(int threadId, int wmNr, string commMessage)
+ {
+ this.ThreadId = threadId;
+ this.WMNr = wmNr;
+ this.CommMessage = commMessage;
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethod.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethod.cs
new file mode 100644
index 000000000..fcddebb1a
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethod.cs
@@ -0,0 +1,39 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+using System.Collections.Generic;
+using log4net;
+using TBF.BenchControl;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public class TestMethod : ComponentBase, GenericDevices.ITestMethod
+ {
+ private static readonly ILog log = LogManager.GetLogger(typeof(TestMethod));
+ public override string ToString() { return string.Format("TestMethods.Adjustment({0})", Cfg.ToString(1)); }
+
+ readonly TestMethodCfg testMethodCfg;
+
+ public bool Evaluate { get { return false; } }
+ public bool Publish { get { return false; } }
+ public bool CanTest(Entities.MetersKind meters) { return meters == Entities.MetersKind.Single; }
+
+ public TestMethod()
+ {
+ }
+
+ public TestMethod(TestMethodCfg cfg)
+ : base(cfg)
+ {
+ testMethodCfg = cfg;
+ log.Debug(this.ToString());
+ }
+
+ public IList Execute(Entities.Test test)
+ {
+ return (new iPerlCommunicationSeq()).Execute(test, testMethodCfg.TestParams);
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs
new file mode 100644
index 000000000..00f7e2f6f
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfg.cs
@@ -0,0 +1,48 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Xml.Serialization;
+using TBF.BenchControl.Generic;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public class TestMethodCfg : ComponentCfgBase, Generic.IComponentCfg
+ {
+ public IComponent GetComponent(IList components) { return new TestMethod(this); }
+ public IComponentCfgCtrl GetControl() { return new TestMethodCfgCtrl(); }
+
+ /// Test parameters
+ [XmlIgnore]
+ public iPerlCommunicationParams TestParams;
+ public override IParamsProvider GetTestParams() { return TestParams; }
+ public override IParamsProvider CreateTestParams(Entities.Test test)
+ {
+ iPerlCommunicationParams testParams = new iPerlCommunicationParams();
+ testParams.UpdateTestParams(Name, test);
+ return testParams;
+ }
+
+ /// Private parameterless constructor invoked by all other (public) constructors
+ TestMethodCfg()
+ {
+ Name = "iPerlCommunication";
+ ParentName = string.Empty;
+ TestParams = new iPerlCommunicationParams();
+ }
+
+ public TestMethodCfg(IComponentFactory factory)
+ : this()
+ {
+ this.Factory = factory;
+ }
+
+ public string ToString(int i)
+ {
+ return string.Format("Name={0}", Name);
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.cs
new file mode 100644
index 000000000..fd6949ab6
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.cs
@@ -0,0 +1,72 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+using System.Windows.Forms;
+using log4net;
+using TBF.BenchControl.Generic;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public partial class TestMethodCfgCtrl : UserControl, IComponentCfgCtrl
+ {
+ static readonly ILog log = LogManager.GetLogger(typeof(TestMethodCfgCtrl));
+
+ public bool ShowMore { get { return false; } }
+
+ TestMethodCfg config;
+ public IComponentCfg Config
+ {
+ get { return config as IComponentCfg; }
+ set
+ {
+ config = value as TestMethodCfg;
+ Redraw();
+ }
+ }
+
+ public TestMethodCfgCtrl()
+ {
+ InitializeComponent();
+ }
+
+ private void EntryFormCfgCtrl_Load(object sender, EventArgs e)
+ {
+ Redraw();
+ }
+
+ public void Closing()
+ {
+ }
+
+ void Redraw()
+ {
+ if (config == null) return; /// Control was not loaded, settings were not changed
+ classNameLabel.Text = config.Factory.ClassName;
+ nameTextBox.Text = config.Name;
+ }
+
+ public void Unlock()
+ {
+ nameTextBox.Enabled = true;
+ }
+
+ public CfgUpdateFlags VerifyCfg(ref string message)
+ {
+ CfgUpdateFlags flags = CfgUpdateFlags.None;
+ return flags;
+ }
+
+ public CfgUpdateFlags UpdateCfg()
+ {
+ CfgUpdateFlags flags = CfgUpdateFlags.RestartRqrd;
+
+ if (config == null) return CfgUpdateFlags.Error; /// Control was not loaded, settings were not changed
+
+ config.Name = nameTextBox.Text;
+
+ return flags;
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.designer.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.designer.cs
new file mode 100644
index 000000000..2ddc2bb1d
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.designer.cs
@@ -0,0 +1,87 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ partial class TestMethodCfgCtrl
+ {
+ ///
+ /// 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()
+ {
+ this.nameTextBox = new System.Windows.Forms.TextBox();
+ this.nameLabel = new System.Windows.Forms.Label();
+ this.classNameLabel = new System.Windows.Forms.Label();
+ this.SuspendLayout();
+ //
+ // nameTextBox
+ //
+ this.nameTextBox.Enabled = false;
+ this.nameTextBox.Location = new System.Drawing.Point(137, 57);
+ this.nameTextBox.Name = "nameTextBox";
+ this.nameTextBox.Size = new System.Drawing.Size(130, 20);
+ this.nameTextBox.TabIndex = 5;
+ //
+ // nameLabel
+ //
+ this.nameLabel.AutoSize = true;
+ this.nameLabel.Location = new System.Drawing.Point(27, 60);
+ this.nameLabel.Name = "nameLabel";
+ this.nameLabel.Size = new System.Drawing.Size(35, 13);
+ this.nameLabel.TabIndex = 4;
+ this.nameLabel.Text = "Name";
+ //
+ // classNameLabel
+ //
+ this.classNameLabel.AutoSize = true;
+ this.classNameLabel.Location = new System.Drawing.Point(134, 33);
+ this.classNameLabel.Name = "classNameLabel";
+ this.classNameLabel.Size = new System.Drawing.Size(83, 13);
+ this.classNameLabel.TabIndex = 3;
+ this.classNameLabel.Text = "ComonentName";
+ //
+ // BasicPrinterCfgCtrl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.Controls.Add(this.nameTextBox);
+ this.Controls.Add(this.nameLabel);
+ this.Controls.Add(this.classNameLabel);
+ this.Name = "BasicPrinterCfgCtrl";
+ this.Size = new System.Drawing.Size(300, 200);
+ this.Load += new System.EventHandler(this.EntryFormCfgCtrl_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox nameTextBox;
+ private System.Windows.Forms.Label nameLabel;
+ private System.Windows.Forms.Label classNameLabel;
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.resx b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.resx
new file mode 100644
index 000000000..1af7de150
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodCfgCtrl.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
\ No newline at end of file
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodFactory.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodFactory.cs
new file mode 100644
index 000000000..f2ee8153a
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/TestMethodFactory.cs
@@ -0,0 +1,24 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using TBF.BenchControl.Generic;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public class TestMethodFactory : IComponentFactory
+ {
+ public string ClassName { get { return "iPerlCommunication"; } }
+
+ public void ResetStaticProperties() { TestMethod.ResetStaticProperties(); }
+
+ public IComponent DummyComponent() { return new TestMethod(); }
+
+ public IComponentCfg DefaultConfig() { return new TestMethodCfg(this); }
+
+ public IComponentCfg CmpntCfgFromCmpntEntity(Entities.Component component)
+ {
+ return ComponentCfgBase.CreateFromDbEntity(typeof(TestMethodCfg), component, this);
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs
new file mode 100644
index 000000000..79be0dbf0
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.cs
@@ -0,0 +1,546 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+using System.Collections.Generic;
+using System.Drawing;
+using System.Runtime.InteropServices;
+using System.Threading;
+using System.Windows.Forms;
+using log4net;
+using TBF.Resources;
+using TBF.BenchControl.WaterMeters.iPerl;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public partial class iPerlCommunicationForm : Form, GenericDevices.IHasCompleted
+ {
+ private static readonly ILog log = LogManager.GetLogger(typeof(iPerlCommunicationForm));
+
+#region DLL_Interface
+
+ [DllImport("libRfid.dll", EntryPoint = "getDllVersion")]
+ public static extern unsafe int getDllVersion();
+
+ [DllImport("libRfid.dll", EntryPoint = "openPort")]
+ static extern unsafe int openPort(int comPort);
+
+ [DllImport("libRfid.dll", EntryPoint = "closePort")]
+ static extern unsafe int closePort();
+
+ [DllImport("libRfid.dll", EntryPoint = "readRequestPort")]
+ static extern unsafe int readRequestPort(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
+
+ [DllImport("libRfid.dll", EntryPoint = "writeRequestPort")]
+ static extern unsafe int writeRequestPort(MessageID messageId, int offset, int lenght, byte* ptr, int timeout_ms);
+
+ ///
+ /// Wrapper function with safe interface adn unsafe body
+ ///
+ /// Value returned by readRequestPort(...)
+ public static unsafe int ReadRequestPort(MessageID messageID, int offset, int lenght, out byte[] buffer, int timeout)
+ {
+ byte[] buf = new byte[1000];
+ int retv;
+
+ fixed (byte* pBuf = buf)
+ {
+ retv = readRequestPort(messageID, offset, lenght, pBuf, timeout);
+
+ buffer = new byte[lenght];
+ for (int i = 0; i < lenght; i++) buffer[i] = buf[i];
+ }
+
+ return retv;
+ }
+
+ ///
+ /// Wrapper function with safe interface adn unsafe body
+ ///
+ /// Value returned by writeRequestPort(...)
+ public static unsafe int WriteRequestPort(MessageID messageID, int offset, int lenght, byte[] buffer, int timeout)
+ {
+ int retv;
+ fixed (byte* pBuf = buffer)
+ {
+ retv = writeRequestPort(messageID, offset, lenght, pBuf, timeout);
+ }
+ return retv;
+ }
+
+#endregion DLL_Interface
+
+
+ const int CommTimeout = 500;
+ const int MaxCommRetries = 3;
+
+
+ // Set to 'true' when the form closes
+ public bool Completed { get { return formCompleted; } }
+ bool formCompleted;
+
+ /// Number of text boxes for serial numbers
+ public readonly int WaterMetersCount;
+
+ readonly bool[] disabled;
+
+ Entities.TestResult tr;
+
+ int textBoxesCount;
+
+ Label[] labels;
+ TextBox[] messages;
+
+ static IList waterMeters;
+
+ Modbus.QuidoRS.QuidoRS quido;
+
+
+ ///
+ /// RFID multiplexer PCB / RFID serial port and worker thread related variables
+ ///
+ static string activity;
+ static int currentGroup; /// form -> worker thread (0 = none)
+ static int lastGroup;
+
+ static IList workerThreads;
+ static IList rfidPortNrs;
+ static IList stopWorkerThreads; /// form -> worker thread
+
+
+ /// Parameterless constructor for 3 watermeters
+ public iPerlCommunicationForm()
+ {
+ InitializeComponent();
+
+ textBoxesCount = 48;
+
+ labels = new Label[48]
+ {
+ wmLabel1, wmLabel2, wmLabel3, wmLabel4, wmLabel5,
+ wmLabel6, wmLabel7, wmLabel8, wmLabel9, wmLabel10,
+ wmLabel11, wmLabel12, wmLabel13, wmLabel14, wmLabel15,
+ wmLabel16, wmLabel17, wmLabel18, wmLabel19, wmLabel20,
+ wmLabel21, wmLabel22, wmLabel23, wmLabel24, wmLabel25,
+ wmLabel26, wmLabel27, wmLabel28, wmLabel29, wmLabel30,
+ wmLabel31, wmLabel32, wmLabel33, wmLabel34, wmLabel35,
+ wmLabel36, wmLabel37, wmLabel38, wmLabel39, wmLabel40,
+ wmLabel41, wmLabel42, wmLabel43, wmLabel44, wmLabel45,
+ wmLabel46, wmLabel47, wmLabel48,
+ };
+ messages = new TextBox[48]
+ {
+ wmTextBox1, wmTextBox2, wmTextBox3, wmTextBox4, wmTextBox5,
+ wmTextBox6, wmTextBox7, wmTextBox8, wmTextBox9, wmTextBox10,
+ wmTextBox11, wmTextBox12, wmTextBox13, wmTextBox14, wmTextBox15,
+ wmTextBox16, wmTextBox17, wmTextBox18, wmTextBox19, wmTextBox20,
+ wmTextBox21, wmTextBox22, wmTextBox23, wmTextBox24, wmTextBox25,
+ wmTextBox26, wmTextBox27, wmTextBox28, wmTextBox29, wmTextBox30,
+ wmTextBox31, wmTextBox32, wmTextBox33, wmTextBox34, wmTextBox35,
+ wmTextBox36, wmTextBox37, wmTextBox38, wmTextBox39, wmTextBox40,
+ wmTextBox41, wmTextBox42, wmTextBox43, wmTextBox44, wmTextBox45,
+ wmTextBox46, wmTextBox47, wmTextBox48,
+ };
+
+ currentGroup = 0;
+ lastGroup = 0; /// group numbers are >=1, lastGroup == 0 means no group
+
+ workerThreads = new List();
+ rfidPortNrs = new List();
+ stopWorkerThreads = new List();
+
+ formCompleted = false;
+ tr = null;
+
+ /// Find QuidoRS
+ foreach (var comp in StateMachine.Components)
+ {
+ if (comp is Modbus.QuidoRS.QuidoRS)
+ {
+ quido = comp as Modbus.QuidoRS.QuidoRS;
+ break;
+ }
+ }
+
+ /// Attach to 'CommCompleted' handler
+ CommCompletedHandler += delegate(object sender, CommCompletedEventArgs args)
+ {
+ if (InvokeRequired)
+ {
+ Invoke(new EventHandler(DoOnCommCompleted), sender, args);
+ }
+ else DoOnCommCompleted(sender, args);
+ };
+
+ /// Attach to 'AllCompleted' handler
+ AllCompletedHandler += delegate(object sender, AllCompletedEventArgs args)
+ {
+ if (InvokeRequired)
+ {
+ Invoke(new EventHandler(DoOnAllCompleted), sender, args);
+ }
+ else DoOnAllCompleted(sender, args);
+ };
+ }
+
+ ///
+ /// Constructor
+ ///
+ /// Number of text boxes for serial numbers
+ public iPerlCommunicationForm(IList waterMeters, string activity)
+ : this()
+ {
+ iPerlCommunicationForm.activity = activity;
+ this.WaterMetersCount = waterMeters.Count;
+ iPerlCommunicationForm.waterMeters = new List();
+ foreach (var wm in waterMeters)
+ {
+ WaterMeters.iPerl.WaterMeter iPerlWM = wm as WaterMeters.iPerl.WaterMeter;
+ iPerlCommunicationForm.waterMeters.Add(iPerlWM);
+ if (iPerlWM.Group > lastGroup) lastGroup = iPerlWM.Group;
+ if (!rfidPortNrs.Contains(iPerlWM.RfidComPortNr))
+ {
+ rfidPortNrs.Add(iPerlWM.RfidComPortNr);
+ if (workerThreads.Count < 1)
+ {
+ Thread thread = new Thread(iPerlCommunicationForm.Worker);
+ workerThreads.Add(thread);
+ stopWorkerThreads.Add(false);
+ thread.Start(); /// TODO: start with arguments: thread.Start(workerThreads.Count - 1);
+ }
+ }
+ }
+
+ activityLabel.Text = activity;
+
+ ShuffleTextBoxes(this.WaterMetersCount, Program.LineSize);
+
+ disabled = new bool[this.WaterMetersCount];
+ }
+
+
+ ///
+ /// Make sure the layout of labels/text boxes on the screen
+ /// corresponds to the layout of watermeters of the test bench.
+ ///
+ /// Number of watermeters
+ /// Number of watermeters in one line
+ void ShuffleTextBoxes(int wmsCount, int lineSize)
+ {
+ if (wmsCount < textBoxesCount && lineSize > 0)
+ {
+ int nrLines = (wmsCount + lineSize - 1) / lineSize;
+ int gap = (textBoxesCount - wmsCount) / nrLines;
+
+ int dest = 0;
+ for (int l = 0; l < nrLines; l++)
+ {
+ for (int i = 0; i < lineSize; i++)
+ {
+ labels[dest] = labels[l * lineSize + l * gap + i];
+ messages[dest] = messages[l * lineSize + l * gap + i];
+ dest++;
+ }
+ }
+ textBoxesCount = wmsCount;
+ }
+ }
+
+
+ void Localize()
+ {
+ Text = Strings.Water_Meter_States;
+ for (int i = 0; i < textBoxesCount; i++)
+ {
+ labels[i].Text = string.Format("iPerl{0}", i + 1);
+ }
+ }
+
+ private void iPerlCommunicationForm_Load(object sender, EventArgs e)
+ {
+ Localize();
+
+ //Height = 50 + 90 * WaterMetersCount;
+
+ for (int i = 0; i < textBoxesCount; i++)
+ {
+ if (disabled != null && i < disabled.Length && disabled[i])
+ {
+ labels[i].Visible = messages[i].Visible = false;
+ }
+ else
+ {
+ labels[i].Visible = messages[i].Visible = true;
+ messages[i].Text = "---";
+ }
+ }
+
+ ///
+ /// Set QuidoRS outputs and start the whole communication process
+ /// by incrementing 'currentGroup'.
+ ///
+ if (quido != null)
+ {
+ quido.SetOutputs((ushort)(16 - currentGroup - 1));
+ Thread.Sleep(200);
+ }
+ currentGroup++;
+ }
+
+ private void NormalClose()
+ {
+ CommCompletedHandler = null;
+ AllCompletedHandler = null;
+
+ formCompleted = true;
+
+ DialogResult = DialogResult.OK;
+ Close();
+ }
+
+ void OnAdjustmentInProgress(object sender, UiBridge.AdjustmentInProgressEventArgs args)
+ {
+ tr = args.TestResult;
+ Redraw();
+ }
+
+ void Redraw()
+ {
+ if (tr != null)
+ {
+ for (int i = 0; i < textBoxesCount; i++)
+ {
+ messages[i].Text = tr.Meters[i].VolumeErrorPct.ToString("F1");
+ }
+ }
+ }
+
+ private void WMErrorsForm_Paint(object sender, PaintEventArgs e)
+ {
+ //if (tr != null)
+ //{
+ // System.Drawing.Graphics graphics = this.CreateGraphics();
+
+ // for (int i = 0; i < WaterMetersCount; i++)
+ // {
+ // PaintOne(graphics, rects[i], tr.Meters[i].VolumeErrorPct, tr.ErrLimLo, tr.ErrLimHi);
+ // }
+ //}
+ }
+
+ #region Forced close handling
+
+ public void StartForceCloseHandler()
+ {
+ UiBridge.Bridge.CloseModelessFormHandler += delegate(object sender, EventArgs args)
+ {
+ if (InvokeRequired) { Invoke(new EventHandler(OnForceClose), sender, args); }
+ else OnForceClose(sender, args);
+ };
+ }
+
+ void OnForceClose(object sender, EventArgs args)
+ {
+ CommCompletedHandler = null;
+ AllCompletedHandler = null;
+
+ DialogResult = DialogResult.Cancel;
+ Close();
+ }
+
+ #endregion
+
+
+ static void Worker()
+ {
+ int threadId = 0;
+ int rfidPortNr = rfidPortNrs[threadId];
+
+ for (int group = 1; group <= lastGroup; group++)
+ {
+ while (currentGroup != group && !stopWorkerThreads[threadId]) Thread.Sleep(50);
+
+ if (stopWorkerThreads[threadId]) break;
+
+ int wmNr = 0;
+ foreach (var wm in waterMeters)
+ {
+ if ((wm.RfidComPortNr == rfidPortNr) && (wm.Group == group))
+ {
+ if (wm.DebugLevel == Entities.DebugMode.Normal)
+ {
+ if (activity.Equals("Read configuration")) ReadConfig(wm, threadId, wmNr);
+ else if (activity.Equals("Set to test mode")) SetToTestMode(wm, threadId, wmNr);
+ else if (activity.Equals("Set to active mode")) SetToActiveMode(wm, threadId, wmNr);
+ else OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, "Invalid activity"));
+ }
+ else
+ {
+ OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, "Simulation"));
+ }
+ break;
+ }
+ wmNr++;
+ }
+ }
+ }
+
+ static void ReadConfig(WaterMeters.iPerl.WaterMeter wm, int threadId, int wmNr)
+ {
+ bool success = (0 == openPort(wm.RfidComPortNr)); /// Open RFID port
+
+ byte[] cfg = null;
+ if (success)
+ {
+ success = false;
+
+ /// Read configuration
+ for (int j = 0; j < MaxCommRetries; j++)
+ {
+ if (0 == ReadRequestPort(MessageID.Configuration, 0, ConfigStruct.Length, out cfg, CommTimeout)) { success = true; break; }
+ }
+ }
+
+ closePort(); /// Close RFID port
+
+ if (success)
+ {
+ OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, ConfigStruct.FromByteArray(cfg).ToString(1)));
+ }
+ else
+ {
+ OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, "Cannot read configuration"));
+ }
+ }
+
+ static void SetToTestMode(WaterMeters.iPerl.WaterMeter wm, int threadId, int wmNr)
+ {
+ bool success = (openPort(wm.RfidComPortNr) == 0); /// Open RFID port
+
+ if (success)
+ {
+ success = false;
+
+ /// Switch to test mode
+ byte[] cmd = new byte[1] { (byte)7 };
+ for (int j = 0; j < MaxCommRetries; j++)
+ {
+ if (0 == WriteRequestPort(MessageID.Command, 0, 1, cmd, CommTimeout)) { success = true; break; }
+ }
+ }
+
+ byte[] cfg = null;
+ if (success)
+ {
+ success = false;
+
+ /// Read configuration
+ for (int j = 0; j < MaxCommRetries; j++)
+ {
+ if (0 == ReadRequestPort(MessageID.Configuration, 0, ConfigStruct.Length, out cfg, CommTimeout)) { success = true; break; }
+ }
+ }
+
+ closePort(); /// Close RFID port
+
+ if (success)
+ {
+ OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, ConfigStruct.FromByteArray(cfg).ToString(1)));
+ }
+ else
+ {
+ OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, "Cannot switch to test mode"));
+ }
+ }
+
+ static void SetToActiveMode(WaterMeters.iPerl.WaterMeter wm, int threadId, int wmNr)
+ {
+ bool success = (openPort(wm.RfidComPortNr) == 0); /// Open RFID port
+
+ if (success)
+ {
+ success = false;
+
+ /// Switch to active mode
+ byte[] cmd = new byte[1] { (byte)6 };
+ for (int j = 0; j < MaxCommRetries; j++)
+ {
+ if (0 == WriteRequestPort(MessageID.Command, 0, 1, cmd, CommTimeout)) { success = true; break; }
+ }
+ }
+
+ byte[] cfg = null;
+ if (success)
+ {
+ success = false;
+
+ /// Read configuration
+ for (int j = 0; j < MaxCommRetries; j++)
+ {
+ if (0 == ReadRequestPort(MessageID.Configuration, 0, ConfigStruct.Length, out cfg, CommTimeout)) { success = true; break; }
+ }
+ }
+
+ closePort(); /// Close RFID port
+
+ if (success)
+ {
+ OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, ConfigStruct.FromByteArray(cfg).ToString(1)));
+ }
+ else
+ {
+ OnCommCompleted(null, new CommCompletedEventArgs(threadId, wmNr, "Cannot switch to active mode"));
+ }
+ }
+
+
+ ///
+ /// Called when communication with one watermeter is completed
+ ///
+ public static void OnCommCompleted(object sender, CommCompletedEventArgs data)
+ {
+ if (CommCompletedHandler == null) return;
+ try { CommCompletedHandler(sender, data); }
+ catch (Exception e) { log.Error("CommCompletedHandler(...) failed", e); }
+ }
+ public static event EventHandler CommCompletedHandler;
+
+ void DoOnCommCompleted(object sender, CommCompletedEventArgs data)
+ {
+ messages[data.WMNr].Text = data.CommMessage;
+
+ if (currentGroup < lastGroup)
+ {
+ if (quido != null)
+ {
+ quido.SetOutputs((ushort)(16 - currentGroup - 1));
+ Thread.Sleep(200);
+ }
+ currentGroup++;
+ }
+ else
+ {
+ workerThreads[data.ThreadId].Join(2000);
+ NormalClose();
+ }
+ }
+
+
+ ///
+ /// Called when communication with all watermeters is completed
+ ///
+ public static void OnAllCompleted(object sender, AllCompletedEventArgs data)
+ {
+ if (AllCompletedHandler == null) return;
+ try { AllCompletedHandler(sender, data); }
+ catch (Exception e) { log.Error("AllCompletedHandler(...) failed", e); }
+ }
+ public static event EventHandler AllCompletedHandler;
+
+ void DoOnAllCompleted(object sender, AllCompletedEventArgs data)
+ {
+ Text = data.CommMessage;
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.designer.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.designer.cs
new file mode 100644
index 000000000..4a79332a0
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.designer.cs
@@ -0,0 +1,1320 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ partial class iPerlCommunicationForm
+ {
+ ///
+ /// 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 Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.wmTextBox2 = new System.Windows.Forms.TextBox();
+ this.wmLabel2 = new System.Windows.Forms.Label();
+ this.wmLabel1 = new System.Windows.Forms.Label();
+ this.wmTextBox3 = new System.Windows.Forms.TextBox();
+ this.wmLabel3 = new System.Windows.Forms.Label();
+ this.wmTextBox4 = new System.Windows.Forms.TextBox();
+ this.wmLabel4 = new System.Windows.Forms.Label();
+ this.wmTextBox5 = new System.Windows.Forms.TextBox();
+ this.wmLabel5 = new System.Windows.Forms.Label();
+ this.wmTextBox6 = new System.Windows.Forms.TextBox();
+ this.wmLabel6 = new System.Windows.Forms.Label();
+ this.wmTextBox1 = new System.Windows.Forms.TextBox();
+ this.wmTextBox7 = new System.Windows.Forms.TextBox();
+ this.wmLabel7 = new System.Windows.Forms.Label();
+ this.wmTextBox8 = new System.Windows.Forms.TextBox();
+ this.wmLabel8 = new System.Windows.Forms.Label();
+ this.wmTextBox9 = new System.Windows.Forms.TextBox();
+ this.wmLabel9 = new System.Windows.Forms.Label();
+ this.wmTextBox10 = new System.Windows.Forms.TextBox();
+ this.wmLabel10 = new System.Windows.Forms.Label();
+ this.wmTextBox12 = new System.Windows.Forms.TextBox();
+ this.wmLabel12 = new System.Windows.Forms.Label();
+ this.wmTextBox11 = new System.Windows.Forms.TextBox();
+ this.wmLabel11 = new System.Windows.Forms.Label();
+ this.wmTextBox24 = new System.Windows.Forms.TextBox();
+ this.wmLabel24 = new System.Windows.Forms.Label();
+ this.wmTextBox23 = new System.Windows.Forms.TextBox();
+ this.wmLabel23 = new System.Windows.Forms.Label();
+ this.wmTextBox22 = new System.Windows.Forms.TextBox();
+ this.wmLabel22 = new System.Windows.Forms.Label();
+ this.wmTextBox21 = new System.Windows.Forms.TextBox();
+ this.wmLabel21 = new System.Windows.Forms.Label();
+ this.wmTextBox20 = new System.Windows.Forms.TextBox();
+ this.wmLabel20 = new System.Windows.Forms.Label();
+ this.wmTextBox19 = new System.Windows.Forms.TextBox();
+ this.wmLabel19 = new System.Windows.Forms.Label();
+ this.wmTextBox18 = new System.Windows.Forms.TextBox();
+ this.wmLabel18 = new System.Windows.Forms.Label();
+ this.wmTextBox17 = new System.Windows.Forms.TextBox();
+ this.wmLabel17 = new System.Windows.Forms.Label();
+ this.wmTextBox16 = new System.Windows.Forms.TextBox();
+ this.wmLabel16 = new System.Windows.Forms.Label();
+ this.wmTextBox15 = new System.Windows.Forms.TextBox();
+ this.wmLabel15 = new System.Windows.Forms.Label();
+ this.wmTextBox14 = new System.Windows.Forms.TextBox();
+ this.wmLabel14 = new System.Windows.Forms.Label();
+ this.wmTextBox13 = new System.Windows.Forms.TextBox();
+ this.wmLabel13 = new System.Windows.Forms.Label();
+ this.wmTextBox48 = new System.Windows.Forms.TextBox();
+ this.wmLabel48 = new System.Windows.Forms.Label();
+ this.wmTextBox47 = new System.Windows.Forms.TextBox();
+ this.wmLabel47 = new System.Windows.Forms.Label();
+ this.wmTextBox46 = new System.Windows.Forms.TextBox();
+ this.wmLabel46 = new System.Windows.Forms.Label();
+ this.wmTextBox45 = new System.Windows.Forms.TextBox();
+ this.wmLabel45 = new System.Windows.Forms.Label();
+ this.wmTextBox44 = new System.Windows.Forms.TextBox();
+ this.wmLabel44 = new System.Windows.Forms.Label();
+ this.wmTextBox43 = new System.Windows.Forms.TextBox();
+ this.wmLabel43 = new System.Windows.Forms.Label();
+ this.wmTextBox42 = new System.Windows.Forms.TextBox();
+ this.wmLabel42 = new System.Windows.Forms.Label();
+ this.wmTextBox41 = new System.Windows.Forms.TextBox();
+ this.wmLabel41 = new System.Windows.Forms.Label();
+ this.wmTextBox40 = new System.Windows.Forms.TextBox();
+ this.wmLabel40 = new System.Windows.Forms.Label();
+ this.wmTextBox39 = new System.Windows.Forms.TextBox();
+ this.wmLabel39 = new System.Windows.Forms.Label();
+ this.wmTextBox38 = new System.Windows.Forms.TextBox();
+ this.wmLabel38 = new System.Windows.Forms.Label();
+ this.wmTextBox37 = new System.Windows.Forms.TextBox();
+ this.wmLabel37 = new System.Windows.Forms.Label();
+ this.wmTextBox36 = new System.Windows.Forms.TextBox();
+ this.wmLabel36 = new System.Windows.Forms.Label();
+ this.wmTextBox35 = new System.Windows.Forms.TextBox();
+ this.wmLabel35 = new System.Windows.Forms.Label();
+ this.wmTextBox34 = new System.Windows.Forms.TextBox();
+ this.wmLabel34 = new System.Windows.Forms.Label();
+ this.wmTextBox33 = new System.Windows.Forms.TextBox();
+ this.wmLabel33 = new System.Windows.Forms.Label();
+ this.wmTextBox32 = new System.Windows.Forms.TextBox();
+ this.wmLabel32 = new System.Windows.Forms.Label();
+ this.wmTextBox31 = new System.Windows.Forms.TextBox();
+ this.wmLabel31 = new System.Windows.Forms.Label();
+ this.wmTextBox30 = new System.Windows.Forms.TextBox();
+ this.wmLabel30 = new System.Windows.Forms.Label();
+ this.wmTextBox29 = new System.Windows.Forms.TextBox();
+ this.wmLabel29 = new System.Windows.Forms.Label();
+ this.wmTextBox28 = new System.Windows.Forms.TextBox();
+ this.wmLabel28 = new System.Windows.Forms.Label();
+ this.wmTextBox27 = new System.Windows.Forms.TextBox();
+ this.wmLabel27 = new System.Windows.Forms.Label();
+ this.wmTextBox26 = new System.Windows.Forms.TextBox();
+ this.wmLabel26 = new System.Windows.Forms.Label();
+ this.wmTextBox25 = new System.Windows.Forms.TextBox();
+ this.wmLabel25 = new System.Windows.Forms.Label();
+ this.activityLabel = new System.Windows.Forms.Label();
+ this.SuspendLayout();
+ //
+ // wmTextBox2
+ //
+ this.wmTextBox2.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox2.Location = new System.Drawing.Point(191, 118);
+ this.wmTextBox2.Name = "wmTextBox2";
+ this.wmTextBox2.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox2.TabIndex = 1;
+ this.wmTextBox2.Visible = false;
+ //
+ // wmLabel2
+ //
+ this.wmLabel2.AutoSize = true;
+ this.wmLabel2.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel2.Location = new System.Drawing.Point(26, 124);
+ this.wmLabel2.Name = "wmLabel2";
+ this.wmLabel2.Size = new System.Drawing.Size(40, 16);
+ this.wmLabel2.TabIndex = 0;
+ this.wmLabel2.Text = "WM2";
+ this.wmLabel2.Visible = false;
+ //
+ // wmLabel1
+ //
+ this.wmLabel1.AutoSize = true;
+ this.wmLabel1.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel1.Location = new System.Drawing.Point(26, 95);
+ this.wmLabel1.Name = "wmLabel1";
+ this.wmLabel1.Size = new System.Drawing.Size(40, 16);
+ this.wmLabel1.TabIndex = 0;
+ this.wmLabel1.Text = "WM1";
+ this.wmLabel1.Visible = false;
+ //
+ // wmTextBox3
+ //
+ this.wmTextBox3.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox3.Location = new System.Drawing.Point(191, 147);
+ this.wmTextBox3.Name = "wmTextBox3";
+ this.wmTextBox3.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox3.TabIndex = 1;
+ this.wmTextBox3.Visible = false;
+ //
+ // wmLabel3
+ //
+ this.wmLabel3.AutoSize = true;
+ this.wmLabel3.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel3.Location = new System.Drawing.Point(26, 153);
+ this.wmLabel3.Name = "wmLabel3";
+ this.wmLabel3.Size = new System.Drawing.Size(40, 16);
+ this.wmLabel3.TabIndex = 0;
+ this.wmLabel3.Text = "WM3";
+ this.wmLabel3.Visible = false;
+ //
+ // wmTextBox4
+ //
+ this.wmTextBox4.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox4.Location = new System.Drawing.Point(191, 176);
+ this.wmTextBox4.Name = "wmTextBox4";
+ this.wmTextBox4.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox4.TabIndex = 1;
+ this.wmTextBox4.Visible = false;
+ //
+ // wmLabel4
+ //
+ this.wmLabel4.AutoSize = true;
+ this.wmLabel4.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel4.Location = new System.Drawing.Point(26, 182);
+ this.wmLabel4.Name = "wmLabel4";
+ this.wmLabel4.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel4.TabIndex = 0;
+ this.wmLabel4.Text = "Error [%]";
+ this.wmLabel4.Visible = false;
+ //
+ // wmTextBox5
+ //
+ this.wmTextBox5.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox5.Location = new System.Drawing.Point(191, 205);
+ this.wmTextBox5.Name = "wmTextBox5";
+ this.wmTextBox5.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox5.TabIndex = 1;
+ this.wmTextBox5.Visible = false;
+ //
+ // wmLabel5
+ //
+ this.wmLabel5.AutoSize = true;
+ this.wmLabel5.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel5.Location = new System.Drawing.Point(26, 211);
+ this.wmLabel5.Name = "wmLabel5";
+ this.wmLabel5.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel5.TabIndex = 0;
+ this.wmLabel5.Text = "Error [%]";
+ this.wmLabel5.Visible = false;
+ //
+ // wmTextBox6
+ //
+ this.wmTextBox6.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox6.Location = new System.Drawing.Point(191, 234);
+ this.wmTextBox6.Name = "wmTextBox6";
+ this.wmTextBox6.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox6.TabIndex = 1;
+ this.wmTextBox6.Visible = false;
+ //
+ // wmLabel6
+ //
+ this.wmLabel6.AutoSize = true;
+ this.wmLabel6.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel6.Location = new System.Drawing.Point(26, 241);
+ this.wmLabel6.Name = "wmLabel6";
+ this.wmLabel6.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel6.TabIndex = 0;
+ this.wmLabel6.Text = "Error [%]";
+ this.wmLabel6.Visible = false;
+ //
+ // wmTextBox1
+ //
+ this.wmTextBox1.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox1.Location = new System.Drawing.Point(191, 89);
+ this.wmTextBox1.Name = "wmTextBox1";
+ this.wmTextBox1.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox1.TabIndex = 1;
+ this.wmTextBox1.Visible = false;
+ //
+ // wmTextBox7
+ //
+ this.wmTextBox7.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox7.Location = new System.Drawing.Point(191, 263);
+ this.wmTextBox7.Name = "wmTextBox7";
+ this.wmTextBox7.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox7.TabIndex = 9;
+ this.wmTextBox7.Visible = false;
+ //
+ // wmLabel7
+ //
+ this.wmLabel7.AutoSize = true;
+ this.wmLabel7.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel7.Location = new System.Drawing.Point(26, 270);
+ this.wmLabel7.Name = "wmLabel7";
+ this.wmLabel7.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel7.TabIndex = 8;
+ this.wmLabel7.Text = "Error [%]";
+ this.wmLabel7.Visible = false;
+ //
+ // wmTextBox8
+ //
+ this.wmTextBox8.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox8.Location = new System.Drawing.Point(191, 292);
+ this.wmTextBox8.Name = "wmTextBox8";
+ this.wmTextBox8.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox8.TabIndex = 11;
+ this.wmTextBox8.Visible = false;
+ //
+ // wmLabel8
+ //
+ this.wmLabel8.AutoSize = true;
+ this.wmLabel8.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel8.Location = new System.Drawing.Point(26, 299);
+ this.wmLabel8.Name = "wmLabel8";
+ this.wmLabel8.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel8.TabIndex = 10;
+ this.wmLabel8.Text = "Error [%]";
+ this.wmLabel8.Visible = false;
+ //
+ // wmTextBox9
+ //
+ this.wmTextBox9.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox9.Location = new System.Drawing.Point(191, 321);
+ this.wmTextBox9.Name = "wmTextBox9";
+ this.wmTextBox9.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox9.TabIndex = 13;
+ this.wmTextBox9.Visible = false;
+ //
+ // wmLabel9
+ //
+ this.wmLabel9.AutoSize = true;
+ this.wmLabel9.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel9.Location = new System.Drawing.Point(26, 327);
+ this.wmLabel9.Name = "wmLabel9";
+ this.wmLabel9.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel9.TabIndex = 12;
+ this.wmLabel9.Text = "Error [%]";
+ this.wmLabel9.Visible = false;
+ //
+ // wmTextBox10
+ //
+ this.wmTextBox10.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox10.Location = new System.Drawing.Point(191, 350);
+ this.wmTextBox10.Name = "wmTextBox10";
+ this.wmTextBox10.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox10.TabIndex = 15;
+ this.wmTextBox10.Visible = false;
+ //
+ // wmLabel10
+ //
+ this.wmLabel10.AutoSize = true;
+ this.wmLabel10.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel10.Location = new System.Drawing.Point(26, 356);
+ this.wmLabel10.Name = "wmLabel10";
+ this.wmLabel10.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel10.TabIndex = 14;
+ this.wmLabel10.Text = "Error [%]";
+ this.wmLabel10.Visible = false;
+ //
+ // wmTextBox12
+ //
+ this.wmTextBox12.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox12.Location = new System.Drawing.Point(191, 408);
+ this.wmTextBox12.Name = "wmTextBox12";
+ this.wmTextBox12.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox12.TabIndex = 19;
+ this.wmTextBox12.Visible = false;
+ //
+ // wmLabel12
+ //
+ this.wmLabel12.AutoSize = true;
+ this.wmLabel12.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel12.Location = new System.Drawing.Point(26, 414);
+ this.wmLabel12.Name = "wmLabel12";
+ this.wmLabel12.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel12.TabIndex = 18;
+ this.wmLabel12.Text = "Error [%]";
+ this.wmLabel12.Visible = false;
+ //
+ // wmTextBox11
+ //
+ this.wmTextBox11.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox11.Location = new System.Drawing.Point(191, 379);
+ this.wmTextBox11.Name = "wmTextBox11";
+ this.wmTextBox11.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox11.TabIndex = 17;
+ this.wmTextBox11.Visible = false;
+ //
+ // wmLabel11
+ //
+ this.wmLabel11.AutoSize = true;
+ this.wmLabel11.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel11.Location = new System.Drawing.Point(26, 385);
+ this.wmLabel11.Name = "wmLabel11";
+ this.wmLabel11.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel11.TabIndex = 16;
+ this.wmLabel11.Text = "Error [%]";
+ this.wmLabel11.Visible = false;
+ //
+ // wmTextBox24
+ //
+ this.wmTextBox24.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox24.Location = new System.Drawing.Point(191, 756);
+ this.wmTextBox24.Name = "wmTextBox24";
+ this.wmTextBox24.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox24.TabIndex = 43;
+ this.wmTextBox24.Visible = false;
+ //
+ // wmLabel24
+ //
+ this.wmLabel24.AutoSize = true;
+ this.wmLabel24.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel24.Location = new System.Drawing.Point(26, 762);
+ this.wmLabel24.Name = "wmLabel24";
+ this.wmLabel24.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel24.TabIndex = 42;
+ this.wmLabel24.Text = "Error [%]";
+ this.wmLabel24.Visible = false;
+ //
+ // wmTextBox23
+ //
+ this.wmTextBox23.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox23.Location = new System.Drawing.Point(191, 727);
+ this.wmTextBox23.Name = "wmTextBox23";
+ this.wmTextBox23.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox23.TabIndex = 41;
+ this.wmTextBox23.Visible = false;
+ //
+ // wmLabel23
+ //
+ this.wmLabel23.AutoSize = true;
+ this.wmLabel23.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel23.Location = new System.Drawing.Point(26, 733);
+ this.wmLabel23.Name = "wmLabel23";
+ this.wmLabel23.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel23.TabIndex = 40;
+ this.wmLabel23.Text = "Error [%]";
+ this.wmLabel23.Visible = false;
+ //
+ // wmTextBox22
+ //
+ this.wmTextBox22.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox22.Location = new System.Drawing.Point(191, 698);
+ this.wmTextBox22.Name = "wmTextBox22";
+ this.wmTextBox22.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox22.TabIndex = 39;
+ this.wmTextBox22.Visible = false;
+ //
+ // wmLabel22
+ //
+ this.wmLabel22.AutoSize = true;
+ this.wmLabel22.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel22.Location = new System.Drawing.Point(26, 704);
+ this.wmLabel22.Name = "wmLabel22";
+ this.wmLabel22.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel22.TabIndex = 38;
+ this.wmLabel22.Text = "Error [%]";
+ this.wmLabel22.Visible = false;
+ //
+ // wmTextBox21
+ //
+ this.wmTextBox21.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox21.Location = new System.Drawing.Point(191, 669);
+ this.wmTextBox21.Name = "wmTextBox21";
+ this.wmTextBox21.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox21.TabIndex = 37;
+ this.wmTextBox21.Visible = false;
+ //
+ // wmLabel21
+ //
+ this.wmLabel21.AutoSize = true;
+ this.wmLabel21.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel21.Location = new System.Drawing.Point(26, 675);
+ this.wmLabel21.Name = "wmLabel21";
+ this.wmLabel21.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel21.TabIndex = 36;
+ this.wmLabel21.Text = "Error [%]";
+ this.wmLabel21.Visible = false;
+ //
+ // wmTextBox20
+ //
+ this.wmTextBox20.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox20.Location = new System.Drawing.Point(191, 640);
+ this.wmTextBox20.Name = "wmTextBox20";
+ this.wmTextBox20.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox20.TabIndex = 35;
+ this.wmTextBox20.Visible = false;
+ //
+ // wmLabel20
+ //
+ this.wmLabel20.AutoSize = true;
+ this.wmLabel20.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel20.Location = new System.Drawing.Point(26, 647);
+ this.wmLabel20.Name = "wmLabel20";
+ this.wmLabel20.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel20.TabIndex = 34;
+ this.wmLabel20.Text = "Error [%]";
+ this.wmLabel20.Visible = false;
+ //
+ // wmTextBox19
+ //
+ this.wmTextBox19.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox19.Location = new System.Drawing.Point(191, 611);
+ this.wmTextBox19.Name = "wmTextBox19";
+ this.wmTextBox19.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox19.TabIndex = 33;
+ this.wmTextBox19.Visible = false;
+ //
+ // wmLabel19
+ //
+ this.wmLabel19.AutoSize = true;
+ this.wmLabel19.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel19.Location = new System.Drawing.Point(26, 618);
+ this.wmLabel19.Name = "wmLabel19";
+ this.wmLabel19.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel19.TabIndex = 32;
+ this.wmLabel19.Text = "Error [%]";
+ this.wmLabel19.Visible = false;
+ //
+ // wmTextBox18
+ //
+ this.wmTextBox18.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox18.Location = new System.Drawing.Point(191, 582);
+ this.wmTextBox18.Name = "wmTextBox18";
+ this.wmTextBox18.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox18.TabIndex = 27;
+ this.wmTextBox18.Visible = false;
+ //
+ // wmLabel18
+ //
+ this.wmLabel18.AutoSize = true;
+ this.wmLabel18.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel18.Location = new System.Drawing.Point(26, 589);
+ this.wmLabel18.Name = "wmLabel18";
+ this.wmLabel18.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel18.TabIndex = 23;
+ this.wmLabel18.Text = "Error [%]";
+ this.wmLabel18.Visible = false;
+ //
+ // wmTextBox17
+ //
+ this.wmTextBox17.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox17.Location = new System.Drawing.Point(191, 553);
+ this.wmTextBox17.Name = "wmTextBox17";
+ this.wmTextBox17.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox17.TabIndex = 26;
+ this.wmTextBox17.Visible = false;
+ //
+ // wmLabel17
+ //
+ this.wmLabel17.AutoSize = true;
+ this.wmLabel17.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel17.Location = new System.Drawing.Point(26, 559);
+ this.wmLabel17.Name = "wmLabel17";
+ this.wmLabel17.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel17.TabIndex = 22;
+ this.wmLabel17.Text = "Error [%]";
+ this.wmLabel17.Visible = false;
+ //
+ // wmTextBox16
+ //
+ this.wmTextBox16.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox16.Location = new System.Drawing.Point(191, 524);
+ this.wmTextBox16.Name = "wmTextBox16";
+ this.wmTextBox16.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox16.TabIndex = 30;
+ this.wmTextBox16.Visible = false;
+ //
+ // wmLabel16
+ //
+ this.wmLabel16.AutoSize = true;
+ this.wmLabel16.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel16.Location = new System.Drawing.Point(26, 530);
+ this.wmLabel16.Name = "wmLabel16";
+ this.wmLabel16.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel16.TabIndex = 21;
+ this.wmLabel16.Text = "Error [%]";
+ this.wmLabel16.Visible = false;
+ //
+ // wmTextBox15
+ //
+ this.wmTextBox15.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox15.Location = new System.Drawing.Point(191, 495);
+ this.wmTextBox15.Name = "wmTextBox15";
+ this.wmTextBox15.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox15.TabIndex = 31;
+ this.wmTextBox15.Visible = false;
+ //
+ // wmLabel15
+ //
+ this.wmLabel15.AutoSize = true;
+ this.wmLabel15.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel15.Location = new System.Drawing.Point(26, 501);
+ this.wmLabel15.Name = "wmLabel15";
+ this.wmLabel15.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel15.TabIndex = 20;
+ this.wmLabel15.Text = "Error [%]";
+ this.wmLabel15.Visible = false;
+ //
+ // wmTextBox14
+ //
+ this.wmTextBox14.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox14.Location = new System.Drawing.Point(191, 466);
+ this.wmTextBox14.Name = "wmTextBox14";
+ this.wmTextBox14.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox14.TabIndex = 28;
+ this.wmTextBox14.Visible = false;
+ //
+ // wmLabel14
+ //
+ this.wmLabel14.AutoSize = true;
+ this.wmLabel14.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel14.Location = new System.Drawing.Point(26, 472);
+ this.wmLabel14.Name = "wmLabel14";
+ this.wmLabel14.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel14.TabIndex = 25;
+ this.wmLabel14.Text = "Error [%]";
+ this.wmLabel14.Visible = false;
+ //
+ // wmTextBox13
+ //
+ this.wmTextBox13.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox13.Location = new System.Drawing.Point(191, 437);
+ this.wmTextBox13.Name = "wmTextBox13";
+ this.wmTextBox13.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox13.TabIndex = 29;
+ this.wmTextBox13.Visible = false;
+ //
+ // wmLabel13
+ //
+ this.wmLabel13.AutoSize = true;
+ this.wmLabel13.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel13.Location = new System.Drawing.Point(26, 443);
+ this.wmLabel13.Name = "wmLabel13";
+ this.wmLabel13.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel13.TabIndex = 24;
+ this.wmLabel13.Text = "Error [%]";
+ this.wmLabel13.Visible = false;
+ //
+ // wmTextBox48
+ //
+ this.wmTextBox48.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox48.Location = new System.Drawing.Point(752, 756);
+ this.wmTextBox48.Name = "wmTextBox48";
+ this.wmTextBox48.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox48.TabIndex = 94;
+ this.wmTextBox48.Visible = false;
+ //
+ // wmLabel48
+ //
+ this.wmLabel48.AutoSize = true;
+ this.wmLabel48.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel48.Location = new System.Drawing.Point(587, 762);
+ this.wmLabel48.Name = "wmLabel48";
+ this.wmLabel48.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel48.TabIndex = 93;
+ this.wmLabel48.Text = "Error [%]";
+ this.wmLabel48.Visible = false;
+ //
+ // wmTextBox47
+ //
+ this.wmTextBox47.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox47.Location = new System.Drawing.Point(752, 727);
+ this.wmTextBox47.Name = "wmTextBox47";
+ this.wmTextBox47.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox47.TabIndex = 92;
+ this.wmTextBox47.Visible = false;
+ //
+ // wmLabel47
+ //
+ this.wmLabel47.AutoSize = true;
+ this.wmLabel47.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel47.Location = new System.Drawing.Point(587, 733);
+ this.wmLabel47.Name = "wmLabel47";
+ this.wmLabel47.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel47.TabIndex = 91;
+ this.wmLabel47.Text = "Error [%]";
+ this.wmLabel47.Visible = false;
+ //
+ // wmTextBox46
+ //
+ this.wmTextBox46.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox46.Location = new System.Drawing.Point(752, 698);
+ this.wmTextBox46.Name = "wmTextBox46";
+ this.wmTextBox46.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox46.TabIndex = 90;
+ this.wmTextBox46.Visible = false;
+ //
+ // wmLabel46
+ //
+ this.wmLabel46.AutoSize = true;
+ this.wmLabel46.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel46.Location = new System.Drawing.Point(587, 704);
+ this.wmLabel46.Name = "wmLabel46";
+ this.wmLabel46.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel46.TabIndex = 89;
+ this.wmLabel46.Text = "Error [%]";
+ this.wmLabel46.Visible = false;
+ //
+ // wmTextBox45
+ //
+ this.wmTextBox45.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox45.Location = new System.Drawing.Point(752, 669);
+ this.wmTextBox45.Name = "wmTextBox45";
+ this.wmTextBox45.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox45.TabIndex = 88;
+ this.wmTextBox45.Visible = false;
+ //
+ // wmLabel45
+ //
+ this.wmLabel45.AutoSize = true;
+ this.wmLabel45.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel45.Location = new System.Drawing.Point(587, 675);
+ this.wmLabel45.Name = "wmLabel45";
+ this.wmLabel45.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel45.TabIndex = 87;
+ this.wmLabel45.Text = "Error [%]";
+ this.wmLabel45.Visible = false;
+ //
+ // wmTextBox44
+ //
+ this.wmTextBox44.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox44.Location = new System.Drawing.Point(752, 640);
+ this.wmTextBox44.Name = "wmTextBox44";
+ this.wmTextBox44.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox44.TabIndex = 86;
+ this.wmTextBox44.Visible = false;
+ //
+ // wmLabel44
+ //
+ this.wmLabel44.AutoSize = true;
+ this.wmLabel44.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel44.Location = new System.Drawing.Point(587, 647);
+ this.wmLabel44.Name = "wmLabel44";
+ this.wmLabel44.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel44.TabIndex = 85;
+ this.wmLabel44.Text = "Error [%]";
+ this.wmLabel44.Visible = false;
+ //
+ // wmTextBox43
+ //
+ this.wmTextBox43.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox43.Location = new System.Drawing.Point(752, 611);
+ this.wmTextBox43.Name = "wmTextBox43";
+ this.wmTextBox43.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox43.TabIndex = 84;
+ this.wmTextBox43.Visible = false;
+ //
+ // wmLabel43
+ //
+ this.wmLabel43.AutoSize = true;
+ this.wmLabel43.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel43.Location = new System.Drawing.Point(587, 618);
+ this.wmLabel43.Name = "wmLabel43";
+ this.wmLabel43.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel43.TabIndex = 83;
+ this.wmLabel43.Text = "Error [%]";
+ this.wmLabel43.Visible = false;
+ //
+ // wmTextBox42
+ //
+ this.wmTextBox42.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox42.Location = new System.Drawing.Point(752, 582);
+ this.wmTextBox42.Name = "wmTextBox42";
+ this.wmTextBox42.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox42.TabIndex = 78;
+ this.wmTextBox42.Visible = false;
+ //
+ // wmLabel42
+ //
+ this.wmLabel42.AutoSize = true;
+ this.wmLabel42.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel42.Location = new System.Drawing.Point(587, 589);
+ this.wmLabel42.Name = "wmLabel42";
+ this.wmLabel42.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel42.TabIndex = 74;
+ this.wmLabel42.Text = "Error [%]";
+ this.wmLabel42.Visible = false;
+ //
+ // wmTextBox41
+ //
+ this.wmTextBox41.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox41.Location = new System.Drawing.Point(752, 553);
+ this.wmTextBox41.Name = "wmTextBox41";
+ this.wmTextBox41.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox41.TabIndex = 77;
+ this.wmTextBox41.Visible = false;
+ //
+ // wmLabel41
+ //
+ this.wmLabel41.AutoSize = true;
+ this.wmLabel41.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel41.Location = new System.Drawing.Point(587, 559);
+ this.wmLabel41.Name = "wmLabel41";
+ this.wmLabel41.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel41.TabIndex = 73;
+ this.wmLabel41.Text = "Error [%]";
+ this.wmLabel41.Visible = false;
+ //
+ // wmTextBox40
+ //
+ this.wmTextBox40.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox40.Location = new System.Drawing.Point(752, 524);
+ this.wmTextBox40.Name = "wmTextBox40";
+ this.wmTextBox40.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox40.TabIndex = 81;
+ this.wmTextBox40.Visible = false;
+ //
+ // wmLabel40
+ //
+ this.wmLabel40.AutoSize = true;
+ this.wmLabel40.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel40.Location = new System.Drawing.Point(587, 530);
+ this.wmLabel40.Name = "wmLabel40";
+ this.wmLabel40.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel40.TabIndex = 72;
+ this.wmLabel40.Text = "Error [%]";
+ this.wmLabel40.Visible = false;
+ //
+ // wmTextBox39
+ //
+ this.wmTextBox39.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox39.Location = new System.Drawing.Point(752, 495);
+ this.wmTextBox39.Name = "wmTextBox39";
+ this.wmTextBox39.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox39.TabIndex = 82;
+ this.wmTextBox39.Visible = false;
+ //
+ // wmLabel39
+ //
+ this.wmLabel39.AutoSize = true;
+ this.wmLabel39.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel39.Location = new System.Drawing.Point(587, 501);
+ this.wmLabel39.Name = "wmLabel39";
+ this.wmLabel39.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel39.TabIndex = 71;
+ this.wmLabel39.Text = "Error [%]";
+ this.wmLabel39.Visible = false;
+ //
+ // wmTextBox38
+ //
+ this.wmTextBox38.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox38.Location = new System.Drawing.Point(752, 466);
+ this.wmTextBox38.Name = "wmTextBox38";
+ this.wmTextBox38.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox38.TabIndex = 79;
+ this.wmTextBox38.Visible = false;
+ //
+ // wmLabel38
+ //
+ this.wmLabel38.AutoSize = true;
+ this.wmLabel38.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel38.Location = new System.Drawing.Point(587, 472);
+ this.wmLabel38.Name = "wmLabel38";
+ this.wmLabel38.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel38.TabIndex = 76;
+ this.wmLabel38.Text = "Error [%]";
+ this.wmLabel38.Visible = false;
+ //
+ // wmTextBox37
+ //
+ this.wmTextBox37.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox37.Location = new System.Drawing.Point(752, 437);
+ this.wmTextBox37.Name = "wmTextBox37";
+ this.wmTextBox37.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox37.TabIndex = 80;
+ this.wmTextBox37.Visible = false;
+ //
+ // wmLabel37
+ //
+ this.wmLabel37.AutoSize = true;
+ this.wmLabel37.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel37.Location = new System.Drawing.Point(587, 443);
+ this.wmLabel37.Name = "wmLabel37";
+ this.wmLabel37.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel37.TabIndex = 75;
+ this.wmLabel37.Text = "Error [%]";
+ this.wmLabel37.Visible = false;
+ //
+ // wmTextBox36
+ //
+ this.wmTextBox36.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox36.Location = new System.Drawing.Point(752, 408);
+ this.wmTextBox36.Name = "wmTextBox36";
+ this.wmTextBox36.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox36.TabIndex = 70;
+ this.wmTextBox36.Visible = false;
+ //
+ // wmLabel36
+ //
+ this.wmLabel36.AutoSize = true;
+ this.wmLabel36.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel36.Location = new System.Drawing.Point(587, 414);
+ this.wmLabel36.Name = "wmLabel36";
+ this.wmLabel36.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel36.TabIndex = 69;
+ this.wmLabel36.Text = "Error [%]";
+ this.wmLabel36.Visible = false;
+ //
+ // wmTextBox35
+ //
+ this.wmTextBox35.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox35.Location = new System.Drawing.Point(752, 379);
+ this.wmTextBox35.Name = "wmTextBox35";
+ this.wmTextBox35.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox35.TabIndex = 68;
+ this.wmTextBox35.Visible = false;
+ //
+ // wmLabel35
+ //
+ this.wmLabel35.AutoSize = true;
+ this.wmLabel35.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel35.Location = new System.Drawing.Point(587, 385);
+ this.wmLabel35.Name = "wmLabel35";
+ this.wmLabel35.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel35.TabIndex = 67;
+ this.wmLabel35.Text = "Error [%]";
+ this.wmLabel35.Visible = false;
+ //
+ // wmTextBox34
+ //
+ this.wmTextBox34.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox34.Location = new System.Drawing.Point(752, 350);
+ this.wmTextBox34.Name = "wmTextBox34";
+ this.wmTextBox34.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox34.TabIndex = 66;
+ this.wmTextBox34.Visible = false;
+ //
+ // wmLabel34
+ //
+ this.wmLabel34.AutoSize = true;
+ this.wmLabel34.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel34.Location = new System.Drawing.Point(587, 356);
+ this.wmLabel34.Name = "wmLabel34";
+ this.wmLabel34.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel34.TabIndex = 65;
+ this.wmLabel34.Text = "Error [%]";
+ this.wmLabel34.Visible = false;
+ //
+ // wmTextBox33
+ //
+ this.wmTextBox33.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox33.Location = new System.Drawing.Point(752, 321);
+ this.wmTextBox33.Name = "wmTextBox33";
+ this.wmTextBox33.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox33.TabIndex = 64;
+ this.wmTextBox33.Visible = false;
+ //
+ // wmLabel33
+ //
+ this.wmLabel33.AutoSize = true;
+ this.wmLabel33.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel33.Location = new System.Drawing.Point(587, 327);
+ this.wmLabel33.Name = "wmLabel33";
+ this.wmLabel33.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel33.TabIndex = 63;
+ this.wmLabel33.Text = "Error [%]";
+ this.wmLabel33.Visible = false;
+ //
+ // wmTextBox32
+ //
+ this.wmTextBox32.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox32.Location = new System.Drawing.Point(752, 292);
+ this.wmTextBox32.Name = "wmTextBox32";
+ this.wmTextBox32.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox32.TabIndex = 62;
+ this.wmTextBox32.Visible = false;
+ //
+ // wmLabel32
+ //
+ this.wmLabel32.AutoSize = true;
+ this.wmLabel32.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel32.Location = new System.Drawing.Point(587, 299);
+ this.wmLabel32.Name = "wmLabel32";
+ this.wmLabel32.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel32.TabIndex = 61;
+ this.wmLabel32.Text = "Error [%]";
+ this.wmLabel32.Visible = false;
+ //
+ // wmTextBox31
+ //
+ this.wmTextBox31.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox31.Location = new System.Drawing.Point(752, 263);
+ this.wmTextBox31.Name = "wmTextBox31";
+ this.wmTextBox31.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox31.TabIndex = 60;
+ this.wmTextBox31.Visible = false;
+ //
+ // wmLabel31
+ //
+ this.wmLabel31.AutoSize = true;
+ this.wmLabel31.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel31.Location = new System.Drawing.Point(587, 270);
+ this.wmLabel31.Name = "wmLabel31";
+ this.wmLabel31.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel31.TabIndex = 59;
+ this.wmLabel31.Text = "Error [%]";
+ this.wmLabel31.Visible = false;
+ //
+ // wmTextBox30
+ //
+ this.wmTextBox30.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox30.Location = new System.Drawing.Point(752, 234);
+ this.wmTextBox30.Name = "wmTextBox30";
+ this.wmTextBox30.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox30.TabIndex = 54;
+ this.wmTextBox30.Visible = false;
+ //
+ // wmLabel30
+ //
+ this.wmLabel30.AutoSize = true;
+ this.wmLabel30.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel30.Location = new System.Drawing.Point(587, 241);
+ this.wmLabel30.Name = "wmLabel30";
+ this.wmLabel30.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel30.TabIndex = 50;
+ this.wmLabel30.Text = "Error [%]";
+ this.wmLabel30.Visible = false;
+ //
+ // wmTextBox29
+ //
+ this.wmTextBox29.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox29.Location = new System.Drawing.Point(752, 205);
+ this.wmTextBox29.Name = "wmTextBox29";
+ this.wmTextBox29.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox29.TabIndex = 53;
+ this.wmTextBox29.Visible = false;
+ //
+ // wmLabel29
+ //
+ this.wmLabel29.AutoSize = true;
+ this.wmLabel29.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel29.Location = new System.Drawing.Point(587, 211);
+ this.wmLabel29.Name = "wmLabel29";
+ this.wmLabel29.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel29.TabIndex = 49;
+ this.wmLabel29.Text = "Error [%]";
+ this.wmLabel29.Visible = false;
+ //
+ // wmTextBox28
+ //
+ this.wmTextBox28.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox28.Location = new System.Drawing.Point(752, 176);
+ this.wmTextBox28.Name = "wmTextBox28";
+ this.wmTextBox28.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox28.TabIndex = 57;
+ this.wmTextBox28.Visible = false;
+ //
+ // wmLabel28
+ //
+ this.wmLabel28.AutoSize = true;
+ this.wmLabel28.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel28.Location = new System.Drawing.Point(587, 182);
+ this.wmLabel28.Name = "wmLabel28";
+ this.wmLabel28.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel28.TabIndex = 48;
+ this.wmLabel28.Text = "Error [%]";
+ this.wmLabel28.Visible = false;
+ //
+ // wmTextBox27
+ //
+ this.wmTextBox27.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox27.Location = new System.Drawing.Point(752, 147);
+ this.wmTextBox27.Name = "wmTextBox27";
+ this.wmTextBox27.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox27.TabIndex = 58;
+ this.wmTextBox27.Visible = false;
+ //
+ // wmLabel27
+ //
+ this.wmLabel27.AutoSize = true;
+ this.wmLabel27.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel27.Location = new System.Drawing.Point(587, 153);
+ this.wmLabel27.Name = "wmLabel27";
+ this.wmLabel27.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel27.TabIndex = 47;
+ this.wmLabel27.Text = "Error [%]";
+ this.wmLabel27.Visible = false;
+ //
+ // wmTextBox26
+ //
+ this.wmTextBox26.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox26.Location = new System.Drawing.Point(752, 118);
+ this.wmTextBox26.Name = "wmTextBox26";
+ this.wmTextBox26.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox26.TabIndex = 55;
+ this.wmTextBox26.Visible = false;
+ //
+ // wmLabel26
+ //
+ this.wmLabel26.AutoSize = true;
+ this.wmLabel26.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel26.Location = new System.Drawing.Point(587, 124);
+ this.wmLabel26.Name = "wmLabel26";
+ this.wmLabel26.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel26.TabIndex = 52;
+ this.wmLabel26.Text = "Error [%]";
+ this.wmLabel26.Visible = false;
+ //
+ // wmTextBox25
+ //
+ this.wmTextBox25.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmTextBox25.Location = new System.Drawing.Point(752, 89);
+ this.wmTextBox25.Name = "wmTextBox25";
+ this.wmTextBox25.Size = new System.Drawing.Size(380, 23);
+ this.wmTextBox25.TabIndex = 56;
+ this.wmTextBox25.Visible = false;
+ //
+ // wmLabel25
+ //
+ this.wmLabel25.AutoSize = true;
+ this.wmLabel25.Font = new System.Drawing.Font("Verdana", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(238)));
+ this.wmLabel25.Location = new System.Drawing.Point(587, 95);
+ this.wmLabel25.Name = "wmLabel25";
+ this.wmLabel25.Size = new System.Drawing.Size(69, 16);
+ this.wmLabel25.TabIndex = 51;
+ this.wmLabel25.Text = "Error [%]";
+ this.wmLabel25.Visible = false;
+ //
+ // activityLabel
+ //
+ this.activityLabel.AutoSize = true;
+ this.activityLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 27.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
+ this.activityLabel.Location = new System.Drawing.Point(31, 22);
+ this.activityLabel.Name = "activityLabel";
+ this.activityLabel.Size = new System.Drawing.Size(225, 42);
+ this.activityLabel.TabIndex = 95;
+ this.activityLabel.Text = "Activity label";
+ //
+ // iPerlCommunicationForm
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.Color.DarkGoldenrod;
+ this.ClientSize = new System.Drawing.Size(1161, 795);
+ this.Controls.Add(this.activityLabel);
+ this.Controls.Add(this.wmTextBox48);
+ this.Controls.Add(this.wmLabel48);
+ this.Controls.Add(this.wmTextBox47);
+ this.Controls.Add(this.wmLabel47);
+ this.Controls.Add(this.wmTextBox46);
+ this.Controls.Add(this.wmLabel46);
+ this.Controls.Add(this.wmTextBox45);
+ this.Controls.Add(this.wmLabel45);
+ this.Controls.Add(this.wmTextBox44);
+ this.Controls.Add(this.wmLabel44);
+ this.Controls.Add(this.wmTextBox43);
+ this.Controls.Add(this.wmLabel43);
+ this.Controls.Add(this.wmTextBox42);
+ this.Controls.Add(this.wmLabel42);
+ this.Controls.Add(this.wmTextBox41);
+ this.Controls.Add(this.wmLabel41);
+ this.Controls.Add(this.wmTextBox40);
+ this.Controls.Add(this.wmLabel40);
+ this.Controls.Add(this.wmTextBox39);
+ this.Controls.Add(this.wmLabel39);
+ this.Controls.Add(this.wmTextBox38);
+ this.Controls.Add(this.wmLabel38);
+ this.Controls.Add(this.wmTextBox37);
+ this.Controls.Add(this.wmLabel37);
+ this.Controls.Add(this.wmTextBox36);
+ this.Controls.Add(this.wmLabel36);
+ this.Controls.Add(this.wmTextBox35);
+ this.Controls.Add(this.wmLabel35);
+ this.Controls.Add(this.wmTextBox34);
+ this.Controls.Add(this.wmLabel34);
+ this.Controls.Add(this.wmTextBox33);
+ this.Controls.Add(this.wmLabel33);
+ this.Controls.Add(this.wmTextBox32);
+ this.Controls.Add(this.wmLabel32);
+ this.Controls.Add(this.wmTextBox31);
+ this.Controls.Add(this.wmLabel31);
+ this.Controls.Add(this.wmTextBox30);
+ this.Controls.Add(this.wmLabel30);
+ this.Controls.Add(this.wmTextBox29);
+ this.Controls.Add(this.wmLabel29);
+ this.Controls.Add(this.wmTextBox28);
+ this.Controls.Add(this.wmLabel28);
+ this.Controls.Add(this.wmTextBox27);
+ this.Controls.Add(this.wmLabel27);
+ this.Controls.Add(this.wmTextBox26);
+ this.Controls.Add(this.wmLabel26);
+ this.Controls.Add(this.wmTextBox25);
+ this.Controls.Add(this.wmLabel25);
+ this.Controls.Add(this.wmTextBox24);
+ this.Controls.Add(this.wmLabel24);
+ this.Controls.Add(this.wmTextBox23);
+ this.Controls.Add(this.wmLabel23);
+ this.Controls.Add(this.wmTextBox22);
+ this.Controls.Add(this.wmLabel22);
+ this.Controls.Add(this.wmTextBox21);
+ this.Controls.Add(this.wmLabel21);
+ this.Controls.Add(this.wmTextBox20);
+ this.Controls.Add(this.wmLabel20);
+ this.Controls.Add(this.wmTextBox19);
+ this.Controls.Add(this.wmLabel19);
+ this.Controls.Add(this.wmTextBox18);
+ this.Controls.Add(this.wmLabel18);
+ this.Controls.Add(this.wmTextBox17);
+ this.Controls.Add(this.wmLabel17);
+ this.Controls.Add(this.wmTextBox16);
+ this.Controls.Add(this.wmLabel16);
+ this.Controls.Add(this.wmTextBox15);
+ this.Controls.Add(this.wmLabel15);
+ this.Controls.Add(this.wmTextBox14);
+ this.Controls.Add(this.wmLabel14);
+ this.Controls.Add(this.wmTextBox13);
+ this.Controls.Add(this.wmLabel13);
+ this.Controls.Add(this.wmTextBox12);
+ this.Controls.Add(this.wmLabel12);
+ this.Controls.Add(this.wmTextBox11);
+ this.Controls.Add(this.wmLabel11);
+ this.Controls.Add(this.wmTextBox10);
+ this.Controls.Add(this.wmLabel10);
+ this.Controls.Add(this.wmTextBox9);
+ this.Controls.Add(this.wmLabel9);
+ this.Controls.Add(this.wmTextBox8);
+ this.Controls.Add(this.wmLabel8);
+ this.Controls.Add(this.wmTextBox7);
+ this.Controls.Add(this.wmLabel7);
+ this.Controls.Add(this.wmTextBox6);
+ this.Controls.Add(this.wmLabel6);
+ this.Controls.Add(this.wmTextBox5);
+ this.Controls.Add(this.wmLabel5);
+ this.Controls.Add(this.wmTextBox4);
+ this.Controls.Add(this.wmLabel4);
+ this.Controls.Add(this.wmTextBox3);
+ this.Controls.Add(this.wmLabel3);
+ this.Controls.Add(this.wmTextBox2);
+ this.Controls.Add(this.wmLabel2);
+ this.Controls.Add(this.wmTextBox1);
+ this.Controls.Add(this.wmLabel1);
+ this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow;
+ this.Name = "iPerlCommunicationForm";
+ this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide;
+ this.Text = "Water Meter States";
+ this.TopMost = true;
+ this.Load += new System.EventHandler(this.iPerlCommunicationForm_Load);
+ this.Paint += new System.Windows.Forms.PaintEventHandler(this.WMErrorsForm_Paint);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox wmTextBox2;
+ private System.Windows.Forms.Label wmLabel2;
+ private System.Windows.Forms.Label wmLabel1;
+ private System.Windows.Forms.TextBox wmTextBox3;
+ private System.Windows.Forms.Label wmLabel3;
+ private System.Windows.Forms.TextBox wmTextBox4;
+ private System.Windows.Forms.Label wmLabel4;
+ private System.Windows.Forms.TextBox wmTextBox5;
+ private System.Windows.Forms.Label wmLabel5;
+ private System.Windows.Forms.TextBox wmTextBox6;
+ private System.Windows.Forms.Label wmLabel6;
+ private System.Windows.Forms.TextBox wmTextBox1;
+ private System.Windows.Forms.TextBox wmTextBox7;
+ private System.Windows.Forms.Label wmLabel7;
+ private System.Windows.Forms.TextBox wmTextBox8;
+ private System.Windows.Forms.Label wmLabel8;
+ private System.Windows.Forms.TextBox wmTextBox9;
+ private System.Windows.Forms.Label wmLabel9;
+ private System.Windows.Forms.TextBox wmTextBox10;
+ private System.Windows.Forms.Label wmLabel10;
+ private System.Windows.Forms.TextBox wmTextBox12;
+ private System.Windows.Forms.Label wmLabel12;
+ private System.Windows.Forms.TextBox wmTextBox11;
+ private System.Windows.Forms.Label wmLabel11;
+ private System.Windows.Forms.TextBox wmTextBox24;
+ private System.Windows.Forms.Label wmLabel24;
+ private System.Windows.Forms.TextBox wmTextBox23;
+ private System.Windows.Forms.Label wmLabel23;
+ private System.Windows.Forms.TextBox wmTextBox22;
+ private System.Windows.Forms.Label wmLabel22;
+ private System.Windows.Forms.TextBox wmTextBox21;
+ private System.Windows.Forms.Label wmLabel21;
+ private System.Windows.Forms.TextBox wmTextBox20;
+ private System.Windows.Forms.Label wmLabel20;
+ private System.Windows.Forms.TextBox wmTextBox19;
+ private System.Windows.Forms.Label wmLabel19;
+ private System.Windows.Forms.TextBox wmTextBox18;
+ private System.Windows.Forms.Label wmLabel18;
+ private System.Windows.Forms.TextBox wmTextBox17;
+ private System.Windows.Forms.Label wmLabel17;
+ private System.Windows.Forms.TextBox wmTextBox16;
+ private System.Windows.Forms.Label wmLabel16;
+ private System.Windows.Forms.TextBox wmTextBox15;
+ private System.Windows.Forms.Label wmLabel15;
+ private System.Windows.Forms.TextBox wmTextBox14;
+ private System.Windows.Forms.Label wmLabel14;
+ private System.Windows.Forms.TextBox wmTextBox13;
+ private System.Windows.Forms.Label wmLabel13;
+ private System.Windows.Forms.TextBox wmTextBox48;
+ private System.Windows.Forms.Label wmLabel48;
+ private System.Windows.Forms.TextBox wmTextBox47;
+ private System.Windows.Forms.Label wmLabel47;
+ private System.Windows.Forms.TextBox wmTextBox46;
+ private System.Windows.Forms.Label wmLabel46;
+ private System.Windows.Forms.TextBox wmTextBox45;
+ private System.Windows.Forms.Label wmLabel45;
+ private System.Windows.Forms.TextBox wmTextBox44;
+ private System.Windows.Forms.Label wmLabel44;
+ private System.Windows.Forms.TextBox wmTextBox43;
+ private System.Windows.Forms.Label wmLabel43;
+ private System.Windows.Forms.TextBox wmTextBox42;
+ private System.Windows.Forms.Label wmLabel42;
+ private System.Windows.Forms.TextBox wmTextBox41;
+ private System.Windows.Forms.Label wmLabel41;
+ private System.Windows.Forms.TextBox wmTextBox40;
+ private System.Windows.Forms.Label wmLabel40;
+ private System.Windows.Forms.TextBox wmTextBox39;
+ private System.Windows.Forms.Label wmLabel39;
+ private System.Windows.Forms.TextBox wmTextBox38;
+ private System.Windows.Forms.Label wmLabel38;
+ private System.Windows.Forms.TextBox wmTextBox37;
+ private System.Windows.Forms.Label wmLabel37;
+ private System.Windows.Forms.TextBox wmTextBox36;
+ private System.Windows.Forms.Label wmLabel36;
+ private System.Windows.Forms.TextBox wmTextBox35;
+ private System.Windows.Forms.Label wmLabel35;
+ private System.Windows.Forms.TextBox wmTextBox34;
+ private System.Windows.Forms.Label wmLabel34;
+ private System.Windows.Forms.TextBox wmTextBox33;
+ private System.Windows.Forms.Label wmLabel33;
+ private System.Windows.Forms.TextBox wmTextBox32;
+ private System.Windows.Forms.Label wmLabel32;
+ private System.Windows.Forms.TextBox wmTextBox31;
+ private System.Windows.Forms.Label wmLabel31;
+ private System.Windows.Forms.TextBox wmTextBox30;
+ private System.Windows.Forms.Label wmLabel30;
+ private System.Windows.Forms.TextBox wmTextBox29;
+ private System.Windows.Forms.Label wmLabel29;
+ private System.Windows.Forms.TextBox wmTextBox28;
+ private System.Windows.Forms.Label wmLabel28;
+ private System.Windows.Forms.TextBox wmTextBox27;
+ private System.Windows.Forms.Label wmLabel27;
+ private System.Windows.Forms.TextBox wmTextBox26;
+ private System.Windows.Forms.Label wmLabel26;
+ private System.Windows.Forms.TextBox wmTextBox25;
+ private System.Windows.Forms.Label wmLabel25;
+ private System.Windows.Forms.Label activityLabel;
+
+ }
+}
\ No newline at end of file
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.resx b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.resx
new file mode 100644
index 000000000..1af7de150
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationForm.resx
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
\ No newline at end of file
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs
new file mode 100644
index 000000000..9354f0b14
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationParams.cs
@@ -0,0 +1,96 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+using System.IO;
+using System.Text;
+using System.Xml.Serialization;
+using TBF.BenchControl.Generic;
+using TBF.Resources;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public class iPerlCommunicationParams : TestParamsBase, IParamsProvider, ITestParams
+ {
+ public string Activity; /// Communication activity
+
+ public override void InitializeAll()
+ {
+ Activity = "Read Configuration";
+ }
+
+
+ string[] paramNames = new string[]
+ {
+ Strings.Activity,
+ };
+ public override string ParamName(int i) { return paramNames[i]; }
+ public override int ParamsCount() { return paramNames.Length; }
+
+ public override string ToString(int i)
+ {
+ switch (i)
+ {
+ case 0: return Activity;
+ default: return string.Empty;
+ }
+ }
+
+ public void UpdateParam(int i, string strValue)
+ {
+ switch (i)
+ {
+ case 0: Activity = strValue; return;
+ default: return;
+ }
+ }
+
+ public bool ValidateParam(int i, string strValue, out string message)
+ {
+ message = string.Empty;
+
+ switch (i)
+ {
+ case 0:
+ return true;
+ default:
+ message = "Invalid index";
+ return false;
+ }
+ }
+
+ public override void UpdateTestParams(Entities.ComponentTest dbEntity)
+ {
+ if (dbEntity == null) return;
+ try
+ {
+ iPerlCommunicationParams tmp = (iPerlCommunicationParams)(new XmlSerializer(typeof(iPerlCommunicationParams)))
+ .Deserialize(new StringReader(dbEntity.Parameters));
+
+ testParamsEntity = dbEntity;
+ componentName = dbEntity.CmpntName;
+ test = dbEntity.Test;
+
+ Activity = tmp.Activity;
+ }
+ catch
+ {
+ }
+ }
+
+ ///
+ /// Parameterless constructor initializes the parameters
+ ///
+ public iPerlCommunicationParams()
+ {
+ }
+
+ public iPerlCommunicationParams(Entities.ComponentTest testParamsEntity, string componentName, Entities.Test test)
+ {
+ this.testParamsEntity = testParamsEntity;
+ this.componentName = componentName;
+ this.test = test;
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationSeq.cs b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationSeq.cs
new file mode 100644
index 000000000..2cab720ac
--- /dev/null
+++ b/TestBenchFramework/BenchControl/TestMethods/iPerlCommunication/iPerlCommunicationSeq.cs
@@ -0,0 +1,136 @@
+///
+/// Copyright (c) 2015 Sensus Metering Systems
+/// Author: Milan Hanajík
+///
+using System;
+using System.Collections.Generic;
+using System.Text;
+using log4net;
+using TBF.BenchControl;
+using TBF.Boxes;
+using TBF.Resources;
+using TBF.UiBridge;
+
+namespace TBF.BenchControl.TestMethods.iPerlCommunication
+{
+ public class iPerlCommunicationSeq : Sequences.SequenceBase
+ {
+ private static readonly ILog log = LogManager.GetLogger(typeof(iPerlCommunicationSeq));
+
+ System.Windows.Forms.Form modelessDlg;
+ ///
+ delegate void ICommFormFormDlgt(iPerlCommunicationSeq myRef, string activity);
+ ///
+ void OpenIPerlCommForm(iPerlCommunicationSeq myRef, string activity)
+ {
+ myRef.modelessDlg = new iPerlCommunicationForm(WaterMeters, activity);
+ modelessDlg.Show();
+ }
+
+ ///
+ /// Flying start mass collection method sequence
+ ///
+ /// Test entity
+ ///
+ /// Event.Done . . . . . . . OK
+ /// Event.UiCmdStop . . . . Stopped by the user using the on-screen button STOP
+ /// Event.OpArgumentError . Target flow is out of range
+ /// Event.Error . . . . . . Unspecified error
+ ///
+ public IList Execute(Entities.Test test, iPerlCommunicationParams testParams)
+ {
+ IList e = new List(); /// Events from currently running operations
+ Event retVal = Event.Done;
+ checkUiOp = new Operations.CheckUIOp(true); /// Runs in more then one state
+
+ processDataLoggingOp = new TBF.BenchControl.Operations.ProcessDataLoggingOp(processDataLogger, this);
+
+ //====================================
+ // Transition or SetRoute - Start
+ //====================================
+ switch (Transition(transitionBefore, TransitionContext.BeforeTest))
+ {
+ case Event.Error: { retVal = Event.Error; goto stopTest; }
+ case Event.UiCmdStop: { retVal = Event.UiCmdStop; goto stopTest; }
+ }
+
+ if (testParams.Activity.Contains("Simulate"))
+ {
+ IList rList = new List(1);
+
+ Entities.TestResult tstRslt = new Entities.TestResult(test, 1, Entities.MetersKind.Single);
+
+ if (testParams.Activity.Contains("Q1"))
+ {
+ tstRslt.VolumeMaster = tstRslt.VolumeCTV = 5;
+ for (int i = 0; i < WaterMeters.Count; i++)
+ {
+ tstRslt.Meters[i].VolumeMeter = 5;
+ tstRslt.Meters[i].VolumeRef = tstRslt.VolumeCTV;
+ }
+ AddOrOverwriteResult(tstRslt);
+ }
+ else if (testParams.Activity.Contains("Q2"))
+ {
+ tstRslt.VolumeMaster = tstRslt.VolumeCTV = 5;
+ for (int i = 0; i < WaterMeters.Count; i++)
+ {
+ tstRslt.Meters[i].VolumeMeter = 5;
+ tstRslt.Meters[i].VolumeRef = tstRslt.VolumeCTV;
+ }
+ AddOrOverwriteResult(tstRslt);
+ }
+ else if (testParams.Activity.Contains("Q3"))
+ {
+ tstRslt.VolumeMaster = tstRslt.VolumeCTV = 5;
+ for (int i = 0; i < WaterMeters.Count; i++)
+ {
+ tstRslt.Meters[i].VolumeMeter = 5;
+ tstRslt.Meters[i].VolumeRef = tstRslt.VolumeCTV;
+ }
+ AddOrOverwriteResult(tstRslt);
+ }
+
+ rList.Add(Event.Done);
+ return rList;
+ }
+ else
+ {
+ ///
+ /// Show the modeless dialog with error indication
+ ///
+ Program.MainWnd.Invoke(new ICommFormFormDlgt(OpenIPerlCommForm), new object[] { this, testParams.Activity });
+ }
+
+ loop:
+ //------------------------------------------------
+ Bridge.OnActivity(this, Strings.Test_in_progress);
+ //------------------------------------------------
+
+ /// Make sure the CycleBeginForm is closed so that water meter data (s/n) can be copied into results
+ if (UIFlowControl.Stop == WaitBeginFormClosed()) goto stopTest;
+
+ /// Test 'Quit'
+ if ((modelessDlg is GenericDevices.IHasCompleted) && !(modelessDlg as GenericDevices.IHasCompleted).Completed)
+ {
+ goto loop; /// Modeless dilaog not closed, keep looping
+ }
+ modelessDlg = null; /// Modeless dialog is closed now
+
+ stopTest:
+
+ /// Transition sequence at the end of test
+ /// Prevent overwriting 'retVal' in case it was set to non-default value earlier
+ switch (Transition(transitionAfter, TransitionContext.AfterTest))
+ {
+ case Event.Error: { if (retVal == Event.Done) retVal = Event.Error; break; }
+ case Event.UiCmdStop: { if (retVal == Event.Done) retVal = Event.UiCmdStop; break; }
+ }
+
+ /// Create a list with one item 'retVal' (default is Event.Done) and return it
+ IList retList = new List(1);
+ retList.Add(retVal);
+ return retList;
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/ConfigStruct.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/ConfigStruct.cs
index 5eb89d265..566464fab 100644
--- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/ConfigStruct.cs
+++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/ConfigStruct.cs
@@ -119,5 +119,22 @@ namespace TBF.BenchControl.WaterMeters.iPerl
AlarmMask.ToString("X4"),
ConfigCheckSum.ToString("X4"));
}
- }
+
+ public string ToString(int sel)
+ {
+ return string.Format("{1} PCBNr={6} TestModeCfg={7}",
+ Version,
+ MeterState,
+ TargetTimeVeryLowBatt,
+ TargetTimeLowBatt,
+ TestModeTime,
+ EmptyPipeThreshold,
+ PCBNumber[0].ToString("X2") + PCBNumber[1].ToString("X2") + PCBNumber[2].ToString("X2") + PCBNumber[3].ToString("X2") + PCBNumber[4].ToString("X2"),
+ TestModeConfig.ToString("X2"),
+ RadioAddress,
+ TempCalibration,
+ AlarmMask.ToString("X4"),
+ ConfigCheckSum.ToString("X4"));
+ }
+ }
}
diff --git a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs
index 0d25a03b9..cc5833930 100644
--- a/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs
+++ b/TestBenchFramework/BenchControl/WaterMeters/iPerl/WaterMeter.cs
@@ -120,10 +120,13 @@ namespace TBF.BenchControl.WaterMeters.iPerl
public void StopDevice()
{
- stopWorkerThread = true;
- workerThread.Join(2000);
- optoSerialPort.Close();
- optoPortOpen = false;
+ if (DebugLevel == Entities.DebugMode.Normal)
+ {
+ stopWorkerThread = true;
+ workerThread.Join(2000);
+ optoSerialPort.Close();
+ optoPortOpen = false;
+ }
}
///
diff --git a/TestBenchFramework/Properties/AssemblyInfo.cs b/TestBenchFramework/Properties/AssemblyInfo.cs
index 7eb31f0fa..ad66d9624 100644
--- a/TestBenchFramework/Properties/AssemblyInfo.cs
+++ b/TestBenchFramework/Properties/AssemblyInfo.cs
@@ -29,5 +29,5 @@ using System.Runtime.InteropServices;
// Build Number
// Revision
//
-[assembly: AssemblyVersion("1.5.74.1")]
-[assembly: AssemblyFileVersion("1.5.74.1")]
+[assembly: AssemblyVersion("1.5.75.1")]
+[assembly: AssemblyFileVersion("1.5.75.1")]
diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj
index 1f7dbfca2..90f45616c 100644
--- a/TestBenchFramework/TBF.csproj
+++ b/TestBenchFramework/TBF.csproj
@@ -329,12 +329,31 @@
TestMethodCfgCtrl.cs
-
+
Form
-
+
+ iPerlAdjustmentForm.cs
+
+
+
+
+
+
+ Form
+
+
iPerlCommunicationForm.cs
+
+
+
+ UserControl
+
+
+ TestMethodCfgCtrl.cs
+
+
@@ -1484,9 +1503,15 @@
TestMethodCfgCtrl.cs
-
+
+ iPerlAdjustmentForm.cs
+
+
iPerlCommunicationForm.cs
+
+ TestMethodCfgCtrl.cs
+
TestMethodCfgCtrl.cs
diff --git a/packages/ControlBoard/iPerlST/ControlComponent3U.dll b/packages/ControlBoard/iPerlST/ControlComponent3U.dll
index c29e437a3..b4cc632df 100644
Binary files a/packages/ControlBoard/iPerlST/ControlComponent3U.dll and b/packages/ControlBoard/iPerlST/ControlComponent3U.dll differ