1

上位机图像处理和嵌入式模块部署(qmacvisual脚本编辑)

 1 month ago
source link: https://blog.csdn.net/feixiaoxing/article/details/136788433
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        个人认为qmacvisual软件中,另外一个鲜明的特色,就是它本身支持javascript脚本编写,虽然是利用qt script engine完成的。这个脚本编写,让fae或者说现场部署的同学一下子有了配置插件、调整业务的能力。一般来说,业务执行的时候,都是至上而下进行的,很少有循环的。哪怕是我们之前添加了判断语句,也没有办法做到这一点。

        但是现在有了脚本编辑,这就相当于可以用脚本对全局变量进行修改。有了这一点,搭配上跳转语句,这就可以完成循环操作了。不仅如此,对于一般的协议收发、简单的数值计算以及逻辑补充,脚本都是可以胜任的。但涉及到复杂的图像算法,最好还是用dll插件的形式去完成。

1、创建项目和流程

        创建项目和流程的方法和之前一样,这里不再赘述。

2、准备全局环境变量

        这一次和之前的判断语句不同,需要准备两个环境变量。一个是给判断语句提供的,一个是给跳转语句使用的。前者是一个Int数据,命名为count。后者是命名为state,是Bool数据,为常量true,主要用于循环。

11f5d74dde444f6cb4e68422bb565741.png

3、涉及测试用例

        整体测试由一个判断模块和一个延时1插件组成的。其中判断模块又包含了判断语句、延时、脚本编辑和跳转语句。

327a6a44a7ab4a72a883c57eb0235918.png

        其中判断语句的条件是count是否小于5,

2ebd8aafb2ed4c13af9de1c30ae0a495.png

        而跳转语句的条件是state是否等于true。因为整个逻辑执行的过程中,state不会发生改变,所以这里其实仅仅是为了跳转而已。跳转的目标就是判断语句,

6645bff9ec314b0e8b3c026348fb6d8e.png

        剩下来的延时自不必多说。关键是这个脚本编辑应该怎么写。我们发现,全局变量之一的state恒定为true。另外一个全局变量count,如果没有控制模块对它进行修改,那么整个逻辑肯定是走不出去的。所以,有必要在脚本逻辑里面添加必要的内容,让count有机会改变自己,所以我们添加了这样的脚本语句,

f1042824df544080bf42712a863515d8.png

        其中添加的脚本格式是javascript形式。内容如下所示,

        首先通过ProhectGetGlobalValue获得count的数据,加1之后,重新利用ProjectSetGlobalValue去处理。既然count已经发生了改变,那么单击Cycle按钮之后,就可以看到所有的插件都开始运行起来了。一开始肯定是判断模块里面的内容先运行,后期肯定就剩下判断语句和延时1运行了。

1c7642c3f28f4457b65fd9017763c989.png

        重新检查确认后,发现Count数值也维持在5上面不动了。这样就基本达到我们设计的目的了。

bb3dda7e14eb46299eec74fc79cacb3a.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK