辅助功能窗口提供常用的操作功能。可以免除重复开发时间。
在窗口类中声明一个模块级变量。
private IntPtr m_hIoPage = IntPtr.Zero;
在form窗口的load事件,创建输入输出IO控制点界面。string strParamFile = global.strAppPath + "\\" + global.ROBOT_FILE;
m_hIoPage = uniCreateInputOutputPage(this.tpIo.Handle, global.motion.GetHandle(), strParamFile);
global.ROBOT_FILE为IO定义配置文件。如果form窗口关闭,需要进行销毁。如在FormClosing事件添加如下代码:
if (m_hIoPage != IntPtr.Zero)
{
uniDestroyInputOutputPage(m_hIoPage);
m_hIoPage = IntPtr.Zero;
}
为了实时刷新IO状态,可以在计时器事件中进行刷新,如:if (m_hIoPage != IntPtr.Zero)
{
uniRefreshInputOutputPage(m_hIoPage);
}
在窗口类中声明一个模块级变量。
private IntPtr m_hSingleMoverWnd = IntPtr.Zero;
在form窗口的load事件,创建单轴控制界面。int[] axes = { 1, 2, 3, 4, 5 };
int size = Marshal.SizeOf(axes[0]) * axes.Length;
IntPtr pArr = Marshal.AllocHGlobal(size);
Marshal.Copy(axes, 0, pArr, axes.Length);
m_hSingleMoverWnd = uniCreateSingleMoverWnd(this.Handle, global.robot.GetHandle(), pArr, global.TOTAL_AXIS_COUNT, false);
if (m_hSingleMoverWnd != IntPtr.Zero)
{
uniCenterWindow(m_hSingleMoverWnd, IntPtr.Zero);
uniShowWindow(m_hSingleMoverWnd, true);
}
Marshal.FreeHGlobal(pArr);
上面代码段创建5条轴控制窗口,同时,将窗口居中显示。 如果form窗口关闭,需要进行销毁。如在FormClosing事件添加如下代码:if (IntPtr.Zero != m_hSingleMoverWnd)
{
uniDestroySingleMoverWnd(m_hSingleMoverWnd);
m_hSingleMoverWnd = IntPtr.Zero;
}
RVB视场窗口可以显示相机图像,也可以显示各种RVB控件或检测工具,实现某些特殊的显示内容,如动态演示效果,检测工具的检测结果。RVB视场窗口是由RealView类实现。
首先在form窗口声明模块级变量。
RealView m_sightView = new RealView();
在form窗口的load事件, 完成RealView类实例的初始化。m_sightView.Create(this.Handle, "sight view", 0, 0, this.Width, this.Height);
如果需要,设置视场的图像格式,如:ret = m_sightView.SetSightFormat(global.RIT_RGB, 1280, 960, true);
如果form窗口关闭,需要进行销毁。如在FormClosing事件添加如下代码:m_sightView.Destroy();
如果需要实时显示相机采集的图像,在计时器事件中,添加:m_sightView.Refresh(RealView.UPDATE);
上面的图像假设已经对视场进行了图像内容更行,如:m_sightView.FeedData(pData, size, false);
抖音视频号: 第一感机器视觉
微信公众号: 精浦科技
深圳市软云动力科技有限公司
东莞办事处: 广东省东莞市松湖智谷B6栋225b
公司地址: 广东省深圳市南山区桃园路金桃园大厦2191
深圳市软云动力科技有限公司 版权所有 鄂ICP备2022015826号-2