diff --git a/TestBenchFramework/BenchControl/Danfoss/VLT2800/Pump.cs b/TestBenchFramework/BenchControl/Danfoss/VLT2800/Pump.cs
new file mode 100644
index 000000000..c42353538
--- /dev/null
+++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/Pump.cs
@@ -0,0 +1,185 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO.Ports;
+using System.Text;
+using log4net;
+using TBF.BenchControl.Generic;
+using TBF.Boxes;
+
+namespace TBF.BenchControl.Danfoss.VLT2800
+{
+ ///
+ /// Ambient temperature / humidity / pressure meter 'Greco' connected via serial interface (RS232)
+ /// Connection settings: 19200 Bd 8-bits No-parity 1-stop-bit Flow control: none or hardware.
+ ///
+ public class Pump : ComponentBase, IDevice, IOperation, GenericDevices.IAmbient
+ {
+ private static readonly ILog log = LogManager.GetLogger(typeof(Pump));
+ public override string ToString() { return string.Format("Pump-Danfoss-VLT2800({0})", Cfg.ToString(1)); }
+
+ private readonly PumpCfg ambientCfg;
+
+ /// Private fields
+ SerialPort serialPort;
+ StringBuilder measurementBuilder;
+
+ /// The state of the measurement
+ MsrmntState msrmntState;
+
+ /// Measured temperature when MsrmntState == MsrmntState.Valid
+ float temperature;
+
+ /// Measured humidity when MsrmntState == MsrmntState.Valid
+ float humidity;
+
+ /// Measured pressure when MsrmntState == MsrmntState.Valid
+ float pressure;
+
+ /// Measurement time stamp when MsrmntState == MsrmntState.Valid
+ int msrmntTimeStamp;
+
+ ///
+ /// Ambient temperature / humidity / pressure meter 'Greco' connected via serial interface (RS232)
+ /// Connection settings: 19200 Bd 8-bits No-parity 1-stop-bit Flow control: none or hardware.
+ ///
+ public Pump(PumpCfg cfg, IList components)
+ : base(cfg)
+ {
+ ambientCfg = cfg;
+ log.Debug(this.ToString());
+ }
+
+ public void Initialize()
+ {
+ if (ambientCfg.DebugLevel == Entities.DebugMode.Simulate)
+ {
+ temperature = 20.0f;
+ humidity = 40.0f;
+ pressure = 1.0f;
+ msrmntTimeStamp = StateMachine.Time;
+ msrmntState = MsrmntState.Valid;
+ return;
+ }
+
+ string comPortName = "COM" + ambientCfg.ComPortNr.ToString();
+ serialPort = new SerialPort(comPortName, ambientCfg.BaudRate, ambientCfg.Parity, ambientCfg.DataBits, ambientCfg.StopBits);
+ serialPort.Handshake = ambientCfg.Handshake;
+ serialPort.Open();
+ measurementBuilder = new StringBuilder(40);
+ msrmntState = MsrmntState.Busy;
+
+ log.FatalFormat("Successfully initialized device {0}", ToString());
+ }
+
+ /// Run this device
+ public void RunDeviceBefore()
+ {
+ if (ambientCfg.DebugLevel == Entities.DebugMode.Simulate)
+ {
+ msrmntTimeStamp = StateMachine.Time;
+ return;
+ }
+
+ measurementBuilder.Append(serialPort.ReadExisting());
+ int len = measurementBuilder.Length;
+
+ ///
+ /// Device sends each 20 sec one line of ASCII text with data in the following format:
+ /// (temp) 6 characters, two decimal digits, with leading spaces
+ /// TAB 1 character
+ /// (humi) 6 characters, two decimal digits, with leading spaces
+ /// TAB 1 character
+ /// (pressure) 6 characters, one decimal digits, with leading spaces is LT 1000
+ /// CR + LF 2 characters
+ /// Example:
+ /// 23.42 38.08 1061.1
+ /// 23.39 38.04 1060.8
+ /// 23.39 38.08 1061.4
+ ///
+ if (len >= 22)
+ {
+ string measurement = measurementBuilder.ToString();
+ measurementBuilder.Clear();
+
+ float t = 0;
+ float h = 0;
+ float p = 0;
+ if (float.TryParse(measurement.Substring(len - 22, 6), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingWhite,
+ CultureInfo.InvariantCulture, out t) &&
+ measurement[len - 16] == '\t' &&
+ float.TryParse(measurement.Substring(len - 15, 6), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingWhite,
+ CultureInfo.InvariantCulture, out h) &&
+ measurement[len - 9] == '\t' &&
+ float.TryParse(measurement.Substring(len - 8, 6), NumberStyles.AllowDecimalPoint | NumberStyles.AllowLeadingWhite,
+ CultureInfo.InvariantCulture, out p) &&
+ measurement[len - 2] == '\r' &&
+ measurement[len - 1] == '\n')
+ {
+ temperature = t;
+ humidity = h;
+ pressure = p;
+ msrmntTimeStamp = StateMachine.Time;
+ msrmntState = MsrmntState.Valid;
+
+ log.InfoFormat("Msrmnt OK: time = {0}, temp={1}, humi={2}, pres={3}", msrmntTimeStamp, t, h, p);
+ }
+ else
+ {
+ log.Warn("Invalid string received: " + measurement);
+ }
+ }
+ }
+
+ /// Run this device
+ public void RunDeviceAfter()
+ {
+ }
+
+ /// Stop this device
+ public void StopDevice()
+ {
+ if (serialPort != null) serialPort.Close();
+ }
+
+ ///
+ /// Boxes for the operation result
+ ///
+ FloatBox tempBox;
+ FloatBox pressureBox;
+ FloatBox humiBox;
+
+ public IOperation ReadAmbientOp(FloatBox temperature, FloatBox pressure, FloatBox humidity)
+ {
+ this.tempBox = temperature;
+ this.pressureBox = pressure;
+ this.humiBox = humidity;
+ return this;
+ }
+
+ /// Start this operation
+ public void Start()
+ {
+ if (tempBox != null) tempBox.Val = temperature;
+ if (pressureBox != null) pressureBox.Val = pressure;
+ if (humiBox != null) humiBox.Val = humidity;
+ }
+
+ /// Run this operation
+ ///
+ /// Event.FlowInDone or Event.FlowOutDone
+ ///
+ public Event Run()
+ {
+ if (tempBox != null) tempBox.Val = temperature;
+ if (pressureBox != null) pressureBox.Val = pressure;
+ if (humiBox != null) humiBox.Val = humidity;
+ return Event.AmbientDone;
+ }
+
+ /// Stop this operation
+ public void Stop()
+ {
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfg.cs b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfg.cs
new file mode 100644
index 000000000..63aeae482
--- /dev/null
+++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfg.cs
@@ -0,0 +1,49 @@
+using System.IO;
+using System.Collections.Generic;
+using System.IO.Ports;
+using System.Xml.Serialization;
+using TBF.BenchControl.Generic;
+
+namespace TBF.BenchControl.Danfoss.VLT2800
+{
+ public class PumpCfg : ComponentCfgBase, Generic.IComponentCfg
+ {
+ public IComponent GetComponent(IList components) { return new Pump(this, components); }
+ public IComponentCfgCtrl GetControl() { return new PumpCfgCtrl(); }
+
+ ///
+ /// Serialized parameters
+ ///
+ public int ComPortNr;
+ public int BaudRate;
+ public Parity Parity;
+ public int DataBits;
+ public StopBits StopBits;
+ public Handshake Handshake;
+
+ /// Private parameterless constructor invoked by all other (public) constructors
+ PumpCfg()
+ {
+ Name = "Ambient";
+ ParentName = string.Empty;
+ ComPortNr = 6;
+ BaudRate = 19200;
+ Parity = System.IO.Ports.Parity.None;
+ DataBits = 8;
+ StopBits = System.IO.Ports.StopBits.One;
+ Handshake = System.IO.Ports.Handshake.None;
+ }
+
+ public PumpCfg(IComponentFactory factory)
+ : this()
+ {
+ this.Factory = factory;
+ }
+
+ public string ToString(int i)
+ {
+ return string.Format("Name={0}, Com{1}, {2}Bd, {3}-bits, parity={4}, stopBits={5}, {6}",
+ Name, ComPortNr, BaudRate, DataBits, Parity, StopBits, Handshake);
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.cs b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.cs
new file mode 100644
index 000000000..485de2783
--- /dev/null
+++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.cs
@@ -0,0 +1,168 @@
+using System;
+using System.Windows.Forms;
+using System.IO.Ports;
+using log4net;
+using TBF.BenchControl.Generic;
+
+namespace TBF.BenchControl.Danfoss.VLT2800
+{
+ public partial class PumpCfgCtrl : UserControl, IComponentCfgCtrl
+ {
+ static readonly ILog log = LogManager.GetLogger(typeof(PumpCfgCtrl));
+
+ public bool ShowMore { get { return false; } }
+
+ PumpCfg config;
+ public IComponentCfg Config
+ {
+ get { return config as IComponentCfg; }
+ set
+ {
+ config = value as PumpCfg;
+ Redraw();
+ }
+ }
+
+ public PumpCfgCtrl()
+ {
+ InitializeComponent();
+
+ parityComboBox.Items.Add(Parity.None.ToString());
+ parityComboBox.Items.Add(Parity.Even.ToString());
+ parityComboBox.Items.Add(Parity.Odd.ToString());
+
+ stopBitsComboBox.Items.Add(StopBits.None.ToString());
+ stopBitsComboBox.Items.Add(StopBits.One.ToString());
+ stopBitsComboBox.Items.Add(StopBits.OnePointFive.ToString());
+ stopBitsComboBox.Items.Add(StopBits.Two.ToString());
+
+ handshakeComboBox.Items.Add(Handshake.None.ToString());
+ handshakeComboBox.Items.Add(Handshake.RequestToSend.ToString());
+ handshakeComboBox.Items.Add(Handshake.XOnXOff.ToString());
+ }
+
+ int GetParityIx(Parity par)
+ {
+ if (par == Parity.None) return 0;
+ if (par == Parity.Even) return 0;
+ if (par == Parity.Odd) return 0;
+ return -1;
+ }
+ Parity GetParity(string str)
+ {
+ if (str.Equals(Parity.None.ToString())) return Parity.None;
+ if (str.Equals(Parity.Even.ToString())) return Parity.Even;
+ if (str.Equals(Parity.Odd.ToString())) return Parity.Odd;
+ return (Parity)(-1);
+ }
+
+ int GetStopBitsIx(StopBits sb)
+ {
+ if (sb == StopBits.None) return 0;
+ if (sb == StopBits.One) return 1;
+ if (sb == StopBits.OnePointFive) return 2;
+ if (sb == StopBits.Two) return 3;
+ return -1;
+ }
+ StopBits GetStopBits(string str)
+ {
+ if (str.Equals(StopBits.None.ToString())) return StopBits.None;
+ if (str.Equals(StopBits.One.ToString())) return StopBits.One;
+ if (str.Equals(StopBits.OnePointFive.ToString())) return StopBits.OnePointFive;
+ if (str.Equals(StopBits.Two.ToString())) return StopBits.Two;
+ return (StopBits)(-1);
+ }
+
+ int GetHandshakeIx(Handshake par)
+ {
+ if (par == Handshake.None) return 0;
+ if (par == Handshake.RequestToSend) return 0;
+ if (par == Handshake.XOnXOff) return 0;
+ return -1;
+ }
+ Handshake GetHandshake(string str)
+ {
+ if (str.Equals(Handshake.None.ToString())) return Handshake.None;
+ if (str.Equals(Handshake.RequestToSend.ToString())) return Handshake.RequestToSend;
+ if (str.Equals(Handshake.XOnXOff.ToString())) return Handshake.XOnXOff;
+ return (Handshake)(-1);
+ }
+
+ private void AbbientCfgCtrl_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;
+ comPortNrTextBox.Text = config.ComPortNr.ToString();
+ baudRateTextBox.Text = config.BaudRate.ToString();
+ parityComboBox.Text = config.Parity.ToString();
+ dataBitsTextBox.Text = config.DataBits.ToString();
+ stopBitsComboBox.Text = config.StopBits.ToString();
+ handshakeComboBox.Text = config.Handshake.ToString();
+ }
+
+ public void Unlock()
+ {
+ nameTextBox.Enabled = true;
+ comPortNrTextBox.Enabled = true;
+ baudRateTextBox.Enabled = true;
+ parityComboBox.Enabled = true;
+ dataBitsTextBox.Enabled = true;
+ stopBitsComboBox.Enabled = true;
+ handshakeComboBox.Enabled = true;
+ }
+
+ 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;
+ config.ComPortNr = int.Parse(comPortNrTextBox.Text);
+ config.BaudRate = int.Parse(baudRateTextBox.Text);
+ config.Parity = GetParity(parityComboBox.SelectedItem.ToString());
+ config.DataBits = int.Parse(dataBitsTextBox.Text);
+ config.StopBits = GetStopBits(stopBitsComboBox.SelectedItem.ToString());
+ config.Handshake = GetHandshake(handshakeComboBox.SelectedItem.ToString());
+
+ return flags;
+ }
+
+ public CfgUpdateFlags VerifyCfg(ref string message)
+ {
+ CfgUpdateFlags flags = CfgUpdateFlags.None;
+
+ int dummy;
+ if (!int.TryParse(comPortNrTextBox.Text, out dummy) || dummy < 1 || dummy > 999)
+ {
+ flags |= CfgUpdateFlags.Error;
+ message += Environment.NewLine + "'Serial Port Number' is not valid";
+ }
+
+ if (!int.TryParse(baudRateTextBox.Text, out dummy) || dummy < 150 || dummy > 115200)
+ {
+ flags |= CfgUpdateFlags.Error;
+ message += Environment.NewLine + "'Baud Rate' is not valid";
+ }
+
+ if (!int.TryParse(dataBitsTextBox.Text, out dummy) || dummy < 7 || dummy > 8)
+ {
+ flags |= CfgUpdateFlags.Error;
+ message += Environment.NewLine + "'Data Bits' is not valid";
+ }
+
+ return flags;
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.designer.cs b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.designer.cs
new file mode 100644
index 000000000..0a66c86f9
--- /dev/null
+++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.designer.cs
@@ -0,0 +1,226 @@
+namespace TBF.BenchControl.Danfoss.VLT2800
+{
+ partial class PumpCfgCtrl
+ {
+ ///
+ /// 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.comPortNrTextBox = new System.Windows.Forms.TextBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.baudRateLabel = new System.Windows.Forms.Label();
+ this.baudRateTextBox = new System.Windows.Forms.TextBox();
+ this.partityLabel = new System.Windows.Forms.Label();
+ this.dataBitsLabel = new System.Windows.Forms.Label();
+ this.dataBitsTextBox = new System.Windows.Forms.TextBox();
+ this.stopBitsLabel = new System.Windows.Forms.Label();
+ this.handshakeLabel = new System.Windows.Forms.Label();
+ this.nameTextBox = new System.Windows.Forms.TextBox();
+ this.nameLabel = new System.Windows.Forms.Label();
+ this.classNameLabel = new System.Windows.Forms.Label();
+ this.parityComboBox = new System.Windows.Forms.ComboBox();
+ this.stopBitsComboBox = new System.Windows.Forms.ComboBox();
+ this.handshakeComboBox = new System.Windows.Forms.ComboBox();
+ this.SuspendLayout();
+ //
+ // comPortNrTextBox
+ //
+ this.comPortNrTextBox.Enabled = false;
+ this.comPortNrTextBox.Location = new System.Drawing.Point(140, 52);
+ this.comPortNrTextBox.Name = "comPortNrTextBox";
+ this.comPortNrTextBox.Size = new System.Drawing.Size(34, 20);
+ this.comPortNrTextBox.TabIndex = 4;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(29, 55);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(98, 13);
+ this.label1.TabIndex = 3;
+ this.label1.Text = "Serial Port Number:";
+ //
+ // baudRateLabel
+ //
+ this.baudRateLabel.AutoSize = true;
+ this.baudRateLabel.Location = new System.Drawing.Point(29, 79);
+ this.baudRateLabel.Name = "baudRateLabel";
+ this.baudRateLabel.Size = new System.Drawing.Size(58, 13);
+ this.baudRateLabel.TabIndex = 5;
+ this.baudRateLabel.Text = "Baud Rate";
+ //
+ // baudRateTextBox
+ //
+ this.baudRateTextBox.Enabled = false;
+ this.baudRateTextBox.Location = new System.Drawing.Point(140, 76);
+ this.baudRateTextBox.Name = "baudRateTextBox";
+ this.baudRateTextBox.Size = new System.Drawing.Size(130, 20);
+ this.baudRateTextBox.TabIndex = 6;
+ //
+ // partityLabel
+ //
+ this.partityLabel.AutoSize = true;
+ this.partityLabel.Location = new System.Drawing.Point(29, 103);
+ this.partityLabel.Name = "partityLabel";
+ this.partityLabel.Size = new System.Drawing.Size(33, 13);
+ this.partityLabel.TabIndex = 7;
+ this.partityLabel.Text = "Parity";
+ //
+ // dataBitsLabel
+ //
+ this.dataBitsLabel.AutoSize = true;
+ this.dataBitsLabel.Location = new System.Drawing.Point(29, 127);
+ this.dataBitsLabel.Name = "dataBitsLabel";
+ this.dataBitsLabel.Size = new System.Drawing.Size(50, 13);
+ this.dataBitsLabel.TabIndex = 9;
+ this.dataBitsLabel.Text = "Data Bits";
+ //
+ // dataBitsTextBox
+ //
+ this.dataBitsTextBox.Enabled = false;
+ this.dataBitsTextBox.Location = new System.Drawing.Point(140, 124);
+ this.dataBitsTextBox.Name = "dataBitsTextBox";
+ this.dataBitsTextBox.Size = new System.Drawing.Size(34, 20);
+ this.dataBitsTextBox.TabIndex = 10;
+ //
+ // stopBitsLabel
+ //
+ this.stopBitsLabel.AutoSize = true;
+ this.stopBitsLabel.Location = new System.Drawing.Point(29, 151);
+ this.stopBitsLabel.Name = "stopBitsLabel";
+ this.stopBitsLabel.Size = new System.Drawing.Size(49, 13);
+ this.stopBitsLabel.TabIndex = 11;
+ this.stopBitsLabel.Text = "Stop Bits";
+ //
+ // handshakeLabel
+ //
+ this.handshakeLabel.AutoSize = true;
+ this.handshakeLabel.Location = new System.Drawing.Point(29, 175);
+ this.handshakeLabel.Name = "handshakeLabel";
+ this.handshakeLabel.Size = new System.Drawing.Size(62, 13);
+ this.handshakeLabel.TabIndex = 13;
+ this.handshakeLabel.Text = "Handshake";
+ //
+ // nameTextBox
+ //
+ this.nameTextBox.Enabled = false;
+ this.nameTextBox.Location = new System.Drawing.Point(140, 28);
+ this.nameTextBox.Name = "nameTextBox";
+ this.nameTextBox.Size = new System.Drawing.Size(130, 20);
+ this.nameTextBox.TabIndex = 2;
+ //
+ // nameLabel
+ //
+ this.nameLabel.AutoSize = true;
+ this.nameLabel.Location = new System.Drawing.Point(30, 31);
+ this.nameLabel.Name = "nameLabel";
+ this.nameLabel.Size = new System.Drawing.Size(35, 13);
+ this.nameLabel.TabIndex = 1;
+ this.nameLabel.Text = "Name";
+ //
+ // classNameLabel
+ //
+ this.classNameLabel.AutoSize = true;
+ this.classNameLabel.Location = new System.Drawing.Point(137, 7);
+ this.classNameLabel.Name = "classNameLabel";
+ this.classNameLabel.Size = new System.Drawing.Size(83, 13);
+ this.classNameLabel.TabIndex = 0;
+ this.classNameLabel.Text = "ComonentName";
+ //
+ // parityComboBox
+ //
+ this.parityComboBox.Enabled = false;
+ this.parityComboBox.FormattingEnabled = true;
+ this.parityComboBox.Location = new System.Drawing.Point(140, 100);
+ this.parityComboBox.Name = "parityComboBox";
+ this.parityComboBox.Size = new System.Drawing.Size(130, 21);
+ this.parityComboBox.TabIndex = 8;
+ //
+ // stopBitsComboBox
+ //
+ this.stopBitsComboBox.Enabled = false;
+ this.stopBitsComboBox.FormattingEnabled = true;
+ this.stopBitsComboBox.Location = new System.Drawing.Point(140, 148);
+ this.stopBitsComboBox.Name = "stopBitsComboBox";
+ this.stopBitsComboBox.Size = new System.Drawing.Size(130, 21);
+ this.stopBitsComboBox.TabIndex = 12;
+ //
+ // handshakeComboBox
+ //
+ this.handshakeComboBox.Enabled = false;
+ this.handshakeComboBox.FormattingEnabled = true;
+ this.handshakeComboBox.Location = new System.Drawing.Point(140, 172);
+ this.handshakeComboBox.Name = "handshakeComboBox";
+ this.handshakeComboBox.Size = new System.Drawing.Size(130, 21);
+ this.handshakeComboBox.TabIndex = 14;
+ //
+ // AmbientCfgCtrl
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.BackColor = System.Drawing.SystemColors.Control;
+ this.Controls.Add(this.handshakeComboBox);
+ this.Controls.Add(this.stopBitsComboBox);
+ this.Controls.Add(this.parityComboBox);
+ this.Controls.Add(this.nameTextBox);
+ this.Controls.Add(this.nameLabel);
+ this.Controls.Add(this.classNameLabel);
+ this.Controls.Add(this.handshakeLabel);
+ this.Controls.Add(this.stopBitsLabel);
+ this.Controls.Add(this.dataBitsTextBox);
+ this.Controls.Add(this.dataBitsLabel);
+ this.Controls.Add(this.partityLabel);
+ this.Controls.Add(this.baudRateTextBox);
+ this.Controls.Add(this.baudRateLabel);
+ this.Controls.Add(this.comPortNrTextBox);
+ this.Controls.Add(this.label1);
+ this.Name = "AmbientCfgCtrl";
+ this.Size = new System.Drawing.Size(300, 240);
+ this.Load += new System.EventHandler(this.AbbientCfgCtrl_Load);
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.TextBox comPortNrTextBox;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label baudRateLabel;
+ private System.Windows.Forms.TextBox baudRateTextBox;
+ private System.Windows.Forms.Label partityLabel;
+ private System.Windows.Forms.Label dataBitsLabel;
+ private System.Windows.Forms.TextBox dataBitsTextBox;
+ private System.Windows.Forms.Label stopBitsLabel;
+ private System.Windows.Forms.Label handshakeLabel;
+ private System.Windows.Forms.TextBox nameTextBox;
+ private System.Windows.Forms.Label nameLabel;
+ private System.Windows.Forms.Label classNameLabel;
+ private System.Windows.Forms.ComboBox parityComboBox;
+ private System.Windows.Forms.ComboBox stopBitsComboBox;
+ private System.Windows.Forms.ComboBox handshakeComboBox;
+
+ }
+}
diff --git a/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.resx b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.resx
new file mode 100644
index 000000000..1af7de150
--- /dev/null
+++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpCfgCtrl.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/Danfoss/VLT2800/PumpFactory.cs b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpFactory.cs
new file mode 100644
index 000000000..676c3b535
--- /dev/null
+++ b/TestBenchFramework/BenchControl/Danfoss/VLT2800/PumpFactory.cs
@@ -0,0 +1,18 @@
+using TBF.BenchControl.Generic;
+
+namespace TBF.BenchControl.Danfoss.VLT2800
+{
+ public class PumpFactory : IComponentFactory
+ {
+ public string ClassName { get { return "Pump-Danfoss-VLT2800"; } }
+
+ public void ResetStaticProperties() { Pump.ResetStaticProperties(); }
+
+ public IComponentCfg DefaultConfig() { return new PumpCfg(this); }
+
+ public IComponentCfg CmpntCfgFromCmpntEntity(Entities.Component component)
+ {
+ return ComponentCfgBase.CreateFromDbEntity(typeof(PumpCfg), component, this);
+ }
+ }
+}
diff --git a/TestBenchFramework/BenchControl/TbfComponents.cs b/TestBenchFramework/BenchControl/TbfComponents.cs
index a52d7dd83..e551e1144 100644
--- a/TestBenchFramework/BenchControl/TbfComponents.cs
+++ b/TestBenchFramework/BenchControl/TbfComponents.cs
@@ -35,6 +35,7 @@ namespace TBF.BenchControl
Factories.Add(new MettlerToledo.BalanceNewFactory());
Factories.Add(new Elde.PressureMeter.PressureMeterFactory());
Factories.Add(new Elde.Pump.PumpFactory());
+ Factories.Add(new Danfoss.VLT2800.PumpFactory());
Factories.Add(new Elde.PumpWithFM.PumpFactory());
Factories.Add(new Elde.PumpTandem.PumpFactory());
Factories.Add(new TestMethods.ReferenceFlowmeterCalibration.TestMethodFactory());
diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj
index 3f312d707..e94120519 100644
--- a/TestBenchFramework/TBF.csproj
+++ b/TestBenchFramework/TBF.csproj
@@ -163,6 +163,15 @@
+
+
+
+ UserControl
+
+
+ PumpCfgCtrl.cs
+
+
Form
@@ -990,6 +999,9 @@
IdcCameraCfgCtrl.cs
+
+ PumpCfgCtrl.cs
+
CycleBeginningForm.cs