二维码控件如何使用?
什么是二维码控件?
二维码是将数据用某种特定的几何图形,在平面上以一定规律分布黑白相间的图形,记录数据符号信息。给用户扫码支付灯等应用。二维码可以由用户主机输入,也可以在编辑工程时通过属性设置,然后显示在串口屏上。
本例程中介绍二维码控件常见的应用,结合工程中的画面介绍每一个应用的配置,常见的应用如下所示:
- 更新二维码
- 按钮更新二维码
适用范围:全系列
例程下载链接:《二维码控件应用》(点击跳转)
12.1 二维码属性介绍
二维码控件属性如下所示
文本
二维码初始默认的显示内容
放大系数
设置单个点的显示大小。设置自动,二维码会自动铺满控件的整个区域。
错误纠正
即二维码的容错能力,具有纠错功能,这使得二维码因屏幕污损等引起局部遮掩时,照样可以正确得到识读。
编码模式
二维码的编码模式,支持如下编码
- Numeric:数字编码,从0到9。如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits,编成多长还要看二维码的尺寸
- Alphabet numeric:字符编码。包括 0-9,大写的A到Z(没有小写),以及符号$ % * + – . / : 包括空格
- 8-bit data:八位字节。可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的编码
- Kanji(shift-jis):日文编码,也是双字节编码。同样,也可以用于中文编码
- ECI:用于特殊的字符集。并不是所有的扫描器都支持这种编码
- FNC1-first position/FNC1-second position:主要是给一些特殊的工业或行业用的。比如GS1条形码之类的
前景/背景颜色
二维码的前景/背景颜色,此属性应尽量不做修改。即设置前景色为黑色,背景色为白色,则效果如下所示
为增加二维码的识别成功率,尽量不修改此属性,即使用控件的默认颜色
12. 2 更新二维码
【更新二维码】画面,介绍用户设备和串口屏通讯时,用户设备向串口屏发送指令,更新二维码控件的内容
画面配置
在【更新二维码】画面的“背景图片”导入相应的美工图片。在该画面中添加二维码控件,如下所示
属性配置
设置控件ID为1的二维码控件的属性,设置【文本】为“广州大彩”,配置如下所示
运行预览
运行虚拟屏,VisualTFT软件和虚拟屏用“虚拟串口”建立联机。
打开【指令助手】,选择左侧导航栏【二维码控件】,在“更新二维码控件”中,设置画面ID为0,设置控件ID为1,填写文本【文本】为“跳动符号串口屏”,点击“发送”。则在虚拟屏中,显示为“跳动符号串口屏”,请使用二维码扫码器查看内容,运行效果如下所示
MCU控制显示二维码
参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。
例如用户需实现二维码显示“大彩串口屏”,则直接调用二维码设置函数SetTextValue( )即可,代码如下所示
/*********************************************************************
** Function name: void SetTextValue(uint16 screen_id,
** uint16 control_id,
** uchar *str);
** Descriptions : 设置二维码值
** input parameters: screen_id: 画面ID
** control_id: 控件ID
** str: 二维码的值
** output parameters: 无
** Returned value : 无
*********************************************************************/
{
……
SetTextValue(0,1,”跳动符号串口屏”); //设置画面0二维码控件1的值为“跳动符号串口屏”
……
}
12.3 按钮更新二维码
【按钮更新二维码】画面,介绍用户按下按钮后,更新二维码控件的内容
画面配置
在【按钮更新二维码】画面的“背景图片”导入相应的美工图片。画面中添加1个二维码控件(控件ID:1),1个按钮控件(控件ID:2),如下所示
属性配置
二维码控件
设置控件ID为1的二维码控件的属性,设置【二维码】为“跳动符号”,配置如下所示
按钮控件
设置控件ID为2的按钮控件的属性,设置【触摸虚框】为“否”,【按下时的按钮】选中按下状态的图片,勾选【裁剪】,【触摸用途】为“开关描述”,【操作风格】为“瞬变”。配置如下所示
在指令助手界面,左侧导航栏选择【二维码控件】,设置“更新二维码控件”区域的指令参数,填写对应的参数。如例程中,控制画面(画面ID:1)中的二维码控件(控件ID:1),显示“www.gz-dc.com”,如下所示
运行预览
运行虚拟屏,VisualTFT软件和虚拟屏用“虚拟串口”建立联机。点击按钮“官网链接”,二维码更新为“www.gz-dc.com”,运行效果如下所示
MCU控制显示字符串
参考开发包keil程序中的him.dever.h文件函数声明以及him.dever.c文件中的定义。
例如用户需实现二维码显示“跳动符号串口屏”,则直接调用二维码设置函数SetTextValue( )即可,代码如下所示
/*********************************************************************
** Function name: void SetTextValue(uint16 screen_id,
** uint16 control_id,
** uchar *str);
** Descriptions : 设置二维码
** input parameters: screen_id: 画面ID
** control_id: 控件ID
** str: 二维码的值
** output parameters: 无
** Returned value : 无
*********************************************************************/
{
……
SetTextValue(1,1,”跳动符号串口屏”); //设置画面1文本控件1的值为“跳动符号串口屏”
……
}