2本文将介绍Usart HMI常用指令
1 page指令 用于页面切换,使用格式 :
page obj
obj指页面名称或id,
示例:
有下面两个页面, 要从page0 切换到main
page 1 //type 2
page main //type 1
2 ref 刷新控件指令(或者重绘控件)
使用格式: ref obj obj指控件名称或id,
示例:
刷新下图t0
ref t0 //type 1
ref 1 // type 2
3 click 激活控件按下/弹起事件指令, 使用格式:
click obj event
obj指控件名称或id,event指按下或弹起事件,0代表弹起事件,1代表按下事件。示例:激活下图b0的按下事件
click b0 1 //type 1
click 8 1 //type 2, 8 is b0's id
4 get 带格式获取变量/常量值指令 向串口发送变量/常量值
使用格式:get attr
attr指变量/常量值。
示例:向串口发送下面控件t0的值
在发送数据时前面加了起始符(字符加0x70,整数加0x71),整数发送是一次发送4个字节,不足4个字节,高位用0x00补齐,低位在前, 后面加了结束符0xFF 0xFF 0xFF
5 prints 向串口发送变量/常量值指令 与get指令类似,但发送数据时,没有加起始符与结束符。
使用格式: prints attr,length
length指发送长度,0代表发送完attr的所有数据。
示例:
6 printh 向串口字符16位值指令 使用格式:
printh hex
示例:
7 vis 隐藏/显示控件指令 使用格式:
vis obj,state
obj指控件名称或id,如果obj用255代替则表示页面上的所有控件。state可以为0或1。0为隐藏,1为显示。示例:下图是main页面,上面有多个控件,t2控件的文本为时钟设置
隐进入调试模式下藏在指令/显示控件 vi7.vis 隐藏/显示控件s 隐藏/显示控件vis 隐藏/显示控件
进入调试模式,在指令输入区输入page main回车,即切换到main页面。
在指令输入区输入vis t2,0 回车, 结果如下:
t2控件被隐藏了,再在指令输入区输入vis t2,1 回车, 结果如下:
t2控件显示出来了。
8 tsw 控件触摸使能指令 使用格式:
tsw obj,state
obj是指控件名称或id,如果obj用255代替则表示页面上的所有控件。state可以为0或1. 1是触摸使能,即触摸功能有效,0是触摸功能失效。 示例:下面是page0页面,上面有多个按钮。
进入调试模式,如下:
用鼠标左键点击“0”按钮,结果如下:
在指令输入区输入 tsw b0,0 回车,再用鼠标左键点击“0”按钮,结果如下:
按钮没有反应,也就是说按钮失效了。再在指令输入区输入 tsw b0,1 回车,再用鼠标左键点击“0”按钮,结果如下:
按钮又有效了。
9 randset 随机数范围设置指令 使用格式:
randset minval,maxval
minval:最小值
maxval:最大值
示例:
读取rand两次得到的结果分别为0x49,0x53,都在10~100以内。
10 add 往曲线/波形控件添加数据指令 使用格式:
add objid,ch,val
objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称,id号取值范围0~3,也就是说一个控件最多可以显示4条曲线)。
ch:曲线控件通道号val:数据 (最大255,最小0)。
示例:
add 13,0,30
add 13,1,35
11 cle 清除曲线/波形控件控件中的数据指令 使用格式:
cle objid,ch
objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称)
ch:曲线控件通道号(255表示所有通道)
示例:
cle 13,0
12 addt 曲线/波形控件数据透传指令 使用格式:
addt objid,ch,qyt
objid: 曲线控件ID序号(此处必须是ID号,不支持使用控件名称)
ch:曲线控件中的通道号
qyt:本次透传数据的点数量
示例:
addt 13,0,100 (ID为13的曲线控件进入数据透传模式,透传点数为100点)
13 sendme 发送当前页面ID号到串口指令 使用格式:
sendme //此指令不需要参数
14 covx 变量类型转换指令 使用格式:
covx att1,att2,lenth,format
att1:源变量
att2:目标变量
lenth:字符串的长度(0为自动长度,非0为固定长度)
format:申明数值类型(0-数字;1-货币;2-Hex)
示例:
结果为:0x03E8,转换为十进制刚好为1000.
15 strlen 获取字符串变量字符长度指令,使用格式:
strlen att0,att1
att0:需要测试的字符串变量
att1:把测试结果赋值给此变量
示例:
strlen t0.txt,n0.val //把字符串变量t0.txt的实际字符长度赋值给n0.val
16 btlen 获取字符串变量字节长度指令 注意与strlen的区别,strlen是获取字符数,btlen是获取字节数,如果是单字节字符串结果是一致的,双字节字符串差异就大了。使用格式:
btlen att0,att1
att0:需要测试的字符串变量
att1:把测试结果赋值给此变量
示例:
btlen t0.txt,n0.val //把字符串变量t0.txt的实际字节长度赋值给n0.val
17.substr 字符串截取指令 使用格式:
substr att0,att1,star,lenth
att0:源变量(必须是字符串变量)
att1:目标变量(必须是字符串变量)
star:在源变量中的字符起始位置lenth:截取字符串长度 示例:
substr t0.txt,t1.txt,0,2 //从t0.txt中的0位置开始截取2个字符赋值给t1.txt
18 spstr 字符串分割指令 使用格式:
spstr src,dec,key,index
src:源变量(必须是字符串变量)
dec:目标变量(必须是字符串变量)
key:分隔符字符串(必须是字符串变量)
index:取第几份(在src字符串中用key字符串做分割后,取第index份字符内容赋值给dec变量)
示例:data0.txt的d字符内容为:aaaa^bbbb^cccc^dddd
执行命令:spstr data0.txt,t0.txt,"^",2
运行结果:t0.txt内容为:cccc
19 ref_stop 暂停屏幕刷新指令 使用格式:
ref_stop //此指令不需要参数
20 com_stop 暂停串口指令执行指令 使用格式:
com_stop //此指令不需要参数
22 com_star 恢复串口指令执行指令 使用格式:
com_star //此指令不需要参数
23 wepo写入一个变量到用户存储区(EEPROM)指令 这个需要屏硬件支持才能使用,使用格式:
wepo att,add
att:变量/常量
add: 用户存储区位置(从0开始)
示例1:
wepo t0.txt,10 //将t0.txt的内容写入用户存储区的第10位置,在储存区中的占用空间为t0.txt的最大设置值+1,即t0的txt-maxl属性表示的大小+1
示例2:
wepo “abcd”,10 //将字符串“abcd”写入用户存储区的第10位置,在储存区中占用大小为5字节
示例3:
wepo 125,10 //将数值125写入用户存储区的第10位置, 在储存区中占用大小为4字节
24.repo 从用户存储区(EEPRO)读数据到一个变量指令 这个需要屏硬件支持才能使用,使用格式:
repo att,add
att:目标变量
add: 用户存储区位置(从0开始)
示例1:
repo t0.txt,10 //从用户存储区的10位置读数据到t0.txt变量中,在储存区中的读取数据量为t0.txt的最大设置值+1,即t0的txt-maxl属性表示的大小+1
示例2.
repo n0.val,10 //从用户存储区的10位置读数据到n0.val,在存储区中的读取数据量为4字节
25 wept 透传数据写入用户存储区(EEPROM)指令 这个需要屏硬件支持才能使用,使用格式:
wept add,lenth
add: 用户存储区地址(从0开始)
lenth:透传长度
示例:wept 10,30 //透传30个字节的数据存到EEPROM的10位置,占用空间为10-39
26 rept 从用户存储区读取数据并透传发送到串口指令 这个需要屏硬件支持才能使用,使用格式:
rept add,lenth
add: 用户存储区位置(从0开始)
lenth:读取并透传发送的长度
示例:
rept 10,30 //从用户存储区的10位置读取30个字节并透传发送到串口
27 cls 清屏指令 使用格式:
cls color
color是十进制颜色值或颜色代号
示例1:
cls 1024 //用十进制1024的颜色值刷屏
示例2:
cls RED //用代号为RED的颜色(RED代表红色)刷屏
28 pic 刷图指令 使用格式:
pic x,y,picid
x:起始点x坐标;
y:起始点y坐标;
picid:图片ID;
示例1:
pic 10,20,0 //在坐标(10,20)位置显示资源文件中图片ID为0的图片
示例2:
pic 40,50,1 //在坐标(40,50)位置显示资源文件中图片ID为1的图片
29 picq 切图指令 使用格式:
picq x,y,w,h,pici
dx:屏幕起始点x坐标;
y:屏幕起始点y坐标;
w:区域宽度;
h:区域高度;
picid:图片ID;
示例:
picq 20,50,30,20,0 //将图片0起始坐标(0,0)宽度30高度20这个区域切到屏幕上显示,屏幕上的显示起始坐标为(20,50)
30 xpic 高级切图指令 使用格式:
xpic x,y,w,h,x0,y0,picid
x:屏幕起始点x坐标;
y:屏幕起始点y坐标;
w:区域宽度 ;h:区域高度;
x0:图片起始点x坐标;
y0:图片起始点y坐标;
picid:图片ID;
示例:
xpic 20,50,30,20,40,15,0 //将图片0起始坐标(40,15)宽度30高度20这个区域切到屏幕上显示,屏幕上的显示起始坐标为(20,50)
31 xstr 写字指令 使用格式:
xstr x,y,w,h,fontid,pointcolor,backcolor,xcenter,ycenter,sta,string
x:起始点坐标x;
y:起始点坐标y;
w:区域宽度;
h:区域高度;
fontid:字库ID;
pointcolor:字体颜色;
backcolor:背景色(sta设置为切图或图片时,backcolor表示图片ID);
xcenter:水平对齐方式(0为左对齐,1为居中,2为右对齐);
ycenter: 垂直对齐方式(0为上对齐,1为居中,2为下对齐);
sta:背景填充方式(0为切图,1为单色,2为图片,3为无背景,sta设置为切图或图片时,backcolor表示图片ID)
string:字符内容;
示例:
xstr 0,0,100,30,1,RED,BLACK,1,1,1,”中国” //使用字库1在起始坐标(0,0),宽度100,高度30这个区域写出”中国”,字体色为RED,背景色为BLACK(如果不想写背景色(即无背景)可以设置sta参数为3),水平对齐方式为居中,垂直对齐方式也为居中。
32 fill 区域填充指令 使用格式:
fill x,y,w,h,color
x:起始点坐标x ;
y:起始点坐标y;
w:区域宽度;
h:区域高度;
color:填充颜色;
示例:
fill 0,0,100,30,RED //在起始坐标(0,0)宽度100,高度30这个区域填充RED颜色
33 line 画线指令 使用格式:
line x,y,x2,y2,color
x:起始点坐标x;
y:起始点坐标y;
x2:结束点坐标x ;
y2:结束点坐标y;
color:画线颜色;
示例:
line 0,0,100,100,RED //在坐标(0,0)和坐标(100,100)之间画出一条RED颜色的线
34 draw 画矩形指令 画出的矩形无填充, 使用格式:
draw x,y,x2,y2,color
x:起始点坐标x ;
y:起始点坐标y;
x2:结束点坐标x ;
y2:结束点坐标y;
color:画线颜色;
示例:
draw 0,0,100,100,RED //画一个矩形,左上角为(0,0),右下角为(100,100), 颜色为RED
35 cir 画空心圆指令 使用格式:
cir x,y,r,color
x:圆心坐标x
y:圆心坐标y
r:半径
color:画线颜色;
示例:
cir 100,100,30,RED //以坐标(100,100)为圆心画一个半径为30的空心圆,颜色为RED
36 cirs 画实心圆指令 使用格式:
cirs x,y,r,color
x:圆心坐标x
y:圆心坐标y
r:半径
color:填充颜色;
示例:
cirs 100,100,30,RED //以坐标(100,100)为圆心画一个半径为30的实心圆,填充颜色为RED