指令集说明

0.术语

  • attr:表示控件属性、系统变量属性、自定义变量的名称

  • pagename: 表示页面名

  • widname: 表示控件名

  • id: 表示页面id、控件id、资源id(音频、图片)。数值类型

  • str: 表示常量字符串

1.page(页面切换)

发送格式 :page(pagename | id)
  • 参数说明:

    • pagename | id:页面名称或页面数值ID

  • 举例:

    • page(1):切换到ID为1的页面(不推荐此方法,工程编辑时可能会拖动页面调整页面顺序)

    • page(main):切换到页面名称为main的页面(推荐此方法)

返回格式 :

提示

  • 脚本中,执行了page()指令,后续的代码将不会执行

  • page()指令不能切换到屏保页面,会报“页面ID无效”警告

2.get(获取属性)

发送格式 :get(attr)
  • 参数说明:

    • attr: 可以为控件属性名称、系统变量名称、其他变量名称、常量数值

  • 举例:

    • get(btn0.x): 获取控件btn0.x属性的值

    • get(sys.bl): 获取系统变量sys.bl的值

    • get(123) : 获取123

    • get(btn0.txt) : 获取控件btn0的文本值,即字符串

返回格式-getn:100 -gets:btntxt
  • 返回结果为数值型:-getn:100

  • 返回结果为字符串型:-gets:btntxt

3.play(播放音乐)

发送格式 :play(str | id, mode)

  • 参数说明:

    • str | id: str字符串,如”/test.ATKA”(播放TF卡里面的资源)、id,如0(播放添加工程里ID为0音乐)

    • mode: 0-播放一遍 1-循环播放

  • 举例:

    • play(0, 1) : 播放工程资源里面ID为0的音乐,循环播放

    • play(“/test.ATKA”, 0) : 播放TF卡根目录下,test.ATKA音乐,播放一遍

返回格式 :

提示

  • play()指令可以直接播放音乐,无需页面添加音频控件

  • 调用play()指令后,可调用系统变量sys.audio来控制播放和暂停

  • 串口屏同一时刻仅支持播放一个音频(音频和视频共享)

  • 使用play()指令和页面添加音频控件播放的区别:音频控件和play()指令的区别

4.move(移动控件)

发送格式 :move(widname | id, x0, y0, x1, y1, time, mode)
  • 参数说明:

    • widname | id: 控件名或控件id

    • x0: 移动的起始坐标x

    • y0: 移动的起始坐标y

    • x1: 结束坐标x

    • y1: 结束坐标y

    • time: 移动时间(单位毫秒)

    • mode:移动方式,范围:0-5

      移动方式

      0

      线性

      1

      缓入

      2

      缓出

      3

      缓入缓出

      4

      过冲

      5

      反弹

  • 举例:

    • move(1, 10, 10, 100, 100, 300, 0) : 移动当前页面第1个控件,线性移动

    • move(btn1, 10, 10, 100, 100, 300, 5) : 移动当前页面控件名为btn1的控件,反弹方式

返回格式 :
说明
  • 只能移动当前页面的控件

  • 页面、屏保、系统键盘等不能移动

5.click(激发控件事件)

发送格式click(widname | id, event)
  • 参数说明:

    • widname | id: 控件名或控件id

    • event: 0-激活弹起事件 1-激活按下事件

  • 举例:

    • click(1, 0) : 激活当前页面控件ID为1的弹起事件

    • click(btn1, 1) : 激活当前页面控件名为btn1的控件的按下事件

返回格式 :

提示

  • 当前事件脚本,只允许调用不超过10次click指令

  • click指令和其他指令不同,它先缓存指令,执行完当前事件脚本之后再依次执行click指令

  • click不能激活自己,否则执行过程返回警告。因为click激活自己会造成死循环

6.vis(隐藏控件)

发送格式vis(widname | id, state)
  • 参数说明:

    • arwidname | id: 控件名或控件id

    • state: 0-隐藏 1-显示

  • 举例:

    • vis(1, 0) : 隐藏当前页面控件ID为1的控件

    • vis(btn1, 1) : 激活当前页面控件名为btn1的控件

返回格式 :

7.cadd(曲线添加数据)

发送格式cadd(widname | id, ch, value)
  • 参数说明:

    • arwidname | id: 控件名或控件id(仅支持曲线控件的名称,否则报错)

    • ch: 通道0-3

    • value: 值 (0~255)

  • 举例:

    • cadd(chart0, 2, 100) : 给chart0曲线控件的通道2,添加一个数据,值为100

返回格式 :

8.covx(变量类型转换)

发送格式covx(attr0, attr1, lenth, format)
  • 参数说明:

    • attr0: 源变量

    • attr1: 目标变量

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

    • format: 目前未使用,设为0即可

  • 举例:

    • covx(h0.val, btn0.txt, 0, 0) : 将滑块控件h0的值,数值转换为字符串并赋值给btn0.txt

    • covx(btn0.txt, h0.val, 0, 0) : 将btn0.txt的数值字符串转换为数值,并赋值给h0.val

返回格式 :
说明 :
  1. 源变量为数值型变量时,目标变量必须是字符串型变量。

  2. 相反,源变量为字符串型时,目标变量必须是数值型。

9.reset(复位)

发送格式reset()
  • 参数说明:无参数

  • 举例:

    reset() : 复位屏幕

返回格式 :

10.ack(握手)

发送格式ack()
  • 参数说明:无参数

  • 举例:

    ack(): 和串口屏握手

返回格式 :
  • -ack

11.rtcs(设置RTC时间)

发送格式rtcs(year, month, mday, hour, min, sec)
  • 参数说明:

    • year: 年,设置范围2000-2099

    • month: 月,范围1-12

    • mday: 日,范围1-31

    • hour: 时,范围0-23

    • min: 分,范围0-59

    • sec: 秒,范围0-59

  • 举例:

    • rtcs(2022, 10, 20, 17, 20, 0) : 设置时间给RTC芯片,RTC控件时间使用该指令校准时间

返回格式 :

注意

输入的参数一定要在范围内,否则设置不成功!返回-war:131警告

12.beep(激活蜂鸣器)

发送格式beep(time, frequency)
  • 参数说明:

    • time: 激活时间,单位毫秒

    • frequency: 频率,单位hz

  • 举例:

    • beep(300, 1000) : 激活蜂鸣器300毫秒,频率1000hz

返回格式 :

13.version(获取固件版本)

发送格式version()
  • 参数说明:无参数

  • 举例:

    • version() : 获取版本号,返回版本号字符串

返回格式 :
  • -version:V1.2.9

14.randset(设置随机数范围)

发送格式randset(min, max)
  • 参数说明:无参数

    • min: 最小值, int32_t类型

    • max: 最大值,int32_t类型

  • 举例:

    • randset(0, 100) : 设置系统变量随机数(sys.rand)属性的范围,0-100。

返回格式 :

15.cclear(曲线清除数据)

发送格式cclear(widname | id, ch)
  • 参数说明:

    • arwidname | id: 控件名或控件id(仅支持曲线控件的名称,否则报错)

    • ch: 通道0-3

  • 举例:

    • cclear(chart0, 0) : 清除chart0曲线控件通道0的数据,即清除波形

返回格式 :

16.caddt(曲线透传添加数据)

发送格式caddt(widname | id, ch, points)
  • 参数说明:

    • arwidname | id: 控件名或控件id(仅支持曲线控件的名称,否则报错)

    • ch: 通道0-3

    • points: 透传的点数 范围:0-1024

  • 举例:

    • caddt(chart0, 0, 100) // 设置设备串口进入透传状态,然后给chart0曲线控件通道0一次性添加100个点

返回格式 :
  • -caddt:start // 表示设备已进入透传状态,用户可以开始发送波形数据

  • -caddt:end // 设备退出透传状态(传输完成points个点,或5秒内设备没接收到数据)

说明 :
  1. 发送caddt指令后,设备串口进入透传状态(不解析数据,直接将接收的数据发送给曲线控件的指定通道)

  2. 当设备接收完points个点后或5秒内没接收到数据,设备串口退出透传状态。

  3. 退出透传状态,设备返回:-caddt:end

17.prints(发送字符串数据)

发送格式 :prints(“fmt”, …) // 用法和C语言printf一模一样
  • 参数说明:

    • fmt: 格式化字符串(必须带双引号)

    • …: 可变参数(最多支持9个参数)

  • 举例:

    • prints(“123”): 发送字符串“123”

    • prints(“b0.x=%d”, b0.x) : 如b0.x=100,发送字符串“b0.x=100”

    • prints(“str=%s”, b0.txt.str) : 如b0.txt.str=”Btn”,发送字符串“str=Btn”

返回格式 :
  • 发送:prints(“123”), 返回:-prints:123

  • 发送:prints(“b0.x=%d”, b0.x) 返回:-prints:b0.x=100

  • 发送:prints(“str=%s”, b0.txt.str) 返回:-prints:str=Btn

注解

  1. 用法和C语言printf一模一样,只不过可变参数仅支持9个

  2. 注意参数类型和格式化类型一定要匹配!如:prints(“%d”, b0.txt.str),输出可能是0。

  3. 此指令通常用在串口屏发送给设备,而非设备发给串口屏

18.printh(发送十六进制数据)

发送格式 :printh(hex)
  • 参数说明:

    • hex: 十六进制数据,如:aa ff 01

  • 举例:

    • printh(aa ff 01): 发送十六进制数据: aa ff 01

返回格式 :

注解

  1. hex: aa ff 01。写法:必须是两位的十六进制格式,且每个数据之间间隔一个空格

  2. hex: 最多可以发送256个数据

  3. 此指令通常用在串口屏发送给设备,而非设备发给串口屏

19.get_sdsize(获取SD卡剩余空间)

发送格式 get_sdsize()
  • 参数说明:

  • 举例:

    • get_sdsize(): 获取SD卡容量信息

返回格式 :
  • -get_sdsize: remain = 2878996kb; // 获取SD 剩余空间,单位kb

注意:
  1. 必需先插上了SD卡再上电,才能读到剩余空间,否则读出来是0kb。