diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/Roi.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/Roi.cs
index ca89edcc9..e77a6d01a 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/Roi/Roi.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/Roi.cs
@@ -61,6 +61,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
{
detected = false;
}
+ ///
public void SetRoi(int x, int y, int wid, int hgh)
{
RoiX.Val = x;
@@ -128,8 +129,9 @@ namespace TBF.BenchControl.Network.Camera.Roi
if (args.Command == CfgChangeCmd.CfgChange)
{
RoiCfg.RoiParams = tmpcfg.RoiParams;
- RoiCfg.UseTestImages = tmpcfg.UseTestImages;
RoiCfg.DetectionImagesCount = tmpcfg.DetectionImagesCount;
+ RoiCfg.LoadImages = tmpcfg.LoadImages;
+ RoiCfg.SaveImages = tmpcfg.SaveImages;
RoiCfg.DetectionPeriod1 = tmpcfg.DetectionPeriod1;
RoiCfg.DetectionPeriod2 = tmpcfg.DetectionPeriod2;
}
@@ -153,7 +155,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
if (NetCamera != null && NetCamera.Telnet != null)
{
Telnet = NetCamera.Telnet;
- detectedImageName = string.Format("c:\\TBF\\TftpRoot\\{0}-det-{1}.jpg", RoiCfg.Name, StateMachine.Time);
+ detectedImageName = string.Format("{0}{1}-det-{2}.jpg", Program.ImagesDir, RoiCfg.Name, StateMachine.Time);
return new RoiDetectionOp(this, RoiX, RoiY, RoiWid, RoiHgh);
}
else
diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs
index 90baf9cba..6fd6d35bd 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfg.cs
@@ -19,7 +19,8 @@ namespace TBF.BenchControl.Network.Camera.Roi
public int DetectionImagesCount;
public int DetectionPeriod1;
public int DetectionPeriod2;
- public bool UseTestImages;
+ public bool LoadImages;
+ public bool SaveImages;
/// Procedure parameters
[XmlIgnore]
@@ -52,9 +53,10 @@ namespace TBF.BenchControl.Network.Camera.Roi
public string ToString(int i)
{
- return string.Format("{0} ({1}), N={2}, P1={3}, P2={4}, Prms={5} {6}",
- Name, ParentName, DetectionImagesCount, DetectionPeriod1, DetectionPeriod2,
- RoiParams, UseTestImages ? "TEST" : "");
+ return string.Format("{0} ({1}), N={2}{3}, P1={4}, P2={5}, Prms={6}",
+ Name, ParentName, DetectionImagesCount,
+ LoadImages ? " load" : (SaveImages ? " save" : ""),
+ DetectionPeriod1, DetectionPeriod2, RoiParams);
}
}
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.cs
index 8a3661944..9a9acf64a 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.cs
@@ -69,7 +69,8 @@ namespace TBF.BenchControl.Network.Camera.Roi
parentNameComboBox.Text = string.IsNullOrEmpty(config.ParentName) ? "---" : config.ParentName;
previousRoiComboBox.Text = string.IsNullOrEmpty(config.PreviousRoi) ? "---" : config.PreviousRoi;
argsTextBox.Text = config.RoiParams;
- useTestImagesCheckBox.Checked = config.UseTestImages;
+ loadImagesCheckBox.Checked = config.LoadImages;
+ saveImagesCheckBox.Checked = config.SaveImages;
imagesCountTextBox.Text = config.DetectionImagesCount.ToString();
period1TextBox.Text = config.DetectionPeriod1.ToString();
period2TextBox.Text = config.DetectionPeriod2.ToString();
@@ -81,7 +82,8 @@ namespace TBF.BenchControl.Network.Camera.Roi
parentNameComboBox.Enabled = true;
previousRoiComboBox.Enabled = true;
argsTextBox.Enabled = true;
- useTestImagesCheckBox.Enabled = true;
+ loadImagesCheckBox.Enabled = true;
+ saveImagesCheckBox.Enabled = true;
imagesCountTextBox.Enabled = true;
period1TextBox.Enabled = true;
period2TextBox.Enabled = true;
@@ -130,6 +132,12 @@ namespace TBF.BenchControl.Network.Camera.Roi
message += Environment.NewLine + "When Period2 > Period1, 'Images count' should be even";
}
+ if (loadImagesCheckBox.Checked && saveImagesCheckBox.Checked)
+ {
+ flags |= CfgUpdateFlags.Error;
+ message += Environment.NewLine + "Images cannot be Loaded and Saved at the same time";
+ }
+
return flags;
}
@@ -165,9 +173,15 @@ namespace TBF.BenchControl.Network.Camera.Roi
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
}
- if (config.UseTestImages != useTestImagesCheckBox.Checked)
+ if (config.LoadImages != loadImagesCheckBox.Checked)
{
- config.UseTestImages = useTestImagesCheckBox.Checked;
+ config.LoadImages = loadImagesCheckBox.Checked;
+ flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
+ }
+
+ if (config.SaveImages != saveImagesCheckBox.Checked)
+ {
+ config.SaveImages = saveImagesCheckBox.Checked;
flags |= (CfgUpdateFlags.InvokeCfgChange | CfgUpdateFlags.AnyChange);
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.designer.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.designer.cs
index 2aa96ef9c..b72e30463 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.designer.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiCfgCtrl.designer.cs
@@ -46,12 +46,13 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.label2 = new System.Windows.Forms.Label();
this.imagesCountTextBox = new System.Windows.Forms.TextBox();
this.imagesCountLabel = new System.Windows.Forms.Label();
- this.useTestImagesCheckBox = new System.Windows.Forms.CheckBox();
+ this.loadImagesCheckBox = new System.Windows.Forms.CheckBox();
this.period1TextBox = new System.Windows.Forms.TextBox();
this.period1Label = new System.Windows.Forms.Label();
this.period2TextBox = new System.Windows.Forms.TextBox();
this.period2Label = new System.Windows.Forms.Label();
this.groupBox1 = new System.Windows.Forms.GroupBox();
+ this.saveImagesCheckBox = new System.Windows.Forms.CheckBox();
this.groupBox1.SuspendLayout();
this.SuspendLayout();
//
@@ -61,7 +62,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.argsTextBox.Location = new System.Drawing.Point(92, 19);
this.argsTextBox.Name = "argsTextBox";
this.argsTextBox.Size = new System.Drawing.Size(361, 20);
- this.argsTextBox.TabIndex = 7;
+ this.argsTextBox.TabIndex = 1;
//
// argsLabel
//
@@ -69,7 +70,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.argsLabel.Location = new System.Drawing.Point(6, 22);
this.argsLabel.Name = "argsLabel";
this.argsLabel.Size = new System.Drawing.Size(57, 13);
- this.argsLabel.TabIndex = 6;
+ this.argsLabel.TabIndex = 0;
this.argsLabel.Text = "Arguments";
//
// parentNameLabel
@@ -78,7 +79,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.parentNameLabel.Location = new System.Drawing.Point(13, 60);
this.parentNameLabel.Name = "parentNameLabel";
this.parentNameLabel.Size = new System.Drawing.Size(69, 13);
- this.parentNameLabel.TabIndex = 2;
+ this.parentNameLabel.TabIndex = 3;
this.parentNameLabel.Text = "Parent Name";
//
// nameTextBox
@@ -87,7 +88,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.nameTextBox.Location = new System.Drawing.Point(99, 34);
this.nameTextBox.Name = "nameTextBox";
this.nameTextBox.Size = new System.Drawing.Size(174, 20);
- this.nameTextBox.TabIndex = 1;
+ this.nameTextBox.TabIndex = 2;
//
// nameLabel
//
@@ -95,7 +96,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.nameLabel.Location = new System.Drawing.Point(13, 37);
this.nameLabel.Name = "nameLabel";
this.nameLabel.Size = new System.Drawing.Size(35, 13);
- this.nameLabel.TabIndex = 0;
+ this.nameLabel.TabIndex = 1;
this.nameLabel.Text = "Name";
//
// classNameLabel
@@ -114,7 +115,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.parentNameComboBox.Location = new System.Drawing.Point(99, 57);
this.parentNameComboBox.Name = "parentNameComboBox";
this.parentNameComboBox.Size = new System.Drawing.Size(174, 21);
- this.parentNameComboBox.TabIndex = 3;
+ this.parentNameComboBox.TabIndex = 4;
//
// label1
//
@@ -140,7 +141,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.previousRoiComboBox.Location = new System.Drawing.Point(99, 81);
this.previousRoiComboBox.Name = "previousRoiComboBox";
this.previousRoiComboBox.Size = new System.Drawing.Size(174, 21);
- this.previousRoiComboBox.TabIndex = 5;
+ this.previousRoiComboBox.TabIndex = 6;
//
// previousRoiLabel
//
@@ -148,7 +149,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.previousRoiLabel.Location = new System.Drawing.Point(13, 84);
this.previousRoiLabel.Name = "previousRoiLabel";
this.previousRoiLabel.Size = new System.Drawing.Size(68, 13);
- this.previousRoiLabel.TabIndex = 4;
+ this.previousRoiLabel.TabIndex = 5;
this.previousRoiLabel.Text = "Previous RoI";
//
// helpLabel1
@@ -157,7 +158,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.helpLabel1.Location = new System.Drawing.Point(91, 44);
this.helpLabel1.Name = "helpLabel1";
this.helpLabel1.Size = new System.Drawing.Size(379, 13);
- this.helpLabel1.TabIndex = 8;
+ this.helpLabel1.TabIndex = 2;
this.helpLabel1.Text = "roiWid roiHgh cx cy innerR outerR R3 ang1 ang2 fullAngle teethCount ..." +
"";
//
@@ -167,7 +168,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.label2.Location = new System.Drawing.Point(90, 62);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(350, 13);
- this.label2.TabIndex = 9;
+ this.label2.TabIndex = 3;
this.label2.Text = "... angSpeed( - ccw +cw) initSpeed minMvmt maxFwdMvmt bkgndCorr";
//
// imagesCountTextBox
@@ -176,7 +177,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.imagesCountTextBox.Location = new System.Drawing.Point(92, 84);
this.imagesCountTextBox.Name = "imagesCountTextBox";
this.imagesCountTextBox.Size = new System.Drawing.Size(46, 20);
- this.imagesCountTextBox.TabIndex = 19;
+ this.imagesCountTextBox.TabIndex = 5;
//
// imagesCountLabel
//
@@ -184,19 +185,19 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.imagesCountLabel.Location = new System.Drawing.Point(6, 87);
this.imagesCountLabel.Name = "imagesCountLabel";
this.imagesCountLabel.Size = new System.Drawing.Size(71, 13);
- this.imagesCountLabel.TabIndex = 18;
+ this.imagesCountLabel.TabIndex = 4;
this.imagesCountLabel.Text = "Images count";
//
- // useTestImagesCheckBox
+ // loadImagesCheckBox
//
- this.useTestImagesCheckBox.AutoSize = true;
- this.useTestImagesCheckBox.Enabled = false;
- this.useTestImagesCheckBox.Location = new System.Drawing.Point(183, 87);
- this.useTestImagesCheckBox.Name = "useTestImagesCheckBox";
- this.useTestImagesCheckBox.Size = new System.Drawing.Size(101, 17);
- this.useTestImagesCheckBox.TabIndex = 17;
- this.useTestImagesCheckBox.Text = "Use test images";
- this.useTestImagesCheckBox.UseVisualStyleBackColor = true;
+ this.loadImagesCheckBox.AutoSize = true;
+ this.loadImagesCheckBox.Enabled = false;
+ this.loadImagesCheckBox.Location = new System.Drawing.Point(175, 87);
+ this.loadImagesCheckBox.Name = "loadImagesCheckBox";
+ this.loadImagesCheckBox.Size = new System.Drawing.Size(112, 17);
+ this.loadImagesCheckBox.TabIndex = 6;
+ this.loadImagesCheckBox.Text = "Load images (test)";
+ this.loadImagesCheckBox.UseVisualStyleBackColor = true;
//
// period1TextBox
//
@@ -204,7 +205,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.period1TextBox.Location = new System.Drawing.Point(92, 107);
this.period1TextBox.Name = "period1TextBox";
this.period1TextBox.Size = new System.Drawing.Size(46, 20);
- this.period1TextBox.TabIndex = 21;
+ this.period1TextBox.TabIndex = 9;
//
// period1Label
//
@@ -212,7 +213,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.period1Label.Location = new System.Drawing.Point(6, 110);
this.period1Label.Name = "period1Label";
this.period1Label.Size = new System.Drawing.Size(46, 13);
- this.period1Label.TabIndex = 20;
+ this.period1Label.TabIndex = 8;
this.period1Label.Text = "Period 1";
//
// period2TextBox
@@ -221,7 +222,7 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.period2TextBox.Location = new System.Drawing.Point(92, 130);
this.period2TextBox.Name = "period2TextBox";
this.period2TextBox.Size = new System.Drawing.Size(46, 20);
- this.period2TextBox.TabIndex = 23;
+ this.period2TextBox.TabIndex = 11;
//
// period2Label
//
@@ -229,11 +230,12 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.period2Label.Location = new System.Drawing.Point(6, 133);
this.period2Label.Name = "period2Label";
this.period2Label.Size = new System.Drawing.Size(46, 13);
- this.period2Label.TabIndex = 22;
+ this.period2Label.TabIndex = 10;
this.period2Label.Text = "Period 2";
//
// groupBox1
//
+ this.groupBox1.Controls.Add(this.saveImagesCheckBox);
this.groupBox1.Controls.Add(this.argsTextBox);
this.groupBox1.Controls.Add(this.period2TextBox);
this.groupBox1.Controls.Add(this.argsLabel);
@@ -242,16 +244,27 @@ namespace TBF.BenchControl.Network.Camera.Roi
this.groupBox1.Controls.Add(this.period1TextBox);
this.groupBox1.Controls.Add(this.label2);
this.groupBox1.Controls.Add(this.period1Label);
- this.groupBox1.Controls.Add(this.useTestImagesCheckBox);
+ this.groupBox1.Controls.Add(this.loadImagesCheckBox);
this.groupBox1.Controls.Add(this.imagesCountTextBox);
this.groupBox1.Controls.Add(this.imagesCountLabel);
this.groupBox1.Location = new System.Drawing.Point(7, 110);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(477, 169);
- this.groupBox1.TabIndex = 24;
+ this.groupBox1.TabIndex = 7;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "ROI Detection";
//
+ // saveImagesCheckBox
+ //
+ this.saveImagesCheckBox.AutoSize = true;
+ this.saveImagesCheckBox.Enabled = false;
+ this.saveImagesCheckBox.Location = new System.Drawing.Point(301, 87);
+ this.saveImagesCheckBox.Name = "saveImagesCheckBox";
+ this.saveImagesCheckBox.Size = new System.Drawing.Size(132, 17);
+ this.saveImagesCheckBox.TabIndex = 7;
+ this.saveImagesCheckBox.Text = "Save images (analyze)";
+ this.saveImagesCheckBox.UseVisualStyleBackColor = true;
+ //
// RoiCfgCtrl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
@@ -293,11 +306,12 @@ namespace TBF.BenchControl.Network.Camera.Roi
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox imagesCountTextBox;
private System.Windows.Forms.Label imagesCountLabel;
- private System.Windows.Forms.CheckBox useTestImagesCheckBox;
+ private System.Windows.Forms.CheckBox loadImagesCheckBox;
private System.Windows.Forms.TextBox period1TextBox;
private System.Windows.Forms.Label period1Label;
private System.Windows.Forms.TextBox period2TextBox;
private System.Windows.Forms.Label period2Label;
private System.Windows.Forms.GroupBox groupBox1;
+ private System.Windows.Forms.CheckBox saveImagesCheckBox;
}
}
diff --git a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiDetectionOp.cs b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiDetectionOp.cs
index 77503fed2..11ed14aed 100644
--- a/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiDetectionOp.cs
+++ b/TestBenchFramework/BenchControl/Network/Camera/Roi/RoiDetectionOp.cs
@@ -102,9 +102,10 @@ namespace TBF.BenchControl.Network.Camera.Roi
previous.RoiWid.Val, previous.RoiHgh.Val);
previous = previous.PreviousRoi;
}
- command = string.Format("clp/RoiDetection{0}{1}{2}{3} {4}",
+ command = string.Format("clp/RoiDetection{0}{1}{2}{3}{4} {5}",
masks,
- string.Format(roiCfg.UseTestImages ? " -l {0}" : " -n {0}", roiCfg.DetectionImagesCount),
+ string.Format(roiCfg.LoadImages ? " -l {0}" : " -n {0}", roiCfg.DetectionImagesCount),
+ roiCfg.SaveImages ? " -s" : "",
string.Format(" -p1 {0}", roiCfg.DetectionPeriod1),
string.Format(" -p2 {0}", roiCfg.DetectionPeriod2),
roiCfg.RoiParams);
diff --git a/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionSeq.cs b/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionSeq.cs
index 311c4ca05..f832437c6 100644
--- a/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionSeq.cs
+++ b/TestBenchFramework/BenchControl/TestMethods/RoiDetection/RoiDetectionSeq.cs
@@ -192,7 +192,7 @@ namespace TBF.BenchControl.TestMethods.RoiDetection
if (e.Contains(Event.Retry))
{
- for (int i = 0; i < Math.Min(sensPath.RegisterReaders.Length, display.SelectedImages.Length); i++)
+ for (int i = 0; i < display.SelectedImages.Length; i++)
{
GenericDevices.IRoi roi = sensPath.RegisterReaders[i] as GenericDevices.IRoi;
if (roi != null && display.SelectedImages[i])
diff --git a/TestBenchFramework/Program.cs b/TestBenchFramework/Program.cs
index f57719280..91034cc65 100644
--- a/TestBenchFramework/Program.cs
+++ b/TestBenchFramework/Program.cs
@@ -15,7 +15,8 @@ namespace TBF
{
public class Program
{
- public const string HomeDir = "C:\\Tbf\\"; /// Contains subdirectories Results, Logs, Images, ...
+ public const string HomeDir = "C:\\Tbf\\"; /// Contains subdirectories Results, Logs, Images, ...
+ public const string ImagesDir = "C:\\Tbf\\Images\\";
/// log4net
static ILog log;
@@ -92,6 +93,10 @@ namespace TBF
{
Environment.CurrentDirectory = locAppDataDir;
}
+
+ if (!Directory.Exists(ImagesDir)) Directory.CreateDirectory(ImagesDir);
+ IEnumerable files = Directory.EnumerateFiles(ImagesDir);
+ foreach (var file in files) File.Delete(file);
}
catch (Exception e)
{