Module sys
模块功能:Luat协程调度框架
Info:
- Copyright: openLuat
- Release: 2017.9.13
- License: MIT
- Author: openLuat
Functions
restart (r) | 软件重启 |
wait (ms) | Task任务延时函数,只能用于任务函数中 |
waitUntil (id, ms) | Task任务的条件等待函数(包括事件消息和定时器消息等条件),只能用于任务函数中。 |
waitUntilExt (id, ms) | Task任务的条件等待函数扩展(包括事件消息和定时器消息等条件),只能用于任务函数中。 |
taskInit (fun, ...) | 创建一个任务并且运行该任务 |
init (mode, lprfnc) | Luat平台初始化 |
timerStop (val, ...) | 关闭定时器 |
timerStopAll (fnc) | 关闭同一回调函数的所有定时器 |
timerStart (fnc, ms, ...) | 开启一个定时器 |
timerLoopStart (fnc, ms, ...) | 开启一个循环定时器 |
timerIsActive (val, ...) | 判断某个定时器是否处于开启状态 |
subscribe (id, callback) | 订阅消息 |
unsubscribe (id, callback) | 取消订阅消息 |
publish (...) | 发布内部消息,存储在内部消息队列中 |
rtos.on (id, handler) | 注册rtos消息回调处理函数 |
Functions
- restart (r)
-
软件重启
Parameters:
- r
string
重启原因,用户自定义,一般是string类型,重启后的trace中会打印出此重启原因
Returns:
-
无
Usage:
sys.restart('程序超时软件重启')
- r
string
- wait (ms)
-
Task任务延时函数,只能用于任务函数中
Parameters:
- ms
number
整数,最大等待126322567毫秒
Returns:
-
定时结束返回nil,被其他线程唤起返回调用线程传入的参数
Usage:
sys.wait(30)
- ms
number
- waitUntil (id, ms)
-
Task任务的条件等待函数(包括事件消息和定时器消息等条件),只能用于任务函数中。
Parameters:
- id
消息ID
- ms
number
等待超时时间,单位ms,最大等待126322567毫秒
Returns:
-
result 接收到消息返回true,超时返回false
-
data 接收到消息返回消息参数
Usage:
result, data = sys.waitUntil("SIM_IND", 120000)
- id
- waitUntilExt (id, ms)
-
Task任务的条件等待函数扩展(包括事件消息和定时器消息等条件),只能用于任务函数中。
Parameters:
- id
消息ID
- ms
number
等待超时时间,单位ms,最大等待126322567毫秒
Returns:
-
message 接收到消息返回message,超时返回false
-
data 接收到消息返回消息参数
Usage:
result, data = sys.waitUntilExt("SIM_IND", 120000)
- id
- taskInit (fun, ...)
-
创建一个任务并且运行该任务
Parameters:
- fun
任务主函数,激活task时使用
- ...
任务主函数fun的可变参数
Returns:
-
co 返回该任务的线程ID
Usage:
sys.taskInit(task1,'a','b')
- fun
- init (mode, lprfnc)
-
Luat平台初始化
Parameters:
- mode
充电开机是否启动GSM协议栈,1不启动,否则启动
- lprfnc
用户应用脚本中定义的“低电关机处理函数”,如果有函数名,则低电时,本文件中的run接口不会执行任何动作,否则,会延时1分钟自动关机
Returns:
-
无
Usage:
sys.init(1,0)
- mode
- timerStop (val, ...)
-
关闭定时器
Parameters:
- val
值为number时,识别为定时器ID,值为回调函数时,需要传参数
- ...
val值为函数时,函数的可变参数
Returns:
-
无
Usage:
timerStop(1)
- val
- timerStopAll (fnc)
-
关闭同一回调函数的所有定时器
Parameters:
- fnc
定时器回调函数
Returns:
-
无
Usage:
timerStopAll(cbFnc)
- fnc
- timerStart (fnc, ms, ...)
-
开启一个定时器
Parameters:
- fnc
定时器回调函数
- ms
number
整数,最大定时126322567毫秒
- ...
可变参数 fnc的参数
Returns:
-
number 定时器ID,如果失败,返回nil
- fnc
- timerLoopStart (fnc, ms, ...)
-
开启一个循环定时器
Parameters:
- fnc
定时器回调函数
- ms
number
整数,最大定时126322567毫秒
- ...
可变参数 fnc的参数
Returns:
-
number 定时器ID,如果失败,返回nil
- fnc
- timerIsActive (val, ...)
-
判断某个定时器是否处于开启状态
Parameters:
- val
有两种形式 一种是开启定时器时返回的定时器id,此形式时不需要再传入可变参数...就能唯一标记一个定时器 另一种是开启定时器时的回调函数,此形式时必须再传入可变参数...才能唯一标记一个定时器
- ...
可变参数
Returns:
-
number 开启状态返回true,否则nil
- val
- subscribe (id, callback)
-
订阅消息
Parameters:
- id
消息id
- callback
消息回调处理
Usage:
subscribe("NET_STATUS_IND", callback)
- id
- unsubscribe (id, callback)
-
取消订阅消息
Parameters:
- id
消息id
- callback
消息回调处理
Usage:
unsubscribe("NET_STATUS_IND", callback)
- id
- publish (...)
-
发布内部消息,存储在内部消息队列中
Parameters:
- ...
可变参数,用户自定义
Returns:
-
无
Usage:
publish("NET_STATUS_IND")
- ...
- rtos.on (id, handler)
-
注册rtos消息回调处理函数
Parameters:
- id
number
消息类型id
- handler
消息处理函数
Returns:
-
无
Usage:
rtos.on(rtos.MSG_KEYPAD, function(param) handle keypad message end)
- id
number