本文将介绍通过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脚本教程3)插图1

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() ↩

运行效果

根据上述的代码段,运行效果如下所示

系统参数设置(触控屏LUA脚本教程3)插图3

3.2 设置背光

背光的调节,可结合进度条和滑块进行滑动调节

画面配置

画面中添加一个滑块控件(ID4)和一个进度条控件(ID3)作为背光的控制,相关控件属性配置如下所示

  • 滑块控件:设置数值起始范围为20~100(若背光调节为0或较低,会看不清楚画面内容)。其中,LUA脚本设置的背光等级支持0-100
  • 进度条控件:设置【滑动通知】关联滑动条,添加相应的背景图片
系统参数设置(触控屏LUA脚本教程3)插图5

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脚本教程3)插图7

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脚本教程3)插图9

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端的时间

相关新闻

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

邮箱

cloud@modbus.cn

QQ
QQ
微信
微信
SHARE
TOP