using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Windows.Forms;
|
using System.IO;
|
using HalconDotNet;
|
|
|
namespace HalconTools
|
{
|
public partial class frmJobManager : Form
|
{
|
public SerializeFileTool<List<Job>> sft = new SerializeFileTool<List<Job>>();
|
public List<Job> jobs = new List<Job>();
|
public HImage MainImage = null;
|
|
public frmJobManager()
|
{
|
InitializeComponent();
|
}
|
|
private void btnAddJob_Click(object sender, EventArgs e)
|
{
|
Job job = new Job();
|
job.name = txtJobName.Text;
|
job.tools = new List<JobTool>();
|
JobTool jobTool = new JobTool();
|
jobTool.type = ToolType.FindLine;
|
job.tools.Add(jobTool);
|
jobs.Add(job);
|
|
string path = Application.StartupPath + "\\JobConfige";
|
if (!Directory.Exists(path)) Directory.CreateDirectory(path);
|
path += "\\JobConfige.xml";
|
|
sft.SetConfig(path, jobs);
|
|
InitData();
|
}
|
|
private void InitData()
|
{
|
cmbTools.Items.Clear();
|
cmbToolType.Items.Clear();
|
cmbJobName.Items.Clear();
|
|
for (int i = 0; i < 4; i++)
|
{
|
cmbToolType.Items.Add((ToolType)i);
|
}
|
|
jobs = sft.GetConfig(Application.StartupPath + "\\JobConfige\\JobConfige.xml");
|
for (int i = 0; i < jobs.Count; i++)
|
{
|
cmbJobName.Items.Add(jobs[i].name);
|
}
|
for (int i = 0; i < jobs[0].tools.Count; i++)
|
{
|
cmbTools.Items.Add(i);
|
}
|
|
cmbJobName.SelectedIndex = 0;
|
cmbTools.SelectedIndex = 0;
|
|
cmbToolType.SelectedIndex = (int)jobs[0].tools[0].type;
|
}
|
|
private void InitData(int jobNo,int toolNo)
|
{
|
cmbTools.Items.Clear();
|
cmbToolType.Items.Clear();
|
cmbJobName.Items.Clear();
|
|
for (int i = 0; i < 4; i++)
|
{
|
cmbToolType.Items.Add((ToolType)i);
|
}
|
jobs = sft.GetConfig(Application.StartupPath + "\\JobConfige\\JobConfige.xml");
|
|
for (int i = 0; i < jobs.Count; i++)
|
{
|
cmbJobName.Items.Add(jobs[i].name);
|
}
|
for (int i = 0; i < jobs[0].tools.Count; i++)
|
{
|
cmbTools.Items.Add(i);
|
}
|
|
cmbJobName.SelectedIndex = jobNo;
|
cmbTools.SelectedIndex = toolNo;
|
|
cmbToolType.SelectedIndex = (int)jobs[jobNo].tools[toolNo].type;
|
}
|
|
private void frmJobManager_Load(object sender, EventArgs e)
|
{
|
InitData();
|
}
|
|
private void cmbTools_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
int JobNo = cmbJobName.SelectedIndex;
|
int ToolNo = cmbTools.SelectedIndex;
|
cmbToolType .SelectedIndex =(int)jobs[JobNo].tools[ToolNo].type ;
|
}
|
|
private void cmbJobName_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
int JobNo = cmbJobName.SelectedIndex;
|
|
cmbTools.Items.Clear();
|
for (int i = 0; i < jobs[JobNo].tools.Count; i++)
|
{
|
cmbTools.Items.Add(i);
|
}
|
cmbTools.SelectedIndex = 0;
|
cmbToolType.SelectedIndex = (int)jobs[JobNo].tools[0].type;
|
}
|
|
private void btnParaModify_Click(object sender, EventArgs e)
|
{
|
int JobNo = cmbJobName.SelectedIndex;
|
int ToolNo = cmbTools.SelectedIndex;
|
JobTool tmpTool = new JobTool();
|
tmpTool.type = (ToolType)cmbToolType.SelectedIndex;
|
tmpTool.fitCircleParam = jobs[JobNo].tools[ToolNo].fitCircleParam;
|
tmpTool.fitLineParam = jobs[JobNo].tools[ToolNo].fitLineParam;
|
tmpTool.matchingParam = jobs[JobNo].tools[ToolNo].matchingParam;
|
tmpTool.modelPath = jobs[JobNo].tools[ToolNo].modelPath;
|
tmpTool.screwParam = jobs[JobNo].tools[ToolNo].screwParam;
|
|
switch (tmpTool.type)
|
{
|
case ToolType.FindLine:
|
|
if (MainImage == null) return;
|
frmFitCircleAndLine frmfit = new frmFitCircleAndLine(tmpTool, MainImage);
|
frmfit.ShowDialog();
|
|
tmpTool.fitCircleParam = null;
|
tmpTool.fitLineParam = null;
|
tmpTool.matchingParam = null;
|
tmpTool.modelPath = null;
|
tmpTool.fitLineParam = frmfit.LineParam;
|
tmpTool.screwParam = null;
|
|
break;
|
|
case ToolType.FindCircle:
|
|
if (MainImage == null) return;
|
frmFitCircleAndLine frmfit1 = new frmFitCircleAndLine(tmpTool, MainImage);
|
frmfit1.ShowDialog();
|
|
tmpTool.fitCircleParam = null;
|
tmpTool.fitLineParam = null;
|
tmpTool.matchingParam = null;
|
tmpTool.modelPath = null;
|
tmpTool.fitCircleParam = frmfit1.CircleParam;
|
tmpTool.screwParam = null;
|
|
break;
|
|
case ToolType.Matching:
|
break;
|
|
case ToolType.Screw :
|
|
if (MainImage == null) return;
|
frmScrewAssistant frmScrew = new frmScrewAssistant(tmpTool, MainImage);
|
frmScrew.ShowDialog();
|
|
tmpTool.fitCircleParam = null;
|
tmpTool.fitLineParam = null;
|
tmpTool.matchingParam = null;
|
tmpTool.modelPath = null;
|
tmpTool.fitCircleParam = null;
|
tmpTool.screwParam = frmScrew.mScrewPara;
|
|
break;
|
}
|
|
jobs[JobNo].tools[ToolNo] = tmpTool;
|
}
|
|
private void btnSaveJobs_Click(object sender, EventArgs e)
|
{
|
sft.SetConfig(Application.StartupPath + "\\JobConfige\\JobConfige.xml", jobs);
|
}
|
|
private void btnAddTool_Click(object sender, EventArgs e)
|
{
|
JobTool tool = new JobTool();
|
tool.type = ToolType.FindLine;
|
|
int JobNo = cmbJobName.SelectedIndex;
|
jobs[JobNo].tools.Add(tool);
|
|
sft.SetConfig(Application.StartupPath + "\\JobConfige\\JobConfige.xml", jobs);
|
|
InitData(JobNo, jobs[JobNo].tools.Count - 1);
|
}
|
|
private void btnDelTool_Click(object sender, EventArgs e)
|
{
|
int JobNo = cmbJobName.SelectedIndex;
|
int ToolNo = cmbTools.SelectedIndex;
|
|
jobs[JobNo].tools.RemoveAt(ToolNo);
|
|
sft.SetConfig(Application.StartupPath + "\\JobConfige\\JobConfige.xml", jobs);
|
|
InitData();
|
}
|
|
private void btnLoadImage_Click(object sender, EventArgs e)
|
{
|
OpenFileDialog imagePath = new OpenFileDialog();
|
imagePath.Filter = "*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf";
|
|
if (imagePath.ShowDialog() == DialogResult.OK)
|
{
|
MainImage = new HImage(imagePath.FileName);
|
|
HTuple imageWidth = null, imageHeight = null;
|
HOperatorSet.GetImageSize(MainImage, out imageWidth, out imageHeight);
|
HOperatorSet.SetPart(hWindowControl1.HalconWindow, 0, 0, imageHeight - 1, imageWidth - 1);
|
HOperatorSet.DispObj(MainImage, hWindowControl1.HalconWindow);
|
}
|
|
}
|
}
|
}
|