本文将介绍通过LUA脚本设置系统参数。如常见的波特率、蜂鸣器、RTC的、背光亮度等。本章节涉及相关的函数有
1.在用户触摸修改控件回调函数:on_control_notify(screen,control,value):函数有三个参数:
- screen:表示画面ID
- control:表示控件的编号
- value:表示控件的值。
2.设置串口的通讯的波特率:uart_set_baudrate(baudrate)
- baudrate:表示设置的波特率值。232/TTL支持1200~961200bps,典型值为115200bps。485支持1200~115200bps,典型值为9600bps
3.设置背光亮度:set_backlight(level)
- level:表示设置的背光值,取值范围为0~100。数值越高,背光亮度越亮
4.设置蜂鸣器鸣叫时长:beep(time)
- time:表示蜂鸣器响的时间长度,单位ms,并非蜂鸣器的使能/失能控制
5.设置屏幕RTC时间:set_date_time(year,month,day,hour,minute,second)
- year:表示年
- month:表示月
- day:表示日
- hour:表示小时
- minute:表示分
- second:表示秒
注:更多LUA资料可参考LUA 脚本API函数接口 章节 和网站:www.runoob.com/lua
适用范围:M系列、W系列、X系列、F系列(固件版本 >= V4.2.401.0)
例程下载链接:《系统参数设置》(点击跳转)
3.1 修改波特率
画面配置
添加两个按钮控件(ID1、ID2),分别设置波特率为19200、115200;添加一个文本控件(ID14),用于显示波特率。如下所示
- 两个按钮控件:对内指令配置为互斥效果,操作风格均为置位,其中ID1按钮初始状态为按下,ID2按钮初始状态为弹起
- 文本控件:输入方式为系统变量、系统变量为波特率
LUA脚本
当用户点击【19200】或【115200】按钮 控件时候,触发on_control_notify(screen, control, value)回调函数,根据对应按钮按下,调用uart_set_baudrate(baudrate)设置对应的波特率,代码段如下所示
--[[***************************************************************************
** Function name: on_control_notify
** Descriptions: 用户通过触摸修改控件后,执行此回调函数。
点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
注意:回调函数的参数和函数名固定不能修改
** Input value : screen 画面ID
control 控件ID
value 控件值(包括文本控件输入的值)
***************************************************************************--]]
function on_control_notify(screen,control,value)
......
if screen==0 and control==1 and value==1 --按下第0页、编号1按钮
then
uart_set_baudrate(19200) --设置波特率为19200
elseif screen==0 and control==2 and value==1 --按下第0页、编号2按钮
then
uart_set_baudrate(115200) --设置波特率为115200
end
......
end
PS. uart_get_baudrate() 函数为获取当前波特率,如: local baudrate = uart_get_baudrate() ↩
运行效果
根据上述的代码段,运行效果如下所示
3.2 设置背光
背光的调节,可结合进度条和滑块进行滑动调节
画面配置
画面中添加一个滑块控件(ID4)和一个进度条控件(ID3)作为背光的控制,相关控件属性配置如下所示
- 滑块控件:设置数值起始范围为20~100(若背光调节为0或较低,会看不清楚画面内容)。其中,LUA脚本设置的背光等级支持0-100
- 进度条控件:设置【滑动通知】关联滑动条,添加相应的背景图片
LUA脚本
当用户点击/滑动滑块时,背光值和进度条也跟随变化。滑动过程触发LUA脚本 on_contrl_notify(screen,control,value),在调用set_backligt(level)设置背光值,代码段如下所示
--[[***************************************************************************
** Function name: on_control_notify
** Descriptions: 用户通过触摸修改控件后,执行此回调函数。
点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
注意:回调函数的参数和函数名固定不能修改
** Input value : screen 画面ID
control 控件ID
value 控件值(包括文本控件输入的值)
***************************************************************************--]]
function on_control_notify(screen,control,value)
......
if screen==0 and control == 4 --滑动第0页、编号4滑动条
then
set_backlight(value) --设置背光为value
end
......
end
PS . get_backlight 函数为获取当前背光值,如: local cur_backlight = get_backlight() ↩
运行预览
此处虚拟屏运行效果仅做为控件变化演示,实际调节背光的效果,需要编译下载到实体屏中体验
3.3 设置蜂鸣器响
画面配置
放置一个按钮控件(ID为5),按钮属性中的事件通知选择“是”。如下所示
LUA脚本
按下按钮时,触发事件通知on_contrl_notify(screen,control,value)函数,对应控件触发成立后,调用beep(500)函数,表示蜂鸣器鸣叫500ms,代码段如下所示
--[[***************************************************************************
** Function name: on_control_notify
** Descriptions: 用户通过触摸修改控件后,执行此回调函数。
点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
注意:回调函数的参数和函数名固定不能修改
** Input value : screen 画面ID
control 控件ID
value 控件值(包括文本控件输入的值)
***************************************************************************--]]
function on_control_notify(screen,control,value)
......
if screen==0 and control == 5 and value == 1 --滑动第0页、编号4滑动条
then
beep(500) --设置蜂鸣器鸣叫500ms
end
......
end
运行预览
下载到串口屏中,点击”响”按钮,听到”嘀”一声
3.4 设置RTC
画面中,放置一个RTC控件,两个按钮分别设置不同的时间。控件相关属性配置如下所示
LUA脚本
触发事件通知on_contrl_notify(screen,control,value)函数,对应控件触发成立后,调用 set_date_time()函数设置RTC时间。代码如下所示:
--[[***************************************************************************
** Function name: on_control_notify
** Descriptions: 用户通过触摸修改控件后,执行此回调函数。
点击按钮控件,修改文本控件、修改滑动条都会触发此事件。
注意:回调函数的参数和函数名固定不能修改
** Input value : screen 画面ID
control 控件ID
value 控件值(包括文本控件输入的值)
***************************************************************************--]]
function on_control_notify(screen,control,value)
......
if screen==0 and control == 6 and value == 1 --滑动第0页、编号4滑动条
then
set_date_time(2019,1,1,1,1,1) --设置当前时间为2019/01/01 01:01:01
end
......
end
PS . get_date_time函数为获取当前rtc值,如: local cur_backlight = get_backlight() ↩
运行预览
下载到串口屏中,点击”时间一”或”时间二”按钮,看到左侧RTC时间变化。注意,虚拟屏不支持修改RTC控件,因为是电脑PC端的时间