串口屏LUA教程-定时器的使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LUA教程-定时器的使用V1.0
工程技术笔记
修订历史
版本日期原因编制审查V1.02019/01/15创建文档林绍佳刘启鑫
目录
1.适合范围 (1)
2.开发环境版本 (2)
3.概述 (3)
4.实现教程 (4)
4.1工程准备 (4)
4.1.1硬件平台 (4)
4.1.2素材准备 (4)
4.1.3LUA编辑器 (5)
4.2API函数说明 (6)
4.3教程实现过程 (7)
4.3.1定时器的使用 (7)
4.4编译和下载 (10)
4.4.1编译工程 (10)
4.4.2下载 (11)
5.完整程序清单 (12)
6.免责声明 (15)
1.适合范围
该文档适合所有大彩物联型系列。
2.开发环境版本
1.VisualTFT软件版本:V3.0.0.944及以上的版本。
版本查看:
a)打开VisualTFT软件启动页面如图2-1软件版本,右上角会显示的软件版本号;
图2-1软件版本
b)打开VisualTFT,在软件右下角可以查看软件版本图2-2软件版本,
最新版本可登录大彩官网进行下载。
图2-2软件版本
2.串口屏硬件版本:V
3.0.301.0及以上的版本。
版本查看:
a)查看屏幕背面版本号贴纸;
b)VisualTFT与屏幕联机成功后,右下角显示的版本号。
3.LUA语言版本V5.5。
3.概述
物联型可以通过LUA脚本配合工程完成丰富多样的操作。
本文将介绍在LUA脚本中使用定时器循环设置按钮的状态。在按下按钮后,定时器启动,定时器以设定的时间为标准,循环设置灯亮/灭。
4.实现教程
本章节主要讲述通过LUA实现循环计时,并在超时回调函数中设置灯循环亮/灭。本文将分为以下是4个阶段讲述教程DEMO是如何实现的:
1.工程准备,
2.工程配置与功能,
3.LUA编写及调试,
4.下载与运行。
4.1工程准备
在实现教程DEMO前需要作以下三个准备:
1.硬件平台,
2.UI素材,
3.LUA编辑器。
4.1.1硬件平台
该例程使用大彩物联型7寸DC80480W070为验证开发平台。如图5-1所示。
图5-1物联型7寸
4.1.2素材准备
准备好相应的美工UI。如图5-2所示。
图5-2素材准备
4.1.3LUA编辑器
上位机VisualTFT内部已集成了LUA开发编译环境,点击菜单栏工具,选择LUA编辑器,如图5-3所示。
图5-3打开LUA编辑器
LUA编辑器的开发环境,如图5-4所示。
图5-4LUA编辑器界面
4.2API函数说明
大彩科技针对LUA脚本提供了丰富的API接口函数,具体函数可以查阅文档《大彩组态串口屏LUA脚本API》,如图5-5所示。
图5-5API函数文档
本教程文档中所涉及到的部分的相关接口函数
1.函数on_control_notify(screen,control,value)
注释:此函数可以在用户触摸修改控件后被回调。函数有三个参数:
screen表示画面ID
control表示控件的编号
value表示控件的值。
2.函数on_timer(timer_id)
注释:此函数可以在定时器超时后被回调。函数有一个参数:
timer_id表示超时定时器ID
3.函数start_timer(timer_id,timeout,countdown,repeat)
注释:此函数可以启动定时器。函数有四个参数:
timer_id表示定时器ID,0~31
timeout表示超时时间,单位毫秒
countdown表示计时的方向,0顺计时,1倒计时
repeat表示重复次数,0表示无限重复
4.函数stop_timer(timer_id),timer_id表示定时器ID。
5.函数set_value(screen,control,value)
注释:此函数可以设置控件数值。函数有三个参数:
screen表示画面ID
control表示控件的编号
value表示控件的值。
注:更多API函数请参考文档《物联型LUA脚本API_V1.0》
4.3教程实现过程
本例程主要展示通过定时器设置灯循环亮/灭,教程中功能的实现步骤如下:
1.配置工程属性,
2.编写LUA程序,
3.运行程序。
4.3.1定时器的使用
1.首先,设置一个按钮用来控制定时器的开关,事件通知选择是。如果在按下时需要
有效果,就要选择按下时的图片效果,并勾选上裁剪。操作风格选择开关。如图5-6。
图5-6设置开关按钮
在工程中可以选择按钮或者图标来模拟灯。本文使用按钮来模拟。
设置一个按钮,因为灯有两种状态,所有需要两张图片分别表示亮和灭。
使用灯灭的图片作页面背景图。在按下时的图片处选择灯亮的图片并勾选裁剪。如图
5-7。
图5-7设置灯
2.按下按钮时,触发事件通知,LUA脚本中的if判断成立,执行函数
start_timer(...),启动定时器。如程序清单5-1所示。
程序清单5-1设置定时器启动
if screen==0and control==1and value==1--按下第0页,第1个控件
then
start_timer(0,1000,1,0)--开启定时器0,超时时间2s
end
定时器开启后,超时就会进入回调函数on_timer(...),在回调函数中循环设置灯的状态。如程序清单5-2。
程序清单5-2循环设置灯的状态
if timer_id==0--定时器0超时
then
if lamp_status==0--当按钮为弹起状态
then
set_value(0,2,1)--设置按钮2为按下状态,灯亮
lamp_status=1
elseif lamp_status==1--当按钮为按下状态
then
set_value(0,2,0)--设置按钮2为弹起状态,灯灭
lamp_status=0
end
end
把程序编写入软件的LUA编辑器中,如图5-8所示。