1.打开VS, 这里安装的是VS2019, 新建winform窗体.
2.打开水星驱动安装目录下的例程作为参考.
水星驱动安装包可以在大恒图像官网下载最新版本, 安装目录不要有中文路径, 安装之前把杀毒软件以及防火墙关闭,否则安装可能出问题. 我的水星驱动默认安装在c盘,以下是默认安装路径下例程的位置示意图 :
电脑是64位的, 选择x64文件夹下的src , 选择一个.sln文件打开,我的VS是2019的, 打开2015这个文件为例.
建议:
避免有时候可能误操作修改了例程代码, 可以把例程复制一份到自己的文件夹.
如果不小心修改了安装目录下的例程代码, 没有备份,可以使用卸载水星驱动, 再重新安装水星驱动的方法. 当然, 在卸载完水星驱动的时候, 也要删除一下安装目录下的文件夹Daheng Imaging ,避免某些文件残留, 以下是默认安装路径的文件夹位置 :
我们先做一个相机基础采集图像的功能, 参考GxSingleCam. 界面如下:
这里安装的水星驱动版本是2206.9232, 不同水星驱动版本安装目录下的例程可能不一样, 尽可能使用最新版本.
3.在自己工程的窗体上创建4个button按钮和一个picturebox.
此步骤可以自己创建, 也可以直接从例程选中相应控件复制粘贴过来. 这样一来控件名称会和例程的保持一致, 自己创建需要注意一下控件名称问题.
4.窗体加载事件中初始化接口库, 添加库的引用.
双击例程窗体顶部空白处进入窗体加载事件, 可以把初始化接口库的代码复制到自己的工程文件下. _updateUI(); 可以先不用.
报错提示上下文中不存在m_objIGXFactory, 在例程里面找到m_objIGXFactory选中,转到定义, 把例程里面的定义粘贴过来.
粘贴后报错未能找到类型或命名空间名”IGXFactory”. 我们需要引用库进来.
找到例程文件夹下的.dll库, 这里是.NET4.0框架的. 把文件夹下的库拷贝到自己工程文件夹里面.
然后把此库添加引用, 找到自己文件夹下拷贝过来的库添加进来.
库引用进来后, 添加命名空间, 调试改为x64. 报错消失.
5.打开设备按钮功能实现.
双击例程的打开设备按钮, 进入代码, 复制到自己工程里面.
复制进来报错比较多,提示没有定义的报错的话, 解决方式如之前, 在例程里面找到对应的没有定义的项目, 转到定义, 把定义都复制粘贴过来. 某些暂时不需要的项目可以删除或者注释, 比如 __InitUI(),__UpdateUI(),有些必要的不能删除.
定义完之后发现还有两个报错,我们需要把GxBitmap.cs添加进来.
找到例程里面此文件夹下的类文件, GxBitmap.cs, Win32Bitmap.cs拷贝到自己工程文件夹下.
在项目上右键添加-现有项, 把刚才的文件拷贝进来.
再添加命名空间
6.开始采集按钮功能实现
双击例程开始采集按钮, 复制代码过来.
报错提示不存在__CaptureCallbackPro. 在例程里面找到名称,转到定义, 把定义回调的代码复制过来.
报错未能找到GxSingleCam. 这里替换为自己的窗体名字,我的是MainForm.
报错ImageShowAndSave未定义,方法如上, 例程里面找到名称转到定义, 粘贴代码过来.
这里暂时不做存图功能, 可以把相应代码直接删除或者注释.
7.停止采集按钮功能实现
双击例程停止采集按钮, 复制代码
这步应该不会报错, 前面该定义的都定义过了.
8.关闭设备按钮功能实现
例程双击关闭设备按钮, 复制代码过来.
这步m_bIsOpen未定义, 参考前面方法定义一下就好了.
9.测试运行
连接大恒相机, 首先确认相机在水星驱动上可以正常采集图像.
再运行程序, 先点击打开设备, 稍等一会点击开始采集, 正常的话, 显示图像.
例程里面的4个按钮是有状态判断的.然后设置控件使能. 参考_updateUI()方法操作实现此功能.这样可以避免比如还没有点击打开设备, 就点击开始采集的情况.
实际应用中, 打开设备和开始采集两个按钮的功能也可以写在一起, 停止采集和关闭设备按钮的功能可以写在一起.