如何使用QT编写一个脚本编译器

为了避免在使用QT+视觉后期设备落地时,重复繁琐的修改视觉参数编译生成可执行文件,在经过长达四个月的思考+验证,最终实现了脚本程序编写视觉算法,调试视觉算法的功能,在此处仅对软件开发项目中的难点进一步记录。


文章目录

  • 如何使用QT编写一个脚本编译器
  • 前言
  • 一、为什么要做视觉脚本编译器
  • 二、程序架构
    • 1.流程框架
    • 2.软件基础功能展示
  • 总结

前言

脚本的编写主要是通过人机互交界面(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)删除帖子。

无名之辈-视觉脚本编译器开发相关推荐

  1. 如何在本地编译器进行油猴脚本的开发

    如何在本地编译器进行油猴脚本的开发 学校突然提前放假了,暂时也不是很想回家,刚好花点时间沉淀一下之前学习的知识,顺便完成一下之前没有完成的一些东西,打算对前端脚本进行一些更新,突然发现我的超星ppt脚 ...

  2. playmaker_Playmaker上的Spotlight:视觉脚本,可让您绕过代码并释放创造力

    playmaker Playmaker the best-selling visual scripting tool on the Unity Asset Store, with over 2,800 ...

  3. Unity 3D学习视觉脚本无需编码即可创建高级游戏

    在本课程中,您将学习如何在Unity中使用可视化脚本(以前称为Bolt)以及如何在不编写一行代码的情况下创建自己的高级游戏所需的一切.本课程将教你如何掌握可视化脚本,即使你以前没有任何关于unity或 ...

  4. shell编程系列26--大型脚本工具开发实战

    shell编程系列26--大型脚本工具开发实战大型脚本工具开发实战拆分脚本功能,抽象函数1.function get_all_group 返回进程组列表字符串2.function get_all_pr ...

  5. ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL、DBA必备)

    ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 文章目录 ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 前 ...

  6. (10)全民小视频引流脚本模块化开发04-已关注用户私信By飞云脚本学院

    课程内容 给已关注的用户逐个发送私信. 操作流程:首页--我的--XX关注--进入已关注的用户列表页,开始逐个发送私信话术.到达底部时,自动停止脚本. 开发环境与工具 APP版本:1.14.5.10 ...

  7. (12)全民小视频引流脚本模块化开发06-已关注用户取关By飞云脚本学院

    课程内容 已关注的用户,逐个取消关注 操作流程:首页--我的--XX关注--进入已关注的用户列表页,开始逐个取消关注.到达底部时,自动停止脚本. 开发环境与工具 APP版本:1.14.5.10 按键精 ...

  8. java的lr语法编译器,编译器开发--- 自己动手用Java写编译器

    课程目录 1.用java实现一个简易编译器1-词法解析入门.mp4 2.用java实现一个简易编译器2-语法解析.mp4 3.语法解析改进及代码生成.mp4 4.输入系统及分词系统概述.mp4 5.输 ...

  9. Script.NET脚本语言开发工具2.1.1版本发布,支持Ruby脚本的开发、调试等功能

    Script.NET是蓝蚂蚁工作室开发的一套用于Tcl/Python/Ruby/Lua/NSIS 等脚本语言开发的集成开发环境,刚刚发布的2.1.1版本新增了Ruby脚本的支持,可以支持Ruby脚本的 ...

最新文章

  1. bzoj2458: [BeiJing2011]最小三角形
  2. 研究生数学建模比赛日程安排
  3. java字数统计_java统计字数
  4. 让element-ui的输入框聚焦的4种方式
  5. android 上传nexus_android发布到nexus私服
  6. 再谈编程范式—程序语言背后的思想
  7. CFS之vruntime记录
  8. 数字媒体技术和数据科学与大数据技术_数据科学与大数据技术专业的女同学,迈出了她的舒适圈...
  9. 离线安装.net4.032位_怎样在断网的情况下安装IE11
  10. 解决域用户安装软件权限问题
  11. java 时间轮_惊艳的时间轮定时器
  12. win7无法识别linux usb设备,win7无法安装usb驱动解决工具
  13. android开机自动启动app,android如何实现开机自动启动Service或app
  14. 我的团长我的团第八集
  15. java软件更换皮肤怎么做_java窗体程序更换皮肤方法详细步骤
  16. android手机固件升级原理,为什么常说Android手机千万别频繁的系统升级,背后的真实原因?...
  17. 安卓版的PanDownload 下载网盘资源
  18. 初中计算机课师徒结对活动记录,师徒结对活动记录表10张(师傅尚积东徒弟丁明路)(备课6节听课4节).doc...
  19. mysql中的like什么意思,MySQL中Like是什么意思?
  20. Codeforces Gym - 101341A Streets of Working Lanterns - 2 [贪心]

热门文章

  1. mongodb备份恢复数据库
  2. java语言文本挖掘 分词_文本挖掘之中文分词入门
  3. Windows账户设置
  4. 人生三十年碎语---不同人生阶段的感悟,呵呵
  5. 分数比较(选择结构)
  6. Linux操作系统实践——Samba服务器搭建
  7. 银行计算机上岸经验,在职银行汪,公务员考试零基础上岸经验,供参考噢
  8. C语言判断字符串类型及个数并输出
  9. IDEA使用Git很慢的问题
  10. 石基信息:完成海信智能商用57.75%股份交割