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

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

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

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

1、创建项目和流程

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

2、准备全局环境变量

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

3、涉及测试用例

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

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

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

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

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

var cnt = ProjectGetGlobalValue("count");
cnt = cnt + 1;
ProjectSetGlobalValue("count", cnt);

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/472875.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java基础 学习笔记九

for循环 for循环语句的语法结构 for(初始化表达式;条件表达式;更新表达式){循环体;}初始化表达式最先被执行,而且只执行一次条件表达式的执行结果必须是一个布尔类型的值更新表达式一般是负责更新某个变量值的(只有更新了某个变量值,条件表达…

codeforces 1600分

文章目录 1.[G. Special Permutation](https://codeforces.com/problemset/problem/1352/G)2.[D. Constructing the Array](https://codeforces.com/problemset/problem/1353/D)3.[C2. k-LCM (hard version)](https://codeforces.com/problemset/problem/1497/C2)4.[C. Circle …

7.【Linux】进程间通信2(共享内存||消息队列)

共享内存 介绍 1.共享内存区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据。 2.当共享内存创建出来后,通过系统调用挂接到…

软件工程-第9章 软件工程项目管理概述

9.1 软件工程管理活动 9.2 软件规模、成本和进度估算 9.3 能力成熟度模型CMM 9.4 ISO 9000系列标准简介 9.5 CMM与ISO 9000系列标准的比较 9.6 本章小结

安装MySQL5.7.19 + 解决数据库乱码

文章目录 1.删除mysql服务 sc delete mysql2.解压到D:\mysql5.7下3.配置管理员环境变量4.D:\mysql5.7\mysql-5.7.19-winx64下创建my.ini1.创建文件2.文件内容 5.管理员打开cmd,切换到 D:\mysql5.7\mysql-5.7.19-winx64\bin6.输入 mysqld -install 安装mysql服务7.初…

python 中怎样使用任意关键词实参?

在 Python 中,可以使用任意数量的关键字实参和任意关键字实参,也被称为 kwargs。 这允许你在函数调用时传递任意数量的关键字参数。 你可以使用任意数量的关键字实参(Keyword Arguments)和任意关键字实参(Arbitrary Ke…

LeetCode每日一题——最后一个单词的长度

最后一个单词的长度OJ链接:58. 最后一个单词的长度 - 力扣(LeetCode) 题目: 思路 : 统计字符串中最后一个单词的长度,那么我们可以定一一个指针,从后向前开始统计,当指针指向的元素…

C语言-----冒泡排序

今天,让我们来学习一下C语言中一个简单的排序算法------冒泡排序。 什么是冒泡排序呢? 冒泡排序是C语言中一个可以将一个数组的内容按照升序或者降序进行重新排列的算法。简单来说,是一种排序的思维。 冒泡排序的核心思想:让同…

2352.相等行列对

题目:给一个下标从0开始、大小为n x n的整数矩阵grid,返回满足Ri 行和 Cj 列相等的行列对(Ri,Cj)的数目。 如果行和列以相同的顺序包含相同的元素(即相等的数组),则认为二者是相等的。 解题思路…

Vue3+.NET6前后端分离式管理后台实战(四)

1,Vue3.NET6前后端分离式管理后台实战(四)已经发布, 程序源码已打包,感兴趣的可以关注下载。 2,源码打包可以下载:

初始Java篇(JavaSE基础语法)(3)

个人主页(找往期文章包括但不限于本期文章中不懂的知识点):我要学编程(ಥ_ಥ)-CSDN博客 目录 方法的使用 方法定义 实参和形参的关系 方法重载 方法签名 递归 方法的使用 方法就是一个代码片段. 类似于 C 语言中的 "函数"…

【前端】卡片渐变色阴影效果 旋转动画

【前端】卡片渐变色阴影效果 旋转动画 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <title>Breathing…

Java集合Collection之LinkedList

LinkeList LinkedList&#xff08;双向链表&#xff09;是一种常见的线性数据结构&#xff0c;但是并不会按线性的顺序存储数据。它由一系列节点组成&#xff0c;每个节点包含数据部分和一个指向下一个节点的引用。相比于数组&#xff0c;链表具有动态大小、插入和删除效率高的…

golang 对接第三方接口 RSA 做签(加密) 验签(解密)

一、过程 1.调用第三方接口前&#xff0c;一般需要按规则将参数按key1value1&key2value2 阿斯克码排序,sign参数不参与加密 2.将排序并连接好的参数字符串通过我方的私钥证书&#xff08;.pem&#xff09;进行加密得到加密串&#xff0c;当然加密得到的是 []byte 字节流&…

2024 Python3.10 系统入门+进阶(二):Python编程环境搭建

目录 一、Windows安装Python1.1 下载并安装 Python1.2 测试安装是否成功 二、Linux系统安装Python(新手可以跳过)2.1 基于RockyLinux系统安装Python(编译安装)2.2 基于Ubuntu系统安装Python(编译安装) 三、如何运行Python程序&#xff1f;3.1 Python 交互式编程3.2 编写Python源…

使用STM32 再实现电动车防盗

项目需求 点击遥控器 A 按键&#xff0c;系统进入警戒模式&#xff0c;一旦检测到震动&#xff08;小偷偷车&#xff09;&#xff0c;则喇叭发出声响报警&#xff0c; 吓退小偷。 点击遥控器 B 按键&#xff0c;系统退出警戒模式&#xff0c;再怎么摇晃系统都不会报警&…

命名空间——初识c++

. 个人主页&#xff1a;晓风飞 专栏&#xff1a;数据结构|Linux|C语言 路漫漫其修远兮&#xff0c;吾将上下而求索 文章目录 经典的Hello Word 起航c关键字c语言的命名冲突问题域作用限定符::命名空间 namespace命名空间定义命名空间的使用1.加命名空间名称及作用域限定符2.使用…

IO扩展芯片应用及方案选型 (74HC595,74HC165,8255,CH351等)

IO扩展芯片应用及方案选型 (74HC595,74HC165,8255,CH351等) 参考书籍《振南技术干货集&#xff1a;单片机–基础进阶创业十年》作者&#xff1a;于振南 在我们进行单片机开发的时候, 经常会发现I/O 口不够用。 一方面是因为我们产品中往往都包括很多的功能, 又有显示, 又有存储…

PolarDN MISC(简单)大礼包 :详细思路过程

0和255 题目给了俩个文件&#xff0c;一个.txt,一个.py .txt文件中包含0和255 一个字节有八位&#xff0c;每一位只能储存1或0&#xff0c;计算机只懂二进制&#xff0c;所以就是2的八次方&#xff0c;又计算机规定从0开始计数&#xff0c;所以是0至255 考虑用编码转换工具将其…

【LeetCode 算法刷题笔记】

题一&#xff1a;1.0151. 反转字符串中的单词 1.1 题目大意 描述&#xff1a;给定一个字符串 s。 要求&#xff1a;反转字符串中所有单词的顺序。 说明&#xff1a; 单词&#xff1a;由非空格字符组成的字符串。s 中使用至少一个空格将字符串中的单词分隔开。 输入字符串 s…