diff --git a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs
index 202a51245..b35d0d347 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/Camera.cs
@@ -56,8 +56,8 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
string image;
- Telnet.TelnetClient telnet;
- TerminalDlg terminalDlg;
+ public Telnet.TelnetClient Telnet;
+ private TerminalDlg terminalDlg;
public Camera() {}
@@ -69,7 +69,7 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
netAdapter = TbfComponents.FindComponent(cfg.ParentName, components) as GenericDevices.INetworkAdapter;
if (netAdapter == null) throw new ArgumentNullException("no network adapter");
- telnet = null;
+ Telnet = null;
terminalDlg = null;
running = false;
@@ -89,15 +89,15 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
if (!cameraDetected) throw new Exception("No camera detected");
/// Open telnet clint and start the log-in process
- telnet = new Telnet.TelnetClient(this, cameraCfg.Name, ClpUserName, ClpPassword, ClpPrompt);
+ Telnet = new Telnet.TelnetClient(this, cameraCfg.Name, ClpUserName, ClpPassword, ClpPrompt);
if (cameraCfg.DisplayTerminal)
{
- terminalDlg = new TerminalDlg(cameraCfg.Name, telnet);
+ terminalDlg = new TerminalDlg(cameraCfg.Name, Telnet);
terminalDlg.Show();
}
- telnet.Enqueue(new Telnet.Command(Telnet.CmdAction.CONNECT, ipAddress.ToString(), 10, 30));
+ Telnet.Enqueue(new Telnet.Command(Network.Telnet.CmdAction.CONNECT, ipAddress.ToString(), 10, 30));
running = true;
@@ -112,10 +112,10 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
terminalDlg = null;
}
- if (telnet != null)
+ if (Telnet != null)
{
- telnet.Dispose();
- telnet = null;
+ Telnet.Dispose();
+ Telnet = null;
}
running = false;
@@ -128,7 +128,12 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
public IOperation LiveStreamOp()
{
- return new LiveStreamOp(this, telnet);
+ return new LiveStreamOp(this, Telnet, "clp/livestream.sh");
+ }
+
+ public IOperation HRLiveStreamOp()
+ {
+ return new LiveStreamOp(this, Telnet, "clp/hrlivestream.sh");
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/LiveStreamOp.cs b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/LiveStreamOp.cs
index fe40874bc..d71efce5d 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/LiveStreamOp.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/LiveStreamOp.cs
@@ -6,6 +6,7 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
{
readonly Camera camera;
readonly Telnet.TelnetClient telnet;
+ readonly string command;
bool liveStreamCommandSent;
@@ -13,10 +14,11 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
/// Events: Event.None or Event.Error
///
/// CLP1611.Camera reference
- public LiveStreamOp(Camera camera, Telnet.TelnetClient telnet)
+ public LiveStreamOp(Camera camera, Telnet.TelnetClient telnet, string command)
{
this.camera = camera;
this.telnet = telnet;
+ this.command = command;
}
@@ -31,7 +33,7 @@ namespace TBF.BenchControl.Network.Camera.CLP1611
{
if (telnet.State == TelnetClient.TelnetState.Inactive)
{
- telnet.Enqueue(new Telnet.Command(Telnet.CmdAction.SEND_STRING, "clp/livestream.sh"));
+ telnet.Enqueue(new Telnet.Command(Telnet.CmdAction.SEND_STRING, command));
liveStreamCommandSent = true;
}
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/RoiDetectionOp.cs b/TestBenchFramework/BenchControl/Network/Camera/CLP1611/RoiDetectionOp.cs
deleted file mode 100644
index 5db8f79df..000000000
--- a/TestBenchFramework/BenchControl/Network/Camera/CLP1611/RoiDetectionOp.cs
+++ /dev/null
@@ -1,49 +0,0 @@
-using TBF.BenchControl.Network.Telnet;
-
-namespace TBF.BenchControl.Network.Camera.CLP1611
-{
- public class RoiDetectionOp : IOperation
- {
- readonly Camera camera;
- readonly Telnet.TelnetClient telnet;
-
- bool liveStreamCommandSent;
-
- ///
- /// Events: Event.None or Event.Error
- ///
- /// CLP1611.Camera reference
- public RoiDetectionOp(Camera camera, Telnet.TelnetClient telnet)
- {
- this.camera = camera;
- this.telnet = telnet;
- }
-
-
- public void Start()
- {
- liveStreamCommandSent = false;
- }
-
- public Event Run()
- {
- if (!liveStreamCommandSent)
- {
- if (telnet.State == TelnetClient.TelnetState.Inactive)
- {
- telnet.Enqueue(new Telnet.Command(Telnet.CmdAction.SEND_COMMAND, "clp/roidetection.sh"));
- liveStreamCommandSent = true;
- }
- }
- return Event.None;
- }
-
- public void Stop()
- {
- if (liveStreamCommandSent)
- {
- telnet.Enqueue(new Telnet.Command(Telnet.CmdAction.SEND_COMMAND, Telnet.TelnetClient.CtrlCCommand));
- }
- }
- }
-}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoI.cs b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoI.cs
index ab1f9cacc..bdea1578d 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoI.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoI.cs
@@ -18,6 +18,16 @@ namespace TBF.BenchControl.Network.Camera.RoI
protected readonly RoICfg roiCfg;
+ readonly CLP1611.Camera camera;
+ readonly Telnet.TelnetClient telnet;
+
+
+ Boxes.IntBox oroiX;
+ Boxes.IntBox oroiY;
+ Boxes.IntBox oroiWid;
+ Boxes.IntBox oroiHgh;
+
+
public RoI()
{
}
@@ -26,7 +36,28 @@ namespace TBF.BenchControl.Network.Camera.RoI
: base(cfg)
{
roiCfg = cfg as RoICfg;
+ camera = TbfComponents.FindComponent(cfg.ParentName, components) as CLP1611.Camera;
+ if (camera != null) telnet = camera.Telnet;
+
+ oroiX = new Boxes.IntBox();
+ oroiY = new Boxes.IntBox();
+ oroiWid = new Boxes.IntBox();
+ oroiHgh = new Boxes.IntBox();
+
log.Debug(this.ToString());
}
+
+ public IOperation RoiDetectionOp()
+ {
+ if (camera != null && telnet != null)
+ {
+ return new RoiDetectionOp(this, camera, telnet, string.Format("clp/RoiDetection {0}", roiCfg.Args),
+ oroiX, oroiY, oroiWid, oroiHgh);
+ }
+ else
+ {
+ return null;
+ }
+ }
}
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfg.cs b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfg.cs
index bc0dc4261..2f367e092 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfg.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfg.cs
@@ -12,7 +12,7 @@ namespace TBF.BenchControl.Network.Camera.RoI
///
/// Serialized parameters
///
- public int HardwareAddress;
+ public string Args;
/// Private parameterless constructor invoked by all other (public) constructors
RoICfg() { }
@@ -22,13 +22,13 @@ namespace TBF.BenchControl.Network.Camera.RoI
{
Name = name;
Factory = factory;
- ParentName = "Network.Camera";
- HardwareAddress = 1;
+ ParentName = "Camera";
+ Args = string.Empty;
}
public string ToString(int i)
{
- return string.Format("Name={0}, HWAddr={1}", Name, HardwareAddress);
+ return string.Format("Name={0}, Parent={1}, Args={2}", Name, ParentName, Args);
}
}
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.cs b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.cs
index 47f00fecd..82f8dfa69 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.cs
@@ -62,14 +62,14 @@ namespace TBF.BenchControl.Network.Camera.RoI
classNameLabel.Text = config.Factory.ClassName;
nameTextBox.Text = config.Name;
parentNameComboBox.Text = string.IsNullOrEmpty(config.ParentName) ? "---" : config.ParentName;
- hwAddressTextBox.Text = config.HardwareAddress.ToString();
+ argsTextBox.Text = config.Args;
}
public void Unlock()
{
nameTextBox.Enabled = true;
parentNameComboBox.Enabled = true;
- hwAddressTextBox.Enabled = true;
+ argsTextBox.Enabled = true;
}
public CfgUpdateFlags UpdateCfg()
@@ -80,7 +80,7 @@ namespace TBF.BenchControl.Network.Camera.RoI
config.Name = nameTextBox.Text;
config.ParentName = parentNameComboBox.Text.Equals("---") ? string.Empty : parentNameComboBox.Text;
- config.HardwareAddress = int.Parse(hwAddressTextBox.Text);
+ config.Args = argsTextBox.Text;
return flags;
}
@@ -89,18 +89,13 @@ namespace TBF.BenchControl.Network.Camera.RoI
{
CfgUpdateFlags flags = CfgUpdateFlags.None;
- int dummy;
if (!parentNameComboBox.Items.Contains(parentNameComboBox.Text))
{
flags |= CfgUpdateFlags.Error;
message += Environment.NewLine + "Invalid 'Parent Name'";
}
- if (!int.TryParse(hwAddressTextBox.Text, out dummy) || dummy < 1 || dummy > 63)
- {
- flags |= CfgUpdateFlags.Error;
- message += Environment.NewLine + "'HW Address' should be between 1 and 63";
- }
- return flags;
+
+ return flags;
}
}
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.designer.cs b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.designer.cs
index 26002e52b..6142122b7 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.designer.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoICfgCtrl.designer.cs
@@ -31,8 +31,8 @@ namespace TBF.BenchControl.Network.Camera.RoI
///
private void InitializeComponent()
{
- this.hwAddressTextBox = new System.Windows.Forms.TextBox();
- this.bitPositionLabel = new System.Windows.Forms.Label();
+ this.argsTextBox = new System.Windows.Forms.TextBox();
+ this.argsLabel = new System.Windows.Forms.Label();
this.parentNameLabel = new System.Windows.Forms.Label();
this.nameTextBox = new System.Windows.Forms.TextBox();
this.nameLabel = new System.Windows.Forms.Label();
@@ -40,27 +40,27 @@ namespace TBF.BenchControl.Network.Camera.RoI
this.parentNameComboBox = new System.Windows.Forms.ComboBox();
this.SuspendLayout();
//
- // hwAddressTextBox
+ // argsTextBox
//
- this.hwAddressTextBox.Enabled = false;
- this.hwAddressTextBox.Location = new System.Drawing.Point(122, 99);
- this.hwAddressTextBox.Name = "hwAddressTextBox";
- this.hwAddressTextBox.Size = new System.Drawing.Size(46, 20);
- this.hwAddressTextBox.TabIndex = 6;
+ this.argsTextBox.Enabled = false;
+ this.argsTextBox.Location = new System.Drawing.Point(104, 99);
+ this.argsTextBox.Name = "argsTextBox";
+ this.argsTextBox.Size = new System.Drawing.Size(372, 20);
+ this.argsTextBox.TabIndex = 6;
//
- // bitPositionLabel
+ // argsLabel
//
- this.bitPositionLabel.AutoSize = true;
- this.bitPositionLabel.Location = new System.Drawing.Point(36, 102);
- this.bitPositionLabel.Name = "bitPositionLabel";
- this.bitPositionLabel.Size = new System.Drawing.Size(67, 13);
- this.bitPositionLabel.TabIndex = 5;
- this.bitPositionLabel.Text = "HW Address";
+ this.argsLabel.AutoSize = true;
+ this.argsLabel.Location = new System.Drawing.Point(18, 102);
+ this.argsLabel.Name = "argsLabel";
+ this.argsLabel.Size = new System.Drawing.Size(57, 13);
+ this.argsLabel.TabIndex = 5;
+ this.argsLabel.Text = "Arguments";
//
// parentNameLabel
//
this.parentNameLabel.AutoSize = true;
- this.parentNameLabel.Location = new System.Drawing.Point(36, 76);
+ this.parentNameLabel.Location = new System.Drawing.Point(18, 76);
this.parentNameLabel.Name = "parentNameLabel";
this.parentNameLabel.Size = new System.Drawing.Size(69, 13);
this.parentNameLabel.TabIndex = 3;
@@ -69,7 +69,7 @@ namespace TBF.BenchControl.Network.Camera.RoI
// nameTextBox
//
this.nameTextBox.Enabled = false;
- this.nameTextBox.Location = new System.Drawing.Point(122, 47);
+ this.nameTextBox.Location = new System.Drawing.Point(104, 47);
this.nameTextBox.Name = "nameTextBox";
this.nameTextBox.Size = new System.Drawing.Size(130, 20);
this.nameTextBox.TabIndex = 2;
@@ -77,7 +77,7 @@ namespace TBF.BenchControl.Network.Camera.RoI
// nameLabel
//
this.nameLabel.AutoSize = true;
- this.nameLabel.Location = new System.Drawing.Point(36, 50);
+ this.nameLabel.Location = new System.Drawing.Point(18, 50);
this.nameLabel.Name = "nameLabel";
this.nameLabel.Size = new System.Drawing.Size(35, 13);
this.nameLabel.TabIndex = 1;
@@ -86,7 +86,7 @@ namespace TBF.BenchControl.Network.Camera.RoI
// classNameLabel
//
this.classNameLabel.AutoSize = true;
- this.classNameLabel.Location = new System.Drawing.Point(119, 21);
+ this.classNameLabel.Location = new System.Drawing.Point(101, 21);
this.classNameLabel.Name = "classNameLabel";
this.classNameLabel.Size = new System.Drawing.Size(83, 13);
this.classNameLabel.TabIndex = 0;
@@ -96,24 +96,24 @@ namespace TBF.BenchControl.Network.Camera.RoI
//
this.parentNameComboBox.Enabled = false;
this.parentNameComboBox.FormattingEnabled = true;
- this.parentNameComboBox.Location = new System.Drawing.Point(122, 73);
+ this.parentNameComboBox.Location = new System.Drawing.Point(104, 73);
this.parentNameComboBox.Name = "parentNameComboBox";
this.parentNameComboBox.Size = new System.Drawing.Size(130, 21);
this.parentNameComboBox.TabIndex = 4;
//
- // CameraCfgCtrl
+ // RoICfgCtrl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.parentNameComboBox);
- this.Controls.Add(this.hwAddressTextBox);
- this.Controls.Add(this.bitPositionLabel);
+ this.Controls.Add(this.argsTextBox);
+ this.Controls.Add(this.argsLabel);
this.Controls.Add(this.parentNameLabel);
this.Controls.Add(this.nameTextBox);
this.Controls.Add(this.nameLabel);
this.Controls.Add(this.classNameLabel);
- this.Name = "CameraCfgCtrl";
- this.Size = new System.Drawing.Size(300, 200);
+ this.Name = "RoICfgCtrl";
+ this.Size = new System.Drawing.Size(500, 300);
this.Load += new System.EventHandler(this.PumpCfgCtrl_Load);
this.ResumeLayout(false);
this.PerformLayout();
@@ -122,8 +122,8 @@ namespace TBF.BenchControl.Network.Camera.RoI
#endregion
- private System.Windows.Forms.TextBox hwAddressTextBox;
- private System.Windows.Forms.Label bitPositionLabel;
+ private System.Windows.Forms.TextBox argsTextBox;
+ private System.Windows.Forms.Label argsLabel;
private System.Windows.Forms.Label parentNameLabel;
private System.Windows.Forms.TextBox nameTextBox;
private System.Windows.Forms.Label nameLabel;
diff --git a/TestBenchFramework/BenchControl/Network/Camera/RoI/RoiDetectionOp.cs b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoiDetectionOp.cs
new file mode 100644
index 000000000..295bd7922
--- /dev/null
+++ b/TestBenchFramework/BenchControl/Network/Camera/RoI/RoiDetectionOp.cs
@@ -0,0 +1,65 @@
+using TBF.BenchControl.Network.Telnet;
+
+namespace TBF.BenchControl.Network.Camera.RoI
+{
+ public class RoiDetectionOp : IOperation
+ {
+ readonly CLP1611.Camera camera;
+ readonly Telnet.TelnetClient telnet;
+ readonly string command;
+
+ bool roiDetectionCommandSent;
+
+ Boxes.IntBox oroiX;
+ Boxes.IntBox oroiY;
+ Boxes.IntBox oroiWid;
+ Boxes.IntBox oroiHgh;
+
+
+ ///
+ /// Events: Event.None or Event.Error
+ ///
+ /// CLP1611.Camera reference
+ public RoiDetectionOp(RoI roi, CLP1611.Camera camera, Telnet.TelnetClient telnet, string command,
+ Boxes.IntBox oroiX,
+ Boxes.IntBox oroiY,
+ Boxes.IntBox oroiWid,
+ Boxes.IntBox oroiHgh)
+ {
+ this.camera = camera;
+ this.telnet = telnet;
+ this.command = command;
+ this.oroiX = oroiX;
+ this.oroiY = oroiY;
+ this.oroiWid = oroiWid;
+ this.oroiHgh = oroiHgh;
+ }
+
+
+ public void Start()
+ {
+ roiDetectionCommandSent = false;
+ }
+
+ public Event Run()
+ {
+ if (!roiDetectionCommandSent)
+ {
+ if (telnet.State == TelnetClient.TelnetState.Inactive)
+ {
+ telnet.Enqueue(new Telnet.Command(Telnet.CmdAction.SEND_COMMAND, command));
+ roiDetectionCommandSent = true;
+ }
+ }
+ return Event.None;
+ }
+
+ public void Stop()
+ {
+ if (roiDetectionCommandSent)
+ {
+ telnet.Enqueue(new Telnet.Command(Telnet.CmdAction.SEND_COMMAND, Telnet.TelnetClient.CtrlCCommand));
+ }
+ }
+ }
+}
diff --git a/TestBenchFramework/TBF.csproj b/TestBenchFramework/TBF.csproj
index 739084eea..9b42ebf50 100644
--- a/TestBenchFramework/TBF.csproj
+++ b/TestBenchFramework/TBF.csproj
@@ -514,7 +514,6 @@
-
Form
@@ -530,6 +529,7 @@
RoICfgCtrl.cs
+