英威腾VS触摸屏二维码的应用
本例程中生成两个16位正整数变量,用来模拟实际应用中需要生产二维码的数据。本例中显示2个正整数变量共10位数,实际应用中可根据需要定义二维码字符串的长度。新建一个VS触摸屏的空工程,添加一个画面,在画面中添加对应的控件。如下图https://technology.invt.com.cn/upload/article/20221031/1667213967849053.png画面各控件含义为1)数值显示1:16位正整数,对应地址为LW0。2)数值显示2:16位正整数,对应地址为LW1。3)“随机码”位开关:地址LB0;4)“二维码字符串”ASCII显示:地址LW1000,总字数11;5)二维码显示器:监视地址LW1000,字符长度11;各控件属性如下图所示。
https://technology.invt.com.cn/upload/article/20221031/1667214087794374.png
https://technology.invt.com.cn/upload/article/20221031/1667214087470838.png
https://technology.invt.com.cn/upload/article/20221031/1667214087169856.png
https://technology.invt.com.cn/upload/article/20221031/1667214087789569.png
https://technology.invt.com.cn/upload/article/20221031/1667214087759887.png
单击“随机码”位开关触发宏程序RandomCode,程序如下:#include "MacroInit.h"void Macro_main(IN *p){MarcoInit//ToDoLocalWord=RAND();//生成随机数LW0;LocalWord=RAND();//生成随机数LW1;}https://technology.invt.com.cn/upload/article/20221031/1667214186229865.png
循环宏程序QR_Code将两个随机数生产二维码字符串,程序如下:#include "MacroInit.h"void Macro_main(IN *p){MarcoInit//ToDochar source;source=LocalWord/10000; //将LW0分解,第5位数值source=(LocalWord/1000)%10; //将LW0分解,第4位数值source=(LocalWord/100)%10; //将LW0分解,第3位数值source=(LocalWord/10)%10; //将LW0分解,第2位数值source=(LocalWord/1)%10; //将LW0分解,第1位数值source=LocalWord/10000; //将LW1分解,第5位数值source=(LocalWord/1000)%10; //将LW1分解,第5位数值source=(LocalWord/100)%10; //将LW1分解,第5位数值source=(LocalWord/10)%10; //将LW1分解,第5位数值source=(LocalWord/1)%10; //将LW1分解,第5位数值char res;int i=0;for(i=0;i<10;i++){res=source+48; //将0~9的数值转换成ASCII码字符 }res=0;//字符串以/0结束memcpy((char*)&LocalWord,res,11);//将字符串赋给LW1000二维码地址}https://technology.invt.com.cn/upload/article/20221031/1667214231878489.png
注意,虽然二维码显示的字符串只显示10位数,但是实际字符串变量长度为11位,因为字符串最后1位为‘/0’。离线模拟,点击“随机码”按钮,生产随机码并显示结果,如下图。https://technology.invt.com.cn/upload/article/20221031/1667214286801604.png用手机微信扫一下二维码,得到如下图结果。https://technology.invt.com.cn/upload/article/20221031/1667214336368230.png
页:
[1]