返回列表 发布新帖

英威腾VS触摸屏二维码的应用

2225 0
发表于 2024-7-15 13:37:47 | 查看全部 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本例程中生成两个16位正整数变量,用来模拟实际应用中需要生产二维码的数据。本例中显示2个正整数变量共10位数,实际应用中可根据需要定义二维码字符串的长度。
新建一个VS触摸屏的空工程,添加一个画面,在画面中添加对应的控件。如下图

                               
登录/注册后可看大图

画面各控件含义为
1)数值显示1:16位正整数,对应地址为LW0。
2)数值显示2:16位正整数,对应地址为LW1。
3)“随机码”位开关:地址LB0;
4)“二维码字符串”ASCII显示:地址LW1000,总字数11;
5)二维码显示器:监视地址LW1000,字符长度11;
各控件属性如下图所示。

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图

单击“随机码”位开关触发宏程序RandomCode,程序如下:
#include "MacroInit.h"
void Macro_main(IN *p)
{
MarcoInit
//ToDo
LocalWord[0]=RAND();//生成随机数LW0;
LocalWord[1]=RAND();//生成随机数LW1;
}

                               
登录/注册后可看大图


循环宏程序QR_Code将两个随机数生产二维码字符串,程序如下:
#include "MacroInit.h"
void Macro_main(IN *p)
{
MarcoInit
//ToDo
char source[10];
source[0]=LocalWord[0]/10000; //将LW0分解,第5位数值
source[1]=(LocalWord[0]/1000)%10; //将LW0分解,第4位数值
source[2]=(LocalWord[0]/100)%10; //将LW0分解,第3位数值
source[3]=(LocalWord[0]/10)%10; //将LW0分解,第2位数值
source[4]=(LocalWord[0]/1)%10; //将LW0分解,第1位数值
source[5]=LocalWord[1]/10000; //将LW1分解,第5位数值
source[6]=(LocalWord[1]/1000)%10; //将LW1分解,第5位数值
source[7]=(LocalWord[1]/100)%10; //将LW1分解,第5位数值
source[8]=(LocalWord[1]/10)%10; //将LW1分解,第5位数值
source[9]=(LocalWord[1]/1)%10; //将LW1分解,第5位数值
char res[11];
int i=0;
for(i=0;i<10;i++)
{
res=source+48; //将0~9的数值转换成ASCII码字符
}
res[10]=0;//字符串以/0结束
memcpy((char*)&LocalWord[1000],res,11);//将字符串赋给LW1000二维码地址
}

                               
登录/注册后可看大图

注意,虽然二维码显示的字符串只显示10位数,但是实际字符串变量长度为11位,因为字符串最后1位为‘/0’。
离线模拟,点击“随机码”按钮,生产随机码并显示结果,如下图。

                               
登录/注册后可看大图
用手机微信扫一下二维码,得到如下图结果。

                               
登录/注册后可看大图

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2024 英威腾技术论坛 版权所有 All Rights Reserved. 粤ICP备07504406号
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表