C#与VisionPro联合开发——跳转页面
1、跳转页面并打开相机
From1 所有代码展示
using System;
using System.IO;
using System.Windows.Forms;
//引入VisionPro命名空间
using Cognex.VisionPro;
namespace ConnectCamera {
public partial class Form1 : Form {
public Form1() {
InitializeComponent();
}
CogAcqFifoTool fifoTool;
//窗口加载的Load事件
private void Form1_Load(object sender, EventArgs e) {
//进行相机初始化(这里使用的是本地的vpp文件)
string path = Directory.GetCurrentDirectory() + "\\abc.vpp";
try {
//根据路径读取到vpp文件,初始化fifo对象
CogAcqFifoTool fifo = (CogAcqFifoTool)CogSerializer.LoadObjectFromFile(path);
if (fifo != null) {
MessageBox.Show("相机初始化成功!");
if (fifo.Operator.FrameGrabber != null) {
fifoTool = fifo;
}
}
} catch (Exception ex) {
MessageBox.Show("初始化失败:" + ex.Message);
}
}
//相机
private void toolStripLabel1_Click(object sender, EventArgs e) {
//传递到camera页面,这样取景工具在下一个窗体也可以访问到
FrmCamera frm = new FrmCamera(fifoTool);
frm.ShowDialog();
}
}
}
FrmCamera 代码展示
using System;
using System.Windows.Forms;
using Cognex.VisionPro;
namespace ConnectCamera {
public partial class FrmCamera : Form {
//声明 CogAcqFifoTool
CogAcqFifoTool acq = null;
VisionTool visionPro = new VisionTool();
//方法里面传入参数
public FrmCamera(CogAcqFifoTool fofo) {
InitializeComponent();
//显示的是上一个页面传入的图片
cogAcqFifoEditV21.Subject = fofo;
}
//保存图像
private void toolStripLabel1_Click(object sender, EventArgs e) {
string path = Directory.GetCurrentDirectory() + "\\ImageVpp";
//没有文件夹则创建一个文件夹
if (!Directory.Exists(path)) {
Directory.CreateDirectory(path);
}
try {
CogSerializer.SaveObjectToFile(cogAcqFifoEditV21.Subject, path + "\\" + DateTime.Now.ToString("HHmmss") + ".vpp");
MessageBox.Show("保存vpp成功!");
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
}
}
2、跳转页面并打开ToolBlock
From1 代码展示
using System;
using System.IO;
using System.Windows.Forms;
//引入VisionPro
using Cognex.VisionPro;
namespace ConnectCamera {
public partial class Form1 : Form {
public From1(){
InitializeComponent();
}
CogToolBlock tb = null;
//窗口的Load事件
private void Form1_Load(object sender, EventArgs e) {
//进行相机初始化(这里使用的是本地的vpp文件)
string path = Directory.GetCurrentDirectory() + "\\vpp\\tb.vpp";
tb = (CogToolBlock)CogSerializer.LoadObjectFromFile(path);
}
//打开FrmTB窗口
private void btnFrmTB_Click(object sender, EventArgs e) {
FrmTB frmTB = new FrmTB(tb);
frmTB.ShowDialog();
}
}
}
FrmTB窗口 FrmTB 代码展示
using System.Windows.Forms;
using Cognex.VisionPro.ToolBlock;
namespace FrameGrabber {
public partial class FrmTB : Form {
CogToolBlock mTB = null;
public FrmTB(CogToolBlock tb) {
InitializeComponent();
mTB = tb;
}
private void FrmTB_Load(object sender, System.EventArgs e) {
//把读取到的ToolBlock赋值给当前控件
cogToolBlockEditV21.Subject = mTB;
}
}
}