如何使用QT编写一个脚本编译器
为了避免在使用QT+视觉后期设备落地时,重复繁琐的修改视觉参数编译生成可执行文件,在经过长达四个月的思考+验证,最终实现了脚本程序编写视觉算法,调试视觉算法的功能,在此处仅对软件开发项目中的难点进一步记录。
前言
脚本的编写主要是通过人机互交界面(QWidget)以及自定义封装的视觉算法库(VSLibrary)共同组建的。其中界面中使用到的(QTableWidget的拖拽新建行删除行)等等疑点难点将会在下面做以记录。
一、为什么要做视觉脚本编译器
在视觉项目研发过程当中,即使对现场的考量再好,只要是非独立的视觉机都需要到现场进一步测试(往往独立的视觉机都是标准产品,不需要更多的调试步骤)。在现场调试过程中将会遇到反复的修改程序(视觉算子参数),如果都使用(编译后调试)的方式,程序员在现场将会有较重的工作负担, 工作效率也将大打折扣。
为了改善机器视觉软件在项目开发周期中繁重的工作方式,如果做一款脚本软件,该软件具有以下功能:打开相机以及修改相应参数(兼容Hik、Basler、HALCON-USB3Vision、HALCON-Gige2等驱动)、设置IO以及相应参数(兼容Hik、Nodka、Advantach、以及通用串口IO)、设置光源以及其相应参数(兼容Hik、Nodka、Advantach、Ress、以及通用串口光源控制器)、编写视觉算子、调试视觉算子参数。
如果能够做到以上功能,再对程序进一步优化:设备性能分模块化进行深度优化、算法可以逐条优化封装、研发门槛降低、售后门槛降低。将会大大缩小项目研发周期和节约时间成本。
二、程序架构
1.流程框架
流程框架是指视觉算法在不同线程、不同类的工作划分。其核心参数如何分区管理、流程如何深度优化。本项目将以六个相机的需求创建。
extern YsCameras *YsOT_1;
extern YsCameras *YsOT_2;
extern YsCameras *YsOT_3;
extern YsCameras *YsOT_4;
extern YsCameras *YsOT_5;
extern YsCameras *YsOT_6;
extern Vision_Control_Library *YsCrtl_OT;
extern DebugUI *UIDevice;
extern MV_CC_DEVICE_INFO_LIST Hik_stDeviceList;
2.软件基础功能展示
基本功能: 点击查看视频(下图模糊)
视觉脚本编辑器基础功能
进阶功能:点击查看视频(下图模糊)
脚本编辑器进阶功能
"*******************************************************************************"
"* 洛阳市杨森工业控制技术有限公司 *"
"* Luoyang Yangsen Industrial Control Technology Co., Ltd. *"
"* Program NO. YSVision V1.0 *"
"* "www.lyyangsen.com" *"
"*******************************************************************************"
这将是一个连续更新的博文,感谢公司给的成长机会,让我在寒冬腊月也可以有机会分享经验、交流温暖。
总结
以上仅代表本人在这个行业、这个岗位的个人看法。以及针对遇到的此种问题提出的个人建议,不代表公司以及社会任何组织的任何利益或行为。本文所使用的所有库文件皆可追溯,若有侵权可联系本人(WeChat:Conbo_iwork)删除帖子。