注:
1.设备接收指令结束符为”0XFF 0XFF 0XFF”三个字节(HEX数据,不是字符串数据)。
2.所有指令名以及参数全部使用ASCII字符串数据,非HEX数据,便于阅读和调试。
3. 所有指令名使用小写字母(此处仅仅指的是指令名称为小写,参数该大写的时候还是要大写)。
对象及系统操作指令汇总表(点击指令名称或参数会自动跳转到该指令的详解处)
序号 | 指令名 | 指令功能 | 参数 |
1 | |||
2 | |||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | |||
20 | |||
21 | |||
22 | |||
23 | |||
24 | |||
25 | |||
26 | |||
27 | |||
28 | |||
29 | |||
30 | |||
31 | |||
32 | crcrest | 复位crc初始值 | crcrest crctype,initval |
33 | crcputs | crc校验一个变量/常量 | crcputs att,length |
34 | crcputh | crc校验一组Hex | crcputh Hex |
35 | crcputu | crc校验一段串口缓冲区数据(recmod=1时有效) | crcputu star,length |
36 | |||
37 | 控件移动 (仅X3,X5系列支持) | ||
38 | play | 音频播放 (仅X3,X5系列支持) | play ch,audio,loop |
39 | twfile | 串口透传文件 (仅X3,X5系列支持) | twfile filepath,filesize |
40 | delfile | 删除文件 (仅X3,X5系列支持) | delfile filepath |
41 | refile | 重命名文件 (仅X3,X5系列支持) | refile srcfilepath,decfilepath |
42 | findfile | 查找文件 (仅X3,X5系列支持) | findfile filepath,att |
43 | rdfile | 透传读文件 (仅X3,X5系列支持) | rdfile filepath,addr,size,crc |
44 | newfile | 创建文件 (仅X3,X5系列支持) | newfile filepath,size |
45 | newdir | 创建文件夹 (仅X3,X5系列支持) | newdir dir |
46 | deldir | 删除文件夹 (仅X3,X5系列支持) | deldir dir |
47 | redir | 重命名文件夹 (仅X3,X5系列支持) | redir srcdir,decdir |
48 | finddir | 查找文件夹 (仅X3,X5系列支持) | finddir dir,att |
49 | beep | 蜂鸣器 (仅X2系列支持) | beep time |
GUI 绘图指令汇总表(点击指令名称或参数会自动跳转到该指令的详解处)
注:GUI 绘图指令主要应用在如下场合:
当上位界面编辑软件无法实现您的某些特殊显示要求的时候,使用 GUI 指令自己绘图来实现自己想要的显示效
果。 大多数情况下其实是不需要使用这些绘图指令的, 大多数的应用都可以通过界面编辑软件的控件操作来实现。
序号 | 指令名 | 指令功能 | 参数 |
1 | |||
2 | |||
3 | |||
4 | |||
5 | xstr x,y,w,h,fontid,pointcolor,backcolor,xcenter,ycenter,sta,string | ||
6 | |||
7 | |||
8 | |||
9 | |||
10 |
对象及系统操作指令详解
page pageid pageid:页面ID或页面名称 实例1:page 0 (刷新ID为0的页面) 实例2:page main (刷新名称为main的页面) 备注: 1.设备上电自动刷新第0页。 2.也可以对系统变量dp赋值来实现跳转页面(如dp=0),系统变量dp可以设置可以读取,具体请参看系统变量列表。 3.page 指令是跳转指令。 注意看↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 写在page指令后面的代码将被忽略没机会执行。 |
ref obj obj:控件ID或控件名称 实例1:ref 1 (重绘ID为1的控件) 实例2:ref t0 (重绘名称为t0的控件) 备注: 如果一个控件被GUI指令画出来的内容遮挡或者被另外的控件遮挡之后需要再显示出来,就使用ref来重绘。 |
click obj,event obj:控件ID或控件名称 event:事件序号:0为弹起,1为按下 click b0,1 (激活名称为b0的控件的按下事件) click 2,0 (激活ID为2的控件的弹起事件) 备注: 控件的按下/弹起事件在屏幕上触摸的时候会自动激活,如果在没有触摸的情况下想要手动激活,就使用click指令即可。 |
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设备返回数据格式"。 |
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语句来加任何自定义标识符。 |
printh hex hex:需要发送的字符的16进制字符串表达式 实例:printh d0 a0(让设备发送0xd0 0xa0两个字节) 备注: 1.使用printh指令发送数据的时候,设备仅仅只发送指定的字符,不会发起始符,不会发空格,不会发结束符。 2.参数中每组字符间必须有且只能有一个空格隔开,16进制的字符串表达式大小写均支持。 3.printh只能发送常量,不能发送变量,变量需要使用prints指令。 |
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(显示当前页面所有控件)。 |
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(当前页面所有控件触摸有效)。 |
randset minval,maxval minval:最小值 maxval:最大值 实例:randset 1,100 (设置当前随机数产生范围为最小1,最大100) 备注: 1.使用随机数之前需要先使用randset指令设定一次随机数产生范围,如果不设置,默认是最小0,最大2147483647。设置完范围以后,每读取一次系统变量rand将会得到一个随机数。 2.使用randset指令每设定一次范围,将一直有效,直到重新上电或者设备复位才会恢复默认。 3.随机数设定范围的数据类型为int类型(即:最小-2147483648,最大2147483647)。 |
add objid,ch,val objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称) ch:曲线控件通道号 val:数据 (最大255,最小0) 例如当前曲线控件s0的id为1 实例1:add 1,0,30 (往ID为1的曲线控件的0通道添加数据30) 等同于add s0.id,0,30 (往s0曲线控件的0通道添加数据30) 使用s0.id的好处:避免因为置顶/置底或者删除控件导致id改变从而出错 实例2:add 1,1,n0.val (往ID为1的曲线控件的1通道添加数据n0.val) 等同于add s0.id,0,30 (往s0曲线控件的0通道添加数据n0.val) 备注: 1.曲线数据只支持8位数据,最小0,最大255。 2.每个page页面最多支持4个曲线控件,每个曲线控件最多支持4个通道。可以连续发送数据,控件会自动平推显示数据.在发送数据的过程中也可以随时修改控件属性,比如随时修改各个通道的前景色或背景色。 |
cle objid,ch objid:曲线控件ID序号(此处必须是ID号,不支持使用控件名称) ch:曲线控件通道号(255表示所有通道) 实例1:cle 1,0 (清除ID为1的曲线控件的0通道数据) 实例2:cle 1,255 (清除ID为1的曲线控件的所有通道数据) 备注: 1.通道号为255时表示清除此曲线控件内的所有通道数据。 |
addt objid,ch,qyt objid: 曲线控件ID序号(此处必须是ID号,不支持使用控件名称) ch:曲线控件中的通道号 qyt:本次透传数据的点数量 例如当前曲线控件s0的id为1 实例:addt 1,0,100 (ID为1的曲线控件的通道0进入数据透传模式,透传点数为100点) addt s0.id,0,100 (s0曲线控件的通道0进入数据透传模式,透传点数为100点) 备注: 1.曲线数据只支持8位数据,最小0,最大255。单次透传数据量最大1024字节 2.发完透传指令后,用户需要等待设备响应才能开始透传数据,设备收到透传指令后,准备透传初始化数据大概需要5ms左右(如果在透传指令执行前串口缓冲区还有很多别的指令,那时间会更长),设备透传初始化准备好以后会发送一个透传就绪的数据给用户(0XFE+结束符),表示设备已经准备好,此时可以开始发送透传数据。透传数据为纯16进制数据,不再使用字符串,也不再需要结束符,设备收完指定的数据量以后,才会恢复指令接收状态。否则一直处于数据透传状态,透传数据完成以后,设备会发送结束标记给用户(0XFD+结束符)。 3.在指定的透传数量传输完成以前,曲线不会刷新,透传完毕之后会立即自动刷新。 |
doevents 实例: doevents (此指令不需要参数) 备注: 1.在一个较多指令的过程执行中,或者在一个较长时间的循环语句中,系统所有控制权被此过程全部占用,在过程结束之前,尽管相应的内存数据可以任意正常读写,但是屏幕不会刷新显示,加入doevents后可以转让控制权给屏幕刷新,执行doevents之后,屏幕会刷新所有被改变过的控件,刷新完之后,控制权交回当前过程继续执行。防止屏幕呈现假死的显示状态。 2.doevents多数情况下是配合while或for语句使用,使用方法请参看while或for语句的实例。 |
sendme 实例1:sendme (此指令不需要参数) 备注: 设备收到此指令会立刻把当前页面的ID号发送到串口,如果想要每次刷新页面自动发送页面ID,请在页面的初始化事件里写上sendme语句即可。发送格式请参看本表格后面的”串口HMI设备返回数据格式”表格。 |
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.如果目标变量和源变量类型相同,转换失败。 |
strlen att0,att1 att0:需要测试的字符串变量 att1:把测试结果赋值给此变量 实例:strlen t0.txt,n0.val (把字符串变量t0.txt的实际字符长度赋值给n0.val) 备注: 1.strlen测试的是以字符为单位的长度,而btlen测试的是以字节为单位的长度,比如一个汉字用btlen测试出来的长度是2字节,用strlen测试出来的长度是1字符。 2.被测试的变量必须是字符串类型,写入的变量必须是数值类型,否则会报错。 |
btlen att0,att1 att0:需要测试的字符串变量 att1:把测试结果赋值给此变量 实例:btlen t0.txt,n0.val (把字符串变量t0.txt的实际字节长度赋值给n0.val) 备注: 1.btlen测试的是以字节为单位的长度,而strlen测试的是以字符为单位的长度,比如一个汉字用btlen测试出来的长度是2字节,用strlen测试出来的长度是1字符。 2.被测试的变量必须是字符串类型,写入的变量必须是数值类型,否则会报错。 |
substr att0,att1,star,lenth att0:源变量(必须是字符串变量) att1:目标变量(必须是字符串变量) star:在源变量中的字符起始位置 lenth:截取字符串长度 实例:substr t0.txt,t1.txt,0,2 (从t0.txt中的0位置开始截取2个字符赋值给t1.txt) |
spstr src,dec,key,index |
touch_j 实例1:touch_j (进入触摸校准功能,此指令不需要参数) 备注: 所有设备出厂时已经校准过,一般情况下不需要使用此功能。 |
ref_stop 实例:ref_stop (此指令不需要参数) 备注: 1.暂停屏幕刷新之后,所有语句会继续解析并执行,相应的属性赋值操作也会正常运行,但是屏幕上的控件不会刷新,修改任何控件的任何属性都不会自动刷新显示(但是属性已经被正常修改了)。直到设备收到恢复刷新指令(ref_star)后,被修改过的控件将会立刻刷新显示。 2.暂停刷新之后,即便使用ref指令也不会立刻刷新,直到执行ref_star指令的时候统才会统一刷新,但是所有的gui绘图指令(比如画点,划线,画圆等)是不受影响的,会立即显示。 |
ref_star 实例:ref_star (此指令不需要参数) 备注: 此指令和ref_stop配合使用。 |
com_stop 实例1:com_stop (此指令不需要参数) 备注: 1. 暂停串口指令执行之后设备会继续接受指令,但是都不会执行,全部放在指令缓存区,直到收到”com_star”指令后,设备会从暂停时的指令开始到当前为止的所有指令全部执行。 2.使用指令暂停与恢复功能的时候,请评估您的设备的串口缓存区大小和指令缓存队列的最大数量是否足够支持你需要缓存的指令数目。这两项参数在你购买的设备规格书中的参数表中可以查询到。 |
com_star 实例1:com_star (此指令不需要参数) 备注: 1. 设备收到此指令之后,将从暂停时的指令开始到当前为止的所有指令全部执行。 2.使用指令暂停与恢复功能的时候,请评估您的设备的串口缓存区大小和指令缓存队列的最大数量是否足够支持你需要缓存的指令数目。这两项参数在你购买的设备规格书中的参数表中可以查询到。 |
code_c 实例1: code_c (此指令不需要参数) 立即清空串口指令缓冲区还没有执行的所有指令。 |
rest 实例:rest (此指令不需要参数) |
(仅k0 x系列支持) 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.使用用户存储区读写操作过程中请切记规划好数据区位置,以免位置交错引起数据覆盖错乱。 4.用户存储区位置为0-1023 |
(仅k0 x系列支持) 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.使用用户存储区读写操作过程中请切记规划好数据区位置,以免位置交错引起数据覆盖错乱。 4.用户存储区位置为0-1023 |
(仅k0 x系列支持) wept add,lenth add: 用户存储区位置(从0开始) lenth:透传长度 实例:wept 10,30 (透传30个字节的数据存到EEPROM的10位置,占用空间为10-39) 备注: 1.发完透传指令后,用户需要等待设备响应才能开始透传数据,设备收到透传指令后,准备透传初始化数据大概需要5ms左右(如果在透传指令执行前串口缓冲区还有很多别的指令,那时间会更长),设备透传初始化准备好以后会发送一个透传就绪的数据给用户(0XFE+结束符),表示设备已经准备好,此时可以开始发送透传数据。透传数据为纯16进制数据,不再使用字符串,也不再需要结束符,设备收完指定的数据量以后,才会恢复指令接收状态。否则一直处于数据透传状态,透传数据完成以后,设备会发送结束标记给用户(0XFD+结束符)。 用户存储区位置为0-1023。 |
(仅k0 x系列支持) rept add,lenth add: 用户存储区位置(从0开始) lenth:读取并透传发送的长度 实例:rept 10,30 (从用户存储区的10位置读取30个字节并透传发送到串口) 备注: 不管存储区中的数据是字符串还是数值,设备都按16进制来读取和发送指定的字节数量到串口,并且不会发结束符。 用户存储区位置为0-1023。 |
(仅k0 x5系列支持) 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系列只有io7才支持PWM输出 其他IO不支持。配置其他IO为PWM模式会报错。 2.使用控件事件邦定输入模式时,必须是在当前配置时刻的当前页面的控件才能邦定,不可以邦定其他页面的控件(即使是全局内存占用的控件也不可以),邦定当前页面控件以后,当重新刷新页面或者切换到别的页面后,邦定事件将不会继续触发,因此每次刷新页面需要重新邦定,建议将邦定代码写在页面的前初始化事件中最为合适。 3.每个需要用到外部IO的页面,都必须在前初始化事件中重新配置一次需要用到的相关IO口 |
crcrest crctype,initval crctype:crc校验类型(必须为1,Modbus crc16校验方式) initval:初始值(一般为0xffff) 实例1:crcrest 1,0xffff (复位CRC初始值为0xffff,以便后续检验数据) 备注: 1.复位之后,可使用crcputs或crcputh或crcputu校验指定数据,检验完毕读取系统变量crcval获得校验结果。 2.完整的CRC校验实例代码请参考:程序中使用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校验数据 |
crcputh Hex Hex:需要校验的数据的16进制字符串表达式(每个字节之间用空格隔开) 实例1:crcputh 03 25 (CRC校验hex:0x03,0x25) 备注: 1.使用crcputs或crcputh或crcputu校验指定数据,检验完毕读取系统变量crcval获得校验结果。 2.完整的CRC校验实例代码请参考:程序中使用CRC校验数据 |
crcputu star,length star:串口缓冲区数据起始位 length:需要校验的数据长度 实例1:crcputu 0,22 (校验串口缓冲区的前面22个字节,recmod=1时有效) 备注: 1.使用crcputs或crcputh或crcputu校验指定数据,检验完毕读取系统变量crcval获得校验结果。 2.完整的CRC校验实例代码请参考:程序中使用CRC校验数据 |
(仅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控件置于最顶层) |
仅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指令,系统会按照优先级顺序来移动。优先级高的会先移动,移动完成以后,才会启动下一个优先级的指令。 |
仅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系统变量来关闭或暂停指定通道的音频播放状态。 |
仅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.详细的文件透传逻辑请参看"高级应用与特殊指令详解"文档,点击此处跳转到详细说明页面。 |
仅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,即不可能使用。 |
仅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,即不可能使用。 |
仅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,即不可能使用。 |
仅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。 |
仅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,即不可能使用。 |
仅X3,X5系列支持 newdir dir dir:文件夹目录(如:"sd0/newfolder/") 实例:newdir "sd0/a/" (在SD卡根目录中创建一个名称为a的子目录) 备注: 1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。 |
仅X3,X5系列支持 deldir dir dir:文件夹目录(如:"sd0/newfolder/") 实例:deldir "sd0/a/" (在SD卡根目录中删除名称为a的子目录) 备注: 1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。 |
仅X3,X5系列支持 redir srcdir,decdir srcdir:源文件夹目录(如:"sd0/newfoldersrc/") decdir:目标文件夹目录(如:"sd0/newfolderdec/") 实例:redir "sd0/a/", "sd0/b/" (在SD卡根目录中将名称为a的子目录改为b) 备注: 1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。 |
仅X3,X5系列支持 finddir dir,att dir:文件夹目录(如:"sd0/newfolder/") att:查找结果写入变量(0-查找失败;1-查找成功。此变量必须是数值类型变量) 实例:finddir "sd0/a/",sys0 (查找SD卡根目录中是否有a的子目录,将结果返回到sys0中) 备注: 1.内存文件系统不支持子目录,SD卡支持子目录,目录路径必须以"/"结尾。 |
仅X2系列支持 beep time time:时间,单位毫秒 实例:beep 50 (蜂鸣器鸣叫50ms) 备注: 1.仅x2系列支持,其他系列不支持 |
GUI绘图指令详解
注:GUI绘图指令主要应用在如下场合:
当上位界面编辑软件无法实现您的某些特殊显示要求的时候,使用GUI指令自己绘图来实现自己想要的显示效果。大多数情况下其实是不需要使用这些绘图指令的,大多数的应用都可以通过界面编辑软件的控件操作来实现。
cls color color:十进制颜色值或颜色代号 实例1:cls 1024 (用十进制1024的颜色值刷屏) 实例2:cls RED (用代号为RED的颜色(RED代表红色)刷屏) 备注: 1.想了解设备支持的颜色代号表请参看本表格后面的”串口HMI颜色代号表”。 2.本指令表中所有指令中的颜色参数,全部都可以使用设备支持的颜色代号,也可以使用10进制的颜色值,请知晓。 |
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的图片 ) |
格式: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)) 备注: 此指令要求图片必须是全屏图片,否则切出来的图像不是你想要的。图片上的切图区域和屏幕上的显示区是重叠的。 |
格式: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)) |
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指令的备注。 |
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指令的备注。 |
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指令的备注。 |
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指令的备注。 |
cir x,y,r,color x:圆心坐标x y:圆心坐标y r:半径 color:画线颜色; 实例1:cir 100,100,30,RED 以坐标(100,100)为圆心画一个半径为30的空心圆,颜色为RED 备注: 关于颜色值的说明请参看cls指令的备注。 |
cirs x,y,r,color x:圆心坐标x y:圆心坐标y r:半径 color:填充颜色; 实例1:cirs 100,100,30,RED 以坐标(100,100)为圆心画一个半径为30的实心圆,填充颜色为RED 备注: 关于颜色值的说明请参看cls指令的备注。 |
提示:本指令表中所有指令中的颜色参数,全部都可以使用设备支持的颜色代号,也可以使用10进制的颜色值。
【串口HMI颜色代号表】
注:所有代号的书写均为大写
代号 | 10进制 | 所表示的颜色 |
RED | 63488 | 红色 |
BLUE | 31 | 蓝色 |
GRAY | 33840 | 灰色 |
BLACK | 0 | 黑色 |
WHITE | 65535 | 白色 |
GREEN | 2016 | 绿色 |
BROWN | 48192 | 橙色 |
YELLOW | 65504 | 黄色 |