1、增加单独Job的保存、添加和创建

2、每个Job单独绑定一个图像窗体
3、支持通过以job的方式外部调用
This commit is contained in:
liu.wenjie
2022-05-09 16:17:41 +08:00
parent 7ca84a8720
commit 9dcba19b67
36 changed files with 1022 additions and 113 deletions

View File

@@ -32,10 +32,14 @@ namespace ToolLib.VisionJob
this.tabJobUnion = new System.Windows.Forms.TabControl();
this.btnCycleRun = new System.Windows.Forms.Button();
this.btnSignael = new System.Windows.Forms.Button();
this.picDeleteJob = new System.Windows.Forms.PictureBox();
this.picNewJob = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.picDeleteJob)).BeginInit();
this.picDeleteJob = new System.Windows.Forms.PictureBox();
this.picSaveJob = new System.Windows.Forms.PictureBox();
this.picOpenJob = new System.Windows.Forms.PictureBox();
((System.ComponentModel.ISupportInitialize)(this.picNewJob)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picDeleteJob)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picSaveJob)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.picOpenJob)).BeginInit();
this.SuspendLayout();
//
// tabJobUnion
@@ -70,17 +74,6 @@ namespace ToolLib.VisionJob
this.btnSignael.UseVisualStyleBackColor = true;
this.btnSignael.Click += new System.EventHandler(this.btnSignael_Click);
//
// picDeleteJob
//
this.picDeleteJob.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.picDeleteJob.Image = ((System.Drawing.Image)(resources.GetObject("picDeleteJob.Image")));
this.picDeleteJob.Location = new System.Drawing.Point(53, 595);
this.picDeleteJob.Name = "picDeleteJob";
this.picDeleteJob.Size = new System.Drawing.Size(35, 40);
this.picDeleteJob.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picDeleteJob.TabIndex = 2;
this.picDeleteJob.TabStop = false;
//
// picNewJob
//
this.picNewJob.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
@@ -93,11 +86,48 @@ namespace ToolLib.VisionJob
this.picNewJob.TabStop = false;
this.picNewJob.Click += new System.EventHandler(this.picNewJob_Click);
//
// picDeleteJob
//
this.picDeleteJob.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.picDeleteJob.Image = ((System.Drawing.Image)(resources.GetObject("picDeleteJob.Image")));
this.picDeleteJob.Location = new System.Drawing.Point(53, 595);
this.picDeleteJob.Name = "picDeleteJob";
this.picDeleteJob.Size = new System.Drawing.Size(35, 40);
this.picDeleteJob.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picDeleteJob.TabIndex = 2;
this.picDeleteJob.TabStop = false;
//
// picSaveJob
//
this.picSaveJob.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.picSaveJob.Image = ((System.Drawing.Image)(resources.GetObject("picSaveJob.Image")));
this.picSaveJob.Location = new System.Drawing.Point(94, 595);
this.picSaveJob.Name = "picSaveJob";
this.picSaveJob.Size = new System.Drawing.Size(35, 40);
this.picSaveJob.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picSaveJob.TabIndex = 2;
this.picSaveJob.TabStop = false;
this.picSaveJob.Click += new System.EventHandler(this.picSaveJob_Click);
//
// picOpenJob
//
this.picOpenJob.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.picOpenJob.Image = ((System.Drawing.Image)(resources.GetObject("picOpenJob.Image")));
this.picOpenJob.Location = new System.Drawing.Point(135, 595);
this.picOpenJob.Name = "picOpenJob";
this.picOpenJob.Size = new System.Drawing.Size(35, 40);
this.picOpenJob.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.picOpenJob.TabIndex = 2;
this.picOpenJob.TabStop = false;
this.picOpenJob.Click += new System.EventHandler(this.picOpenJob_Click);
//
// FormJobManage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(372, 636);
this.Controls.Add(this.picOpenJob);
this.Controls.Add(this.picSaveJob);
this.Controls.Add(this.picDeleteJob);
this.Controls.Add(this.picNewJob);
this.Controls.Add(this.btnSignael);
@@ -108,8 +138,10 @@ namespace ToolLib.VisionJob
this.Name = "FormJobManage";
this.Text = "JobManage";
this.Load += new System.EventHandler(this.FormJobManage_Load);
((System.ComponentModel.ISupportInitialize)(this.picDeleteJob)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picNewJob)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picDeleteJob)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picSaveJob)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.picOpenJob)).EndInit();
this.ResumeLayout(false);
}
@@ -117,8 +149,10 @@ namespace ToolLib.VisionJob
#endregion
private System.Windows.Forms.Button btnCycleRun;
private System.Windows.Forms.Button btnSignael;
public System.Windows.Forms.TabControl tabJobUnion;
private System.Windows.Forms.PictureBox picNewJob;
private System.Windows.Forms.PictureBox picDeleteJob;
public System.Windows.Forms.TabControl tabJobUnion;
private System.Windows.Forms.PictureBox picSaveJob;
private System.Windows.Forms.PictureBox picOpenJob;
}
}

View File

@@ -62,5 +62,35 @@ namespace ToolLib.VisionJob
}
}
}
private void picSaveJob_Click(object sender, EventArgs e)
{
SaveFileDialog myDia = new SaveFileDialog();
string jobName = tabJobUnion.SelectedTab.Text;
myDia.Title = "保存job文件";
myDia.Filter = "job文件(*.job)|*.job";
myDia.FilterIndex = 1;
myDia.FileName = jobName;//这里是key
if (myDia.ShowDialog() == DialogResult.OK)
{
VisionJobParams.pVisionProject.SaveJob(jobName, myDia.FileName);
}
}
private void picOpenJob_Click(object sender, EventArgs e)
{
UIInputForm myUIInputForm = new UIInputForm();
myUIInputForm.Label.Text = "输入新建Job名称";
if (myUIInputForm.ShowDialog() == DialogResult.OK)
{
OpenFileDialog myDia = new OpenFileDialog();
if (myDia.ShowDialog() == DialogResult.OK)
{
string newJobName = myUIInputForm.Editor.Text;
VisionJobParams.pVisionProject.LoadJob(newJobName, myDia.FileName);
}
}
}
}
}

View File

@@ -118,6 +118,40 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="picNewJob.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="picDeleteJob.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAMgAAADICAYAAACtWK6eAAAABGdBTUEAALGPC/xhBQAACJNJREFUeF7t
@@ -160,38 +194,63 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAWfPr0H/jQ1+arHDMPAAAAAElFTkSuQmCC
</value>
</data>
<data name="picNewJob.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<data name="picSaveJob.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="picOpenJob.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAP5SURBVGhD7ZnbTxNBFMZ58d1H/wrffPeFthSIipoQLcao8RYTHjAxUWMU0HZpbQEFBCFAQI0g
eOViTEDlsrullAJaoGnBpggCFcELi73scWYZCWq5rN3t9qFf8iVNd5P5ftuzM2emSQnFs9QUbVBTTIOU
VlFMi9pA+5INjI4MI5/2mllnTv07KGr3SObc5jFAAJBiZHiNnj5KhpJHGKBlYAaklGv6uwCQ99QD2gIG
ZIWQE2BigQdz+wdIQRBqPX2CDCmt5AaQHSIWACsQXnkgYgUgG0QsAbAtL73Ciy0ZRKwBsCWFUAIAu1Aq
CKUAsCWBkBMgq9S+oXUldtCg+9KM7BKJI15yAHzjgvB2xL8lF7V5IN3Iekkc8ZIDQIzw2DgDiSNeCYAo
lQBIAESpBIDSAM/tn2CPmR0jccRLaQBTixu12HR8rcRiRD1zg4aiORJHvBIAUaq+exIO3bYFSZwkFcUk
owbPjJrBi9oC6w7y9fpSGsD3eQnu9fgCJ8tt21JN1mq05Qyeqh5Z1pUNLqPPixojs5NEjSylAbDGZ39w
WoqZwHuDOz1foNXNCz7f4AlqTSxNokaW0gChMA9XGkdD+yzW0JnqYdhfZIPG4WUBoIJewIcAG89QSgJw
wTDoSvsh81Y/2HwcuD+HIee+E/ZZbPBgiIPclkk+1bjJGqEUQJjn4XLDCKRQDJjR1vL3NtPlD0F2/Xu0
OvfhayE0Q2WQqJGlBAAum7zmMThQ3A/GVzOAnjJUdk2tQjQP+IWtpkbP1pCY6yvWAGvD33csCbV+l1mE
dJMVSjt88Njhx3UfQhv9CyTixoolAKoaML5wQ0ahDersP1ZnG+yy7nnhhAKXlJpiLCTe5ooVgPDkH7v+
ePJrbemYxWXDI9eRaFtTLABw+PyNwnfOQYqBCWuo3uMk1tYlN8Bm4W+98aPSYVE/9B/hseQECITCcK3p
zxf27/B4Bqrv9gVIHPGSC+AnWqTw6dte9MJGDP92JXybYwa8c0vx1Y2iqoETFQ600+r7Z7bBxjNOGgrf
ZJ0S7o87gLouH6TftMLBYjs0OwMRwz9iV8JjxR3A6apBqHj9EbLKHEJLUMUuroTvmRfKpnFNeKy4Aphe
WBbagP5JDsZRW5D/zAOZJQNwo31K+HsJ9z9/K2qAczVDkP/EJcqXUBAdekkPI5tbPcAFwkKY609dcKxi
cLWvYb0cnK0dFo7bI4XHigpARdGX0BxcLtZqQ+9DlYF2qinaefGhc75r1D/W55kfSTOxPO5ranqmIe+J
Gw4U2XitkeGza4e/4uuR/Nrpf0XiKCuN3roLP2liHvU17Qj0yG5L53ZyS3wL1X6lSt/rQb9M3u6rUoVO
SvoFejOUQZmsukoAAAAASUVORK5CYII=
</value>
</data>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">

View File

@@ -12,6 +12,7 @@
* ==============================================================================
*/
using CommonMethods;
using FormLib;
using Logger;
using System;
using System.Collections.Generic;
@@ -25,6 +26,7 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using WeifenLuo.WinFormsUI.Docking;
namespace ToolLib.VisionJob
{
@@ -67,6 +69,35 @@ namespace ToolLib.VisionJob
InitJob(VisionJobParams.pVisionProject.Project[jobName]);
}
public void CreateNewJob(string jobName, VisionJob newJob, bool newAddJob = true)
{
TabPage newTab = new TabPage(jobName);
newTab.Controls.Add(new TreeView());
FormJobManage.Instance.tabJobUnion.TabPages.Add(newTab);
if (newAddJob)
{
VisionJobParams.pVisionProject.Project.Add(jobName, newJob);
FormJobManage.Instance.tabJobUnion.SelectedTab = newTab;
// newTab.Select();
}
newJob.JobName = jobName;
InitJob(VisionJobParams.pVisionProject.Project[jobName]);
}
public void AddDispImageindow(DockPanel myPanel, DockState myState, string windowName)
{
if(VisionJobParams.pVisionProject.Project.ContainsKey(windowName))
{
FormImageWindow myImageWindow = VisionJobParams.pVisionProject.Project[windowName].myHalconWindow;
if(myImageWindow == null)
{
myImageWindow = new FormImageWindow();
}
myImageWindow.Text = windowName + "-图像";
myImageWindow.Show(myPanel, myState);
}
}
public void SaveJob()
{
// Serialize.BinarySerialize($"{VisionJobParams.sSysConfigPath}Vision.prj" , VisionJobParams.myProject);

View File

@@ -11,6 +11,7 @@ using System.Text.RegularExpressions;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using ViewROI;
namespace ToolLib.VisionJob
{
@@ -257,6 +258,10 @@ namespace ToolLib.VisionJob
{
if (!isDrawing)
{
TreeView tree = GetJobTree();
graph = tree.CreateGraphics();
tree.CreateGraphics().Dispose();
isDrawing = true;
Thread th = new Thread(() =>
{
@@ -265,9 +270,7 @@ namespace ToolLib.VisionJob
colValueAndColor.Clear();
startNodeAndColor.Clear();
list.Clear();
TreeView tree = GetJobTree();
graph = tree.CreateGraphics();
tree.CreateGraphics().Dispose();
foreach (KeyValuePair<TreeNode, TreeNode> item in D_itemAndSource)
{
// 将此划线线程委托到JOB管理界面
@@ -886,14 +889,21 @@ namespace ToolLib.VisionJob
string assemblyName = $"{L_toolList[i].FormToolName.Split('.')[0]}.{L_toolList[i].toolType.ToString()}Run,{L_toolList[i].FormToolName.Split('.')[0]}";
Type classType = Type.GetType(assemblyName);
IToolRun myTool = (IToolRun)Activator.CreateInstance(classType);
myTool.ToolRun(JobName, i, inputItemNum, treeNode, L_toolList);
myTool.ToolRun(JobName, i, inputItemNum, treeNode, L_toolList, this, myHalconWindow);
}
}
public void FormLogDisp(string mes, Color color, TreeNode treeNode, Logger.MsgLevel msgLevel = Logger.MsgLevel.Info)
{
Logger.LoggerClass.WriteLog(mes, msgLevel);
treeNode.ForeColor = color;
LoggerClass.WriteLog(mes, msgLevel);
if(treeNode != null)
{
treeNode.ForeColor = color;
}
}
[NonSerialized]
public FormImageWindow myHalconWindow = new FormImageWindow();
}
}

View File

@@ -18,6 +18,7 @@ using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ToolLib.VisionJob
{
@@ -50,11 +51,6 @@ namespace ToolLib.VisionJob
foreach (var item in Project)
{
OperateProject.Instance.CreateNewJob(item.Key, false);
//foreach (var tool in item.Value.L_toolList)
//{
// OperateTreeView.Instance.Add_Tool((ToolType)Enum.Parse(typeof(ToolType), tool.toolType.ToString()), false);
//}
// OperateProject.Instance.InitJob(item.Value);
}
return true;
}
@@ -71,5 +67,45 @@ namespace ToolLib.VisionJob
{
Serialize.BinarySerialize(prjFilePath, Project);
}
public bool LoadJob(string jobName,string path)
{
if (!File.Exists(path))
{
Logger.LoggerClass.WriteLog("job路径不存在", true);
return false;
}
else if(Project.ContainsKey(jobName))
{
Logger.LoggerClass.WriteLog("项目中已存在该JOB名称请更换", true);
return false;
}
else
{
try
{
VisionJob myNewJob = Serialize.BinaryDeserialize<VisionJob>(path);
OperateProject.Instance.CreateNewJob(jobName, myNewJob, true); // 新添加job
return true;
}
catch (Exception ex)
{
Logger.LoggerClass.WriteLog("载入项目工程时出现异常!", ex);
return false;
}
}
}
public void SaveJob(string jobName,string filePath)
{
if(Project.ContainsKey(jobName))
{
Serialize.BinarySerialize(filePath, Project[jobName]);
}
else
{
Logger.LoggerClass.WriteLog("保存时出现异常未找到Job", true);
}
}
}
}