USART HMI 资料中心

官方技术交流QQ群:916560014

站点工具


目录索引

6.指令集:1.基本指令集

串口HMI指令集

注:

1.设备接收指令结束符为0XFF 0XFF 0XFF三个字节(HEX数据,不是字符串数据)。

2.所有指令名以及参数全部使用ASCII字符串数据,非HEX数据,便于阅读和调试。

3. 所有指令名使用小写字母(此处仅仅指的是指令名称为小写,参数该大写的时候还是要大写)。

对象及系统操作指令汇总表(点击指令名称或参数会自动跳转到该指令的详解处)

序号     

指令名         

指令功能                                 

参数                                           

1

page

刷新页面

page pageid

2

ref

重绘控件

ref obj

3

click

激活控件按下/弹起事件

click obj,event

4

get

带格式获取变量值/常量值

get att

5

prints

从串口打印一个变量/常量

prints att,lenth

6

printh

从串口打印一个Hex

printh hex

7

vis

隐藏/显示控件

vis obj,state

8

tsw

控件触摸使能

tsw obj,state

9

randset

随机数范围设置

randset minval,maxval

10

add

往曲线控件添加数据

add objid,ch,val

11

cle

清除曲线控件中的数据

cle objid,ch

12

addt

曲线数据透传指令

addt  objid,ch,qyt

13

doevents

转让系统控制权给屏幕刷新

无参数

14

sendme

发送当前页面ID号到串口

无参数

15

covx

变量类型转换

covx att1,att2,lenth,format

16

strlen

字符串变量字符长度测试

strlen att0,att1

17

btlen

字符串变量字节长度测试

btlen att0,att1

18

substr

字符串截取

substr att0,att1,star,lenth

19

spstr

字符串分割

spstr src,dec,key,indec

20

touch_j

触摸校准

无参数

21

ref_stop

暂停屏幕刷新

无参数

22

ref_star

恢复屏幕刷新

无参数

23

com_stop

暂停串口指令执行

无参数

24

com_star

恢复串口指令执行

无参数

25

code_c

清空串口指令缓冲区

无参数

26

rest

复位

无参数

27

wepo

写入一个变量到用户存储区

wepo att,add

28

repo

从用户存储区读数据到变量 

repo att,add

29

wept

透传数据写入用户存储区 

wept add,lenth

30

rept

从用户存储区透传数据到到串口

rept add,lenth

31

cfgpio

扩展IO模式配置

cfgpio id,state,obj

32crcrest复位crc初始值crcrest crctype,initval
33crcputscrc校验一个变量/常量crcputs att,length
34
crcputhcrc校验一组Hexcrcputh Hex
35crcputucrc校验一段串口缓冲区数据(recmod=1时有效)crcputu star,length

36

setlayer

运行中改变控件图层顺序(仅X3,X5系列支持)

setlayer obj0,obj1

37

move

控件移动 (仅X3,X5系列支持)

move obj,starx,stary,

endx,endy,first,time

38play
音频播放 (仅X3,X5系列支持)
play ch,audio,loop
39twfile
串口透传文件 (仅X3,X5系列支持)twfile filepath,filesize
40delfile删除文件 (仅X3,X5系列支持)delfile filepath
41refile重命名文件 (仅X3,X5系列支持)refile srcfilepath,decfilepath
42findfile查找文件 (仅X3,X5系列支持)findfile filepath,att
43rdfile透传读文件 (仅X3,X5系列支持)rdfile filepath,addr,size,crc
44newfile创建文件 (仅X3,X5系列支持)newfile filepath,size
45newdir创建文件夹 (仅X3,X5系列支持)newdir dir
46deldir删除文件夹 (仅X3,X5系列支持)deldir dir
47redir重命名文件夹 (仅X3,X5系列支持)redir srcdir,decdir
48finddir查找文件夹 (仅X3,X5系列支持)finddir dir,att


GUI 绘图指令汇总表(点击指令名称或参数会自动跳转到该指令的详解处)

注:GUI 绘图指令主要应用在如下场合:

当上位界面编辑软件无法实现您的某些特殊显示要求的时候,使用 GUI 指令自己绘图来实现自己想要的显示效

果。 大多数情况下其实是不需要使用这些绘图指令的, 大多数的应用都可以通过界面编辑软件的控件操作来实现。

序号    

指令名     

指令功能            

参数                                                                     

1

cls

清屏指令

cls color

2

pic

刷图指令

pic x,y,picid

3

picq

切图指令

picq x,y,w,h,picid

4

xpic

高级切图指令

xpic x,y,w,h,x0,y0,picid

5

xstr

写字指令

xstr x,y,w,h,fontid,pointcolor,backcolor,xcenter,ycenter,sta,string

6

fill

区域填充指令

fill x,y,w,h,color

7

line

画线指令

line x,y,x2,y2,color

8

draw

画矩形

draw x,y,x2,y2,color

9

cir

画空心圆

cir x,y,r,color

10

cirs

画实心圆

cirs x,y,r,color


对象及系统操作指令详解

1.page  刷新页面

page pageid

pageid:页面ID或页面名称

实例1:page 0         (刷新ID为0的页面)

实例2:page main      (刷新名称为main的页面)

备注:

1.设备上电自动刷新第0页。

2.也可以对系统变量dp赋值来实现跳转页面(如dp=0),系统变量dp可以设置可以读取,具体请参看系统变量列表。

3.page 指令是跳转指令。写在page指令后面的代码将被忽略没机会执行。

2.ref  重绘控件

ref obj

obj:控件ID或控件名称

实例1:ref 1    (重绘ID为1的控件)

实例2:ref t0   (重绘名称为t0的控件)

备注:

如果一个控件被GUI指令画出来的内容遮挡或者被另外的控件遮挡之后需要再显示出来,就使用ref来重绘。

3.click  激活控件的按下/弹起事件

click obj,event

obj:控件ID或控件名称

event:事件序号:0为弹起,1为按下

click b0,1  (激活名称为b0的控件的按下事件)

click 2,0   (激活ID为2的控件的弹起事件)

备注:

控件的按下/弹起事件在屏幕上触摸的时候会自动激活,如果在没有触摸的情况下想要手动激活,就使用click指令即可。

4.get  带格式获取变量值/常量值

get att

att:变量名称

实例1:get t0.txt (返回控件t0的txt属性值)   实例2:get j0.val(返回控件j0的val属性值)

实例3:get “123”(返回常量字符串123”)     实例4:get 123(返回常量数值:”123”)

备注:

1.使用get指令获取的变量为字符串类型时,返回的数据为0X70+字符串内码+结束符,如果是数值类型(如进度条的val属性)设备返回0X71+变量的4字节十六进制数据(int类型)+结束符。数值的存放模式为小端模式(即低位在前,高位在后)。

2.get指令可以由串口发送,也可以在上位软件编辑界写进用户代码中实现屏幕主动发送变量(主动发送的时候可以配合printh指令在前面加一段自定义标示来告诉单片机此变量是属于哪个控件的)。

3.get指令和print指令很类似,唯一的区别是get返回的数据带了起始标示符(0x70或0x71)和结束符(0xff 0xff 0xff),而print没有。

4..数据具体返回格式请查看本表格后面的”串口HMI设备返回数据格式"。

5.prints  从串口打印一个变量/常量

prints att,lenth

att:变量名称

lenth:发送长度(0为自动长度)

实例1: prints t0.txt,0 (发送控件t0的txt属性值,长度为实际长度)

实例2: prints j0.val,0(发送控件j0的val属性值,默认长度为4字节整形数据,小端模式储存)

实例3: prints "123",0(发送常量字符串"123"即:0x31 0x32 0x33)

实例4: prints 123,0(发送常量数值:123 即: 0x7b 0x00 0x00 0x00)

实例5: prints 123,1(发送常量数值:123的低1位数据 即: 0x7b)

备注:

1.使用prints发送的变量为字符串类型时,设备直接返回字符串内码,如果是数值类型(如进度条的val属性)设备直接返回变量的4字节整形数据(Hex数据,储存方式为小端模式,即低位在前)。

2.使用prints指令获取数据的时候,设备仅仅只发送数据内容,没有起始标示符,也没有结束符。

3.prints指令可以配合printh指令在前面加一段自定义标示来告诉单片机此变量是属于哪个控件的)。

4. prints指令和get指令很类似,区别是get发送的数据带了起始标示符(0x70或0x71)和结束符(0xff 0xff 0xff),而prints没有,不过prints可以在后面继续用printh语句来加任何自定义标识符。

6.printh  从串口打印一个Hex

printh hex

hex:需要发送的字符的16进制字符串表达式

实例:printh d0 a0(让设备发送0xd0 0xa0两个字节)

备注:

1.使用printh指令发送数据的时候,设备仅仅只发送指定的字符,不会发起始符,不会发空格,不会发结束符。

2.参数中每组字符间必须有且只能有一个空格隔开,16进制的字符串表达式大小写均支持。

3.printh只能发送常量,不能发送变量,变量需要使用prints指令。

7.vis  隐藏/显示控件

vis obj,state

obj:控件名称或控件ID

state:状态(0或1)

实例1:vis b0,0 (隐藏b0控件) 实例2:vis b0,1 (显示b0控件)

实例3: vis 1,0 (隐藏ID为1的控件) 实例4: vis 1,1 (显示ID为1的控件)

备注:

第一个参数 为255表示 当前页面所有控件,例:vis 255,0(隐藏当前页面所有控件) vis 255,1(显示当前页面所有控件)。

8.tsw  控件触摸使能

tsw obj,state

obj:控件名称或控件ID

state:状态(0或1)

实例1:tsw b0,0 (让名称为b0的控件触摸失效) 实例2:tsw b0,1 (让名称为b0的控件触摸有效)

实例3:tsw 1,0 (让ID为1的控件触摸失效) 实例4:tsw 1,1 (让ID为1的控件触摸有效)

备注:

第一个参数 为255表示 当前页面所有控件,例:tsw 255,0(当前页面所有控件触摸失效) tsw 255,1(当前页面所有控件触摸有效)。

9.randset  随机数范围设置

randset minval,maxval

minval:最小值

maxval:最大值

实例:ranset 1,100 (设置当前随机数产生范围为最小1,最大100)

备注:

1.使用随机数之前需要先使用randset指令设定一次随机数产生范围,如果不设置,默认是最小0,最大2147483647。设置完范围以后,每读取一次系统变量rand将会得到一个随机数。

2.使用randset指令每设定一次范围,将一直有效,直到重新上电或者设备复位才会恢复默认。

3.随机数设定范围的数据类型为int类型(即:最小-2147483648,最大2147483647)。

10.add  往曲线控件添加数据

add objid,ch,val

objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称)

ch:曲线控件通道号

val:数据 (最大255,最小0)

实例1:add 1,0,30 (往ID为1的曲线控件的0通道添加数据30)

实例2:add 1,1,n0.val (往ID为1的曲线控件的1通道添加数据n0.val)

备注:

1.曲线数据只支持8位数据,最小0,最大255。

2.每个page页面最多支持4个曲线控件,每个曲线控件最多支持4个通道。可以连续发送数据,控件会自动平推显示数据.在发送数据的过程中也可以随时修改控件属性,比如随时修改各个通道的前景色或背景色。

11.cle  清除曲线控件中的数据

cle objid,ch

objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称)

ch:曲线控件通道号(255表示所有通道)

实例1:cle 1,0   (清除ID为1的曲线控件的0通道数据)

实例2:cle 1,255 (清除ID为1的曲线控件的所有通道数据)

备注:

1.通道号为255时表示清除此曲线控件内的所有通道数据。

12.addt  曲线数据透传指令

addt  objid,ch,qyt

objid: 曲线控件ID序号(此处必须是ID号,不支持使用控件名称)

ch:曲线控件中的通道号

qyt:本次透传数据的点数量

实例:addt 1,0,100  (ID为1的曲线控件进入数据透传模式,透传点数为100点)

   单片机透传例程

备注:

1.曲线数据只支持8位数据,最小0,最大255。单次透传数据量最大1024字节

2.发完透传指令后,用户需要等待设备响应才能开始透传数据,设备收到透传指令后,准备透传初始化数据大概需要5ms左右(如果在透传指令执行前串口缓冲区还有很多别的指令,那时间会更长),设备透传初始化准备好以后会发送一个透传就绪的数据给用户(0XFE+结束符),表示设备已经准备好,此时可以开始发送透传数据。透传数据为纯16进制数据,不再使用字符串,也不再需要结束符,设备收完指定的数据量以后,才会恢复指令接收状态。否则一直处于数据透传状态,透传数据完成以后,设备会发送结束标记给用户(0XFD+结束符)。

3.在指定的透传数量传输完成以前,曲线不会刷新,透传完毕之后会立即自动刷新。

13.doevents  转让系统控制权给屏幕刷新

doevents

实例: doevents (此指令不需要参数)

备注:

1.在一个较多指令的过程执行中,或者在一个较长时间的循环语句中,系统所有控制权被此过程全部占用,在过程结束之前,尽管相应的内存数据可以任意正常读写,但是屏幕不会刷新显示,加入doevents后可以转让控制权给屏幕刷新,执行doevents之后,屏幕会刷新所有被改变过的控件,刷新完之后,控制权交回当前过程继续执行。防止屏幕呈现假死的显示状态。

2.doevents多数情况下是配合while或for语句使用,使用方法请参看while或for语句的实例。

14.sendme  发送当前页面ID号到串口

sendme

实例1:sendme   (此指令不需要参数)

备注:

设备收到此指令会立刻把当前页面的ID号发送到串口,如果想要每次刷新页面自动发送页面ID,请在页面的初始化事件里写上sendme语句即可。发送格式请参看本表格后面的串口HMI设备返回数据格式表格。

15.covx  变量类型转换

covx att1,att2,lenth,format

att1:源变量

att2:目标变量

lenth:字符串的长度(0为自动长度,非0为固定长度)

format:申明数值类型(0-数字;1-货币;2-Hex)

实例1:covx h0.val,t0.txt,0,0  (把滑块h0的val数值变量转换成10进制数字字符串并赋值给文本t0的txt变量,长度为自动)

实例2:covx t0.txt,h0.val,0,0 (把文本t0的txt十进制数字字符串变量转换为数值并赋值给滑块h0的val数值变量,长度为自动)

备注:

1.lenth始终表示的是字符串长度,数值转字符串的时候是目标变量的长度,字符串转数值的时候是源变量长度。

2.如果目标变量和源变量类型相同,转换失败。

16.strlen  字符串变量字符长度测试

strlen att0,att1

att0:需要测试的字符串变量

att1:把测试结果赋值给此变量

实例:strlen t0.txt,n0.val (把字符串变量t0.txt的实际字符长度赋值给n0.val)

备注:

1.strlen测试的是以字符为单位的长度,而btlen测试的是以字节为单位的长度,比如一个汉字用btlen测试出来的长度是2字节,用strlen测试出来的长度是1字符。

2.被测试的变量必须是字符串类型,写入的变量必须是数值类型,否则会报错。

17.btlen  字符串变量字节长度测试

btlen att0,att1

att0:需要测试的字符串变量

att1:把测试结果赋值给此变量

实例:btlen t0.txt,n0.val (把字符串变量t0.txt的实际字节长度赋值给n0.val)

备注:

1.btlen测试的是以字节为单位的长度,而strlen测试的是以字符为单位的长度,比如一个汉字用btlen测试出来的长度是2字节,用strlen测试出来的长度是1字符。

2.被测试的变量必须是字符串类型,写入的变量必须是数值类型,否则会报错。

18.substr  字符串截取

substr att0,att1,star,lenth

att0:源变量(必须是字符串变量)

att1:目标变量(必须是字符串变量)

star:在源变量中的字符起始位置

lenth:截取字符串长度

实例:substr t0.txt,t1.txt,0,2  (从t0.txt中的0位置开始截取2个字符赋值给t1.txt)

19.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

20.touch_j  触摸校准

touch_j

实例1:touch_j (进入触摸校准功能,此指令不需要参数)

备注:

所有设备出厂时已经校准过,一般情况下不需要使用此功能。

21.ref_stop  暂停屏幕刷新

ref_stop

实例:ref_stop (此指令不需要参数)

备注:

1.暂停屏幕刷新之后,所有语句会继续解析并执行,相应的属性赋值操作也会正常运行,但是屏幕上的控件不会刷新,修改任何控件的任何属性都不会自动刷新显示(但是属性已经被正常修改了)。直到设备收到恢复刷新指令(ref_star)后,被修改过的控件将会立刻刷新显示。

2.暂停刷新之后,即便使用ref指令也不会立刻刷新,直到执行ref_star指令的时候统才会统一刷新,但是所有的gui绘图指令(比如画点,划线,画圆等)是不受影响的,会立即显示。

22.ref_star  恢复屏幕刷新

ref_star

实例:ref_star (此指令不需要参数)

备注:

此指令和ref_stop配合使用。

23.com_stop  暂停串口指令执行

com_stop

实例1:com_stop  (此指令不需要参数)

备注:

1. 暂停串口指令执行之后设备会继续接受指令,但是都不会执行,全部放在指令缓存区,直到收到com_star”指令后,设备会从暂停时的指令开始到当前为止的所有指令全部执行。

2.使用指令暂停与恢复功能的时候,请评估您的设备的串口缓存区大小和指令缓存队列的最大数量是否足够支持你需要缓存的指令数目。这两项参数在你购买的设备规格书中的参数表中可以查询到。

24.com_star  恢复串口指令执行

com_star

实例1:com_star  (此指令不需要参数)

备注:

1. 设备收到此指令之后,将从暂停时的指令开始到当前为止的所有指令全部执行。

2.使用指令暂停与恢复功能的时候,请评估您的设备的串口缓存区大小和指令缓存队列的最大数量是否足够支持你需要缓存的指令数目。这两项参数在你购买的设备规格书中的参数表中可以查询到。

25.code_c  清空串口指令缓冲区中还没有执行的所有指令

code_c

实例1: code_c   (此指令不需要参数)

立即清空串口指令缓冲区还没有执行的所有指令。

26.rest  复位

rest

实例:rest  (此指令不需要参数)

27. 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字节)

备注:

1.写入内容为变量字符串的时候,在储存区中的占用空间为此变量的最大字符数+1;写入内容为常量字符串的时候,在储存区中的占用空间为此常量字符串的实际字符数+1。

2.写入内容为变量数值或常量数值的时候,在储存区中的占用空间统一为4字节。

3.使用用户存储区读写操作过程中请切记规划好数据区位置,以免位置交错引起数据覆盖错乱。

28.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字节)

备注:

1.读入内容为变量字符串的时候,在储存区中的读取数据量为此变量的最大字符数+1。 

2.读入内容为变量数值时候,在储存区中的读取数据量统一为4字节。

3.使用用户存储区读写操作过程中请切记规划好数据区位置,以免位置交错引起数据覆盖错乱。

29.wept  透传数据写入用户存储区(EEPROM)

(带用户存储的硬件才支持)

wept add,lenth

add: 用户存储区位置(从0开始)

lenth:透传长度

实例:wept 10,30  (透传30个字节的数据存到EEPROM的10位置,占用空间为10-39)

备注:

1.发完透传指令后,用户需要等待设备响应才能开始透传数据,设备收到透传指令后,准备透传初始化数据大概需要5ms左右(如果在透传指令执行前串口缓冲区还有很多别的指令,那时间会更长),设备透传初始化准备好以后会发送一个透传就绪的数据给用户(0XFE+结束符),表示设备已经准备好,此时可以开始发送透传数据。透传数据为纯16进制数据,不再使用字符串,也不再需要结束符,设备收完指定的数据量以后,才会恢复指令接收状态。否则一直处于数据透传状态,透传数据完成以后,设备会发送结束标记给用户(0XFD+结束符)。

30.rept  从用户存储区读取数据并透传发送到串口

(带用户存储的硬件才支持)

rept add,lenth

add: 用户存储区位置(从0开始)

lenth:读取并透传发送的长度

实例:rept 10,30  (从用户存储区的10位置读取30个字节并透传发送到串口)

备注:

不管存储区中的数据是字符串还是数值,设备都按16进制来读取和发送指定的字节数量到串口,并且不会发结束符。

31.cfgpio  扩展IO模式配置

(带扩展IO的硬件才支持)

cfgpio id,state,obj

id:扩展IO的序号

state:配置模式(0-上拉输入模式,1-控件事件邦定输入模式,2-推挽输出模式,3-PWM输出模式,4-开漏模式)

obj:绑定控件名称或ID(此参数仅在配置为控件事件邦定输入模式下有效,其他模式下无效)

实例1:cfgpio 0,0,0  (将io0配置为上拉输入,配置为此模式后,任意时刻可以使用系统变量pio0读取当前输入电平,如:n0.val=pio0)

实例2:cfgpio 1,2,0  (将io1配置为推挽输出,配置为此模式后,任意时刻可以使用系统变量pio1控制当前输出电平,如:pio1=1)

实例3:cfgpio 2,1,b0 (将io2配置为控件事件邦定输入,邦定控件为b0,配置为此模式后,io2产生下降沿的时候将触发b0控件的按下事件,产生上升沿的时候将触发b0控件的弹起事件)

实例4:cfgpio 4,3,0 (将io4配置为PWM输出模式,配置之前需要先设置占空比,即系统变量变量中的pwm4)

备注:

1.K0系列只有io4-io7才支持PWM输出,X5系列只有io6-io7才支持PWM输出 其他IO不支持。配置其他IO为PWM模式会报错。

2.使用控件事件邦定输入模式时,必须是在当前配置时刻的当前页面的控件才能邦定,不可以邦定其他页面的控件(即使是全局内存占用的控件也不可以),邦定当前页面控件以后,当重新刷新页面或者切换到别的页面后,邦定事件将不会继续触发,因此每次刷新页面需要重新邦定,建议将邦定代码写在页面的前初始化事件中最为合适。

32.crcrest  复位crc初始值

crcrest crctype,initval

crctype:crc校验类型(必须为1,Modbus crc16校验方式)

initval:初始值(一般为0xffff)

实例1:crcrest 1,0xffff  (复位CRC初始值为0xffff,以便后续检验数据)

备注:

1.复位之后,可使用crcputs或crcputh或crcputu校验指定数据,检验完毕读取系统变量crcval获得校验结果。

2.完整的CRC校验实例代码请参考:程序中使用CRC校验数据

33.crcputs  crc校验一个变量/常量

crcputs att,length

att:变量名称

length:需要校验的数据长度(0为自动长度)

实例1:crcputs t0.txt,0   (CRC校验字符串变量t0.txt)

实例2:crcputs "abc",0    (CRC校验字符串常量"abc")

备注:

1.使用crcputs或crcputh或crcputu校验指定数据,检验完毕读取系统变量crcval获得校验结果。

2.完整的CRC校验实例代码请参考:程序中使用CRC校验数据

34.crcputh  crc校验一组Hex

crcputh Hex

Hex:需要校验的数据的16进制字符串表达式(每个字节之间用空格隔开)

实例1:crcputh 03 25      (CRC校验hex:0x03,0x25)

备注:

1.使用crcputs或crcputh或crcputu校验指定数据,检验完毕读取系统变量crcval获得校验结果。

2.完整的CRC校验实例代码请参考:程序中使用CRC校验数据

35.crcputu  crc校验一段串口缓冲区数据(recmod=1时有效)

crcputu star,length

star:串口缓冲区数据起始位

length:需要校验的数据长度

实例1:crcputu 0,22           (校验串口缓冲区的前面22个字节,recmod=1时有效

备注:

1.使用crcputs或crcputh或crcputu校验指定数据,检验完毕读取系统变量crcval获得校验结果。

2.完整的CRC校验实例代码请参考:程序中使用CRC校验数据

36.setlayer  运行中改变控件图层顺序

(仅X3,X5系列支持)

setlayer obj0,obj1

obj0:需要改变图层的控件ID或控件名称

obj1:控件ID或控件名称(将obj0控件置于此控件之上,此参数为0表示将obj0控件放置到所有控件的下面,此参数为255表示将obj0控件放置到所有控件的上面)

实例1:setlayer n0,b0  (将n0控件置于b0图层之上)

实例2:setlayer n0,255 (将n0控件置于最顶层)

37.move  控件移动

仅X3,X5系列支持

move obj,starx,stary,endx,endy,first,time

obj:控件名称或控件ID

starx:起始坐标X

stary:起始坐标Y

endx:结束坐标X

endy:结束坐标Y

first:优先级(0-100,数字越大优先级越大)

time:移动时间(单位ms)

实例:move t0,0,0,200,200,0,300  (控件t0从(0,0)坐标移动到(200,200)坐标,优先级为0,时间为300ms)

备注:

可以同时写入多条不同优先级的move指令,系统会按照优先级顺序来移动。优先级高的会先移动,移动完成以后,才会启动下一个优先级的指令。

38.play  音频播放

仅X3,X5系列支持

play ch,audio,loop

ch:音频通道序号

audio:音频ID

loop:是否循环

实例:play 1,3,0   (在音频通道1上播放ID为3的音频文件,不循环播放)

备注:

1.play指令仅用于配置和启动音频播放,暂停和停止操作请使用系统变量audio0,audio1。

2.play指令控制的是独立于视频之外的音频通道,与视频中使用的音频通道没有关系,也不会产生冲突。

3.音频播放功能是全局的,不属于某个页面,因此play指令启动播放后,即便是跳转页面,音频依然会继续播放,如果希望离开页面后停止播放,可以在页面的离开事件中使用audio0/audio1系统变量来关闭或暂停指定通道的音频播放状态。

39.twfile  串口透传文件

仅X3,X5系列支持

twfile filepath,filesize

filepath:目标文件路径(例:"ram/0.jpg"或"sd0/1.jpg")

filesize:文件大小

实例:twfile "ram/0.jpg",10345  (透传一个大小为10345的文件到内存文件系统中,文件名为"0.jpg")

实例:twfile "sd0/a.jpg",10345  (透传一个大小为10345的文件到SD卡根目录,文件名为"a.jpg")

备注:

1.要使用内存文件系统必须先在工程配置选项中配置内存文件系统的大小,新建工程默认内存文件系统大小为0,即不可能使用

2.详细的文件透传逻辑请参看"高级应用与特殊指令详解"文档,点击此处跳转到详细说明页面

40.delfile  删除文件

仅X3,X5系列支持

delfile filepath

filepath:文件路径(例:"ram/0.jpg"或"sd0/1.jpg")

实例:delfile "ram/0.jpg"  (删除内存文件系统中的"0.jpg"文件)

实例:delfile "sd0/a.jpg"  (删除SD卡根目录中的"a.jpg"文件)

备注:

要使用内存文件系统必须先在工程配置选项中配置内存文件系统的大小,新建工程默认内存文件系统大小为0,即不可能使用

41.refile  重命名文件

仅X3,X5系列支持

refile srcfilepath,decfilepath

srcfilepath:源文件路径

decfilepath:目标文件路径

实例:refile "ram/0.jpg","ram/1.jpg"  (将内存文件系统中的0.jpg更名为1.jpg)

实例:refile "sd0/a.jpg","sd0/b.jpg"  (将SD卡根目录中的a.jpg更名为b.jpg)

备注:

要使用内存文件系统必须先在工程配置选项中配置内存文件系统的大小,新建工程默认内存文件系统大小为0,即不可能使用

42.findfile  查找文件

仅X3,X5系列支持

findfile filepath,att

filepath:文件路径

att:查找结果写入变量,必须是数值型变量(0-查找失败;1-查找成功)

实例:findfile "ram/0.jpg",va0.val  (查找内存文件系统中的0.jpg,将结果返回到va0.val中)

实例:findfile "sd0/a.jpg",sys0     (查找SD卡根目录中的a.jpg,将结果返回到sys0中)

备注:

要使用内存文件系统必须先在工程配置选项中配置内存文件系统的大小,新建工程默认内存文件系统大小为0,即不可能使用

43.rdfile  透传读文件

仅X3,X5系列支持

rdfile filepath,addr,size,crc

filepath:文件路径

addr:件数据起始地址

size:透传读数据大小 (如果为0,则返回小端模式的4字节整形数据表示文件大小)

crc:数据尾部添加CRC检验码设置(0-无crc;1-crc16;10-crc32)

实例:rdfile "ram/0.jpg",0,10,1    (从内存文件系统中的"0.jpg"文件的数据0位置开始,读取10个字节透传到串口,并在数据尾部加入crc16校验码。合计是10+2=12字节)

实例:rdfile "sd0/a.jpg",0,10,10   (从SD卡根目录中的"a.jpg"文件的数据0位置开始,读取10个字节透传到串口,并在数据尾部加入crc32校验码。合计是10+4=14字节)

备注:

1.要使用内存文件系统必须先在工程配置选项中配置内存文件系统的大小,新建工程默认内存文件系统大小为0,即不可能使用

2.CRC16校验算法为MODBUS CRC16,点击此处查看参考函数代码 CRC32校验算法为标准CRC32。

44.newfile  创建文件

仅X3,X5系列支持

newfile filepath,size

filepath:文件路径(如:"sd0/1.txt")

size:文件大小(以字节为单位,最大2147483647)

实例:newfile "ram/0.txt",4096 (在内存文件系统中创建一个名为"0.txt"的文件,大小为4096字节)

实例:newfile "sd0/1.txt",4096 (在SD卡根目录中创建一个名为"1.jpg"的文件,大小为4096字节)

备注:

要使用内存文件系统必须先在工程配置选项中配置内存文件系统的大小,新建工程默认内存文件系统大小为0,即不可能使用。

45.newdir  创建文件夹

仅X3,X5系列支持

newdir dir

dir:文件夹目录(如:"sd0/newfolder/")

实例:newdir "sd0/a/" (在SD卡根目录中创建一个名称为a的子目录)

备注:

1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。

46.deldir  删除文件夹

仅X3,X5系列支持

deldir dir

dir:文件夹目录(如:"sd0/newfolder/")

实例:deldir "sd0/a/" (在SD卡根目录中删除名称为a的子目录)

备注:

1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。

47.redir  重命名文件夹

仅X3,X5系列支持

redir srcdir,decdir

srcdir:源文件夹目录(如:"sd0/newfoldersrc/")

decdir:目标文件夹目录(如:"sd0/newfolderdec/")

实例:redir "sd0/a/", "sd0/b/"  (在SD卡根目录中将名称为a的子目录改为b)

备注:

1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。

48.finddir  查找文件夹

仅X3,X5系列支持

finddir dir,att

dir:文件夹目录(如:"sd0/newfolder/")

att:查找结果写入变量(0-查找失败;1-查找成功。此变量必须是数值类型变量)

实例:finddir "sd0/a/",sys0     (查找SD卡根目录中是否有a的子目录,将结果返回到sys0中)

备注:

1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。


GUI绘图指令详解

注:GUI绘图指令主要应用在如下场合:

当上位界面编辑软件无法实现您的某些特殊显示要求的时候,使用GUI指令自己绘图来实现自己想要的显示效果。大多数情况下其实是不需要使用这些绘图指令的,大多数的应用都可以通过界面编辑软件的控件操作来实现。

1.cls  清屏指令

cls color

color:十进制颜色值或颜色代号

实例1:cls 1024  (用十进制1024的颜色值刷屏)

实例2:cls RED  (用代号为RED的颜色(RED代表红色)刷屏)

备注:

1.想得到某个颜色的10进制数据可以使用设备配套的界面编辑软件TJCHMI获取,进入软件菜单栏工具-取色工具

2.想了解设备支持的颜色代号表请参看本表格后面的串口HMI颜色代号表

3.本指令表中所有指令中的颜色参数,全部都可以使用设备支持的颜色代号,也可以使用10进制的颜色值,请知晓。

2.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的图片 )

3.picq  切图指令

格式:picq x,y,w,h,picid

x:屏幕起始点x坐标;

y:屏幕起始点y坐标;

w:区域宽度 ;

h:区域高度;

picid:图片ID;

实例1:picq 20,50,30,20,0  (将图片0起始坐标(0,0)宽度30高度20这个区域切到屏幕上显示,屏幕上的显示起始坐标为(20,50))

备注:

此指令要求图片必须是全屏图片,否则切出来的图像不是你想要的。图片上的切图区域和屏幕上的显示区是重叠的。

4.xpic  高级切图指令

格式:xpic x,y,w,h,x0,y0,picid

x:屏幕起始点x坐标;

y:屏幕起始点y坐标;

w:区域宽度 ;

h:区域高度;

x0:图片起始点x坐标;

y0:图片起始点y坐标;

picid:图片ID;

实例1:xpic 20,50,30,20,40,15,0  (将图片0起始坐标(40,15)宽度30高度20这个区域切到屏幕上显示,屏幕上的显示起始坐标为(20,50))

5.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:字符内容;

实例1:xstr 0,0,100,30,1,RED,BLACK,1,1,1,中国  

实例解释:使用字库1在起始坐标(0,0),宽度100,高度30这个区域写出中国,字体色为RED,背景色为BLACK(如果不想写背景色(即无背景)可以设置sta参数为3),水平对齐方式为居中,垂直对齐方式也为居中。

备注:

1.字符写到超过设定的w以后将自动换行,如果换行到h之后还有剩下的字符没写完,将会被忽略。

2.关于颜色值的说明请参看cls指令的备注。

6.fill  区域填充指令

fill x,y,w,h,color

x:起始点坐标x ;

y:起始点坐标y;

w:区域宽度;

h:区域高度;

color:填充颜色;

实例1:fill 0,0,100,30,RED   (在起始坐标(0,0)宽度100,高度30这个区域填充RED颜色)

备注:

关于颜色值的说明请参看cls指令的备注。

7.line  画线指令

line x,y,x2,y2,color

x:起始点坐标x;

y:起始点坐标y;

x2:结束点坐标x ;

y2:结束点坐标y;

color:画线颜色;

实例1:line 0,0,100,100,RED  (在坐标(0,0)和坐标(100,100)之间画出一条RED颜色的线)

备注:

关于颜色值的说明请参看cls指令的备注。

8.draw  画矩形

draw x,y,x2,y2,color

x:起始点坐标x ;

y:起始点坐标y;

x2:结束点坐标x ;

y2:结束点坐标y;

color:画线颜色;

实例1:draw 0,0,100,100,RED    (画一个矩形,左上角为(0,0),右下角为(100,100), 颜色为RED)

备注:

1.draw画出来的是空心矩形,需要填充实心矩形的话请直接使用fill区域填充指令。

2. 关于颜色值的说明请参看cls指令的备注。

9.cir  画空心圆

cir x,y,r,color

x:圆心坐标x

y:圆心坐标y

r:半径

color:画线颜色;

实例1:cir 100,100,30,RED   以坐标(100,100)为圆心画一个半径为30的空心圆,颜色为RED

备注:

关于颜色值的说明请参看cls指令的备注。

10.cirs  画实心圆

cirs x,y,r,color

x:圆心坐标x

y:圆心坐标y

r:半径

color:填充颜色;

实例1:cirs 100,100,30,RED   以坐标(100,100)为圆心画一个半径为30的实心圆,填充颜色为RED

备注:

关于颜色值的说明请参看cls指令的备注。

提示:本指令表中所有指令中的颜色参数,全部都可以使用设备支持的颜色代号,也可以使用10进制的颜色值




6.指令集/1.基本指令集.txt · 最后更改: 2020/10/09 14:40 由 tjcqiu        浏览次数:162465/3115952(本页/全站)