12 二维码控件

什么是二维码控件?

QRCode00

二维码是将数据用某种特定的几何图形,在平面上以一定规律分布黑白相间的图形,记录数据符号信息。给用户扫码支付灯等应用。二维码可以由用户主机输入,也可以在编辑工程时通过属性设置,然后显示在串口屏上。

本例程中介绍二维码控件常见的应用,结合工程中的画面介绍每一个应用的配置,常见的应用如下所示:

  1. 更新二维码
  2. 按钮更新二维码

适用范围:全系列

例程下载链接:《二维码控件应用》(点击跳转)

12.1 二维码属性介绍

二维码控件属性如下所示

QRCode01

文本

二维码初始默认的显示内容

放大系数

设置单个点的显示大小。设置自动,二维码会自动铺满控件的整个区域。

错误纠正

即二维码的容错能力,具有纠错功能,这使得二维码因屏幕污损等引起局部遮掩时,照样可以正确得到识读。

编码模式

二维码的编码模式,支持如下编码

  1. Numeric:数字编码,从0到9。如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits,编成多长还要看二维码的尺寸
  2. Alphabet numeric:字符编码。包括 0-9,大写的A到Z(没有小写),以及符号$ % * + – . / : 包括空格
  3. 8-bit data:八位字节。可以是0-255的ISO-8859-1字符。有些二维码的扫描器可以自动检测是否是UTF-8的编码
  4. Kanji(shift-jis):日文编码,也是双字节编码。同样,也可以用于中文编码
  5. ECI:用于特殊的字符集。并不是所有的扫描器都支持这种编码
  6. FNC1-first position/FNC1-second position:主要是给一些特殊的工业或行业用的。比如GS1条形码之类的

前景/背景颜色

二维码的前景/背景颜色,此属性应尽量不做修改。即设置前景色为黑色,背景色为白色,则效果如下所示

QRcode02

为增加二维码的识别成功率,尽量不修改此属性,即使用控件的默认颜色

12. 2 更新二维码

【更新二维码】画面,介绍用户设备和串口屏通讯时,用户设备向串口屏发送指令,更新二维码控件的内容

画面配置

在【更新二维码】画面的“背景图片”导入相应的美工图片。在该画面中添加二维码控件,如下所示

QRcode03

属性配置

设置控件ID为1的二维码控件的属性,设置【文本】为“广州大彩”,配置如下所示

QRcode04

运行预览

运行虚拟屏,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),如下所示

QRcode06

属性配置

二维码控件

设置控件ID为1的二维码控件的属性,设置【二维码】为“广州大彩”,配置如下所示

image-20210517141349030

按钮控件

设置控件ID为2的按钮控件的属性,设置【触摸虚框】为“否”,【按下时的按钮】选中按下状态的图片,勾选【裁剪】,【触摸用途】为“开关描述”,【操作风格】为“瞬变”。配置如下所示

QRcode08

在指令助手界面,左侧导航栏选择【二维码控件】,设置“更新二维码控件”区域的指令参数,填写对应的参数。如例程中,控制画面(画面ID:1)中的二维码控件(控件ID:1),显示“www.gz-dc.com”,如下所示

image-20210517142241371

运行预览

运行虚拟屏,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的值为“大彩串口屏”
    ……
}
Copyright ©Dacai all right reserved,powered by Gitbook该文件修订时间: 2023-03-27 19:36:03

results matching ""

    No results matching ""