Luat实例教程:timer定时器
2018-03-23 本文已影响18人
Luat物联网通信模块
本示例实现的功能是:利用timer_loop_start循环打印TimerFunc1 timer1,timer_start定时8s打印TimerFunc2 timer2并关闭。
1.在编辑工具建立一个test.lua的文件(不一定叫这个名字,用户可以自己随便取名)
2.设置本文件被全体可见。也就意味着,一旦test被某一文件加载,则test在任何文件中均可被看见,即test中全局变量和函数均可被任何文件调用。
module(...,package.seeall)
3.创建一个回调函数TimerFunc1,也就是打印作用。
function TimerFunc1(id)
print("TimerFunc1 "..id)
end
4.调用开启循环定时器函数timer_loop_start,TimerFunc1是其回调函数,第二个参数1000是定时时间(单位为毫秒),从第三个参数开始就是回调函数TimerFunc1的参数了,个数不定。
sys.timer_loop_start(TimerFunc1,1000,"timer1")
循环定时器不会自己停,不停打印“TimerFunc1 timer1”。
5.创建一个回调函数TimerFunc2,作用是停掉上一步开启的循环定时器,因为循环定时器不会自己停。
function TimerFunc2(id)
print("TimerFunc2 "..id)
sys.timer_stop(TimerFunc1)
end
6.调用开启一次性定时器函数timer_start。Timer2Func是其回调函数。开启本定时器8秒钟后,调用TimerFunc2,停掉循环定时器TimerFunc1。
sys.timer_start(TimerFunc2,8000,"timer2")
7.在编辑工具中建立一个名为main.lua的文件。lua脚本的执行从main.lua开始,main.lua是入口文件,在main.lua中把test加载进去就好了。sys.ini是对系统初始化,sys.run()是系统主程序。这两句必须有
--重要提醒:必须在这个位置定义MODULE_TYPE、PROJECT和VERSION变量
--MODULE_TYPE:模块型号,目前仅支持Air201、Air202、Air800
--PROJECT:ascii string类型,可以随便定义,只要不使用,就行
--VERSION:ascii string类型,如果使用Luat物联云平台固件升级的功能,必须按照"X.X.X"定义,X表示1位数字;否则可随便定义
MODULE_TYPE = "Air202"
PROJECT = "TIMER"
VERSION = "1.0.0"
require"sys"
require"test"
if MODULE_TYPE=="Air201" then
require"wdt"
end
sys.init(0,0)
sys.run()
- 定时最小时间为1ms
- 详情代码见下链接