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, ...) 创建一个任务线程,在模块最末行调用该函数并注册模块中的任务函数,main.lua导入该模块即可
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消息回调处理函数
run () run()从底层获取core消息并及时处理相关消息,查询定时器并调度各注册成功的任务线程运行和挂起
setRollBack (flag[, secs=300]) 设置“lua脚本运行出错时,是否回退原始烧写版本”的功能开关。如果没有调用此接口设置,默认回滚 设置不允许回滚功能时,要同时设置一个开机时间阀值,超过这个时间,才不允许回滚


Functions

restart (r)
软件重启

Parameters:

  • r string
     重启原因,用户自定义,一般是string类型,重启后的trace中会打印出此重启原因

Returns:

Usage:

  • sys.restart('程序超时软件重启')
wait (ms)
Task任务延时函数,只能用于任务函数中

Parameters:

  • ms number
      整数,最大等待126322567毫秒

Returns:

  • 定时结束返回nil,被其他线程唤起返回调用线程传入的参数

Usage:

  • sys.wait(30)
waitUntil (id, ms)
Task任务的条件等待函数(包括事件消息和定时器消息等条件),只能用于任务函数中。

Parameters:

  • id
     消息ID
  • ms number
     等待超时时间,单位ms,最大等待126322567毫秒

Returns:

  1. result 接收到消息返回true,超时返回false
  2. data 接收到消息返回消息参数

Usage:

  • result, data = sys.waitUntil("SIM_IND", 120000)
waitUntilExt (id, ms)
Task任务的条件等待函数扩展(包括事件消息和定时器消息等条件),只能用于任务函数中。

Parameters:

  • id
     消息ID
  • ms number
     等待超时时间,单位ms,最大等待126322567毫秒

Returns:

  1. message 接收到消息返回message,超时返回false
  2. data 接收到消息返回消息参数

Usage:

  • result, data = sys.waitUntilExt("SIM_IND", 120000)
taskInit (fun, ...)
创建一个任务线程,在模块最末行调用该函数并注册模块中的任务函数,main.lua导入该模块即可

Parameters:

  • fun
     任务函数名,用于resume唤醒时调用
  • ...
     任务函数fun的可变参数

Returns:

  • co  返回该任务的线程号

Usage:

  • sys.taskInit(task1,'a','b')
init (mode, lprfnc)
Luat平台初始化

Parameters:

  • mode
     充电开机是否启动GSM协议栈,1不启动,否则启动
  • lprfnc
     用户应用脚本中定义的“低电关机处理函数”,如果有函数名,则低电时,本文件中的run接口不会执行任何动作,否则,会延时1分钟自动关机

Returns:

Usage:

  • sys.init(1,0)
timerStop (val, ...)
关闭定时器

Parameters:

  • val
     值为number时,识别为定时器ID,值为回调函数时,需要传参数
  • ...
     val值为函数时,函数的可变参数

Returns:

Usage:

  • timerStop(1)
timerStopAll (fnc)
关闭同一回调函数的所有定时器

Parameters:

  • fnc
     定时器回调函数

Returns:

Usage:

  • timerStopAll(cbFnc)
timerStart (fnc, ms, ...)
开启一个定时器

Parameters:

  • fnc
     定时器回调函数
  • ms number
     整数,最大定时126322567毫秒
  • ...
     可变参数 fnc的参数

Returns:

  • number 定时器ID,如果失败,返回nil
timerLoopStart (fnc, ms, ...)
开启一个循环定时器

Parameters:

  • fnc
     定时器回调函数
  • ms number
     整数,最大定时126322567毫秒
  • ...
     可变参数 fnc的参数

Returns:

  • number 定时器ID,如果失败,返回nil
timerIsActive (val, ...)
判断某个定时器是否处于开启状态

Parameters:

  • val
     有两种形式
    一种是开启定时器时返回的定时器id,此形式时不需要再传入可变参数...就能唯一标记一个定时器
    另一种是开启定时器时的回调函数,此形式时必须再传入可变参数...才能唯一标记一个定时器
  • ...
     可变参数

Returns:

  • number 开启状态返回true,否则nil
subscribe (id, callback)
订阅消息

Parameters:

  • id
     消息id
  • callback
     消息回调处理

Usage:

  • subscribe("NET_STATUS_IND", callback)
unsubscribe (id, callback)
取消订阅消息

Parameters:

  • id
     消息id
  • callback
     消息回调处理

Usage:

  • unsubscribe("NET_STATUS_IND", callback)
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)
run ()
run()从底层获取core消息并及时处理相关消息,查询定时器并调度各注册成功的任务线程运行和挂起

Returns:

Usage:

  • sys.run()
setRollBack (flag[, secs=300])
设置“lua脚本运行出错时,是否回退原始烧写版本”的功能开关。如果没有调用此接口设置,默认回滚
 设置不允许回滚功能时,要同时设置一个开机时间阀值,超过这个时间,才不允许回滚

Parameters:

  • flag bool
    “lua脚本运行出错时,是否回退原始烧写版本”的标志,true表示允许回滚,false表示不允许回滚
  • secs number [此参数可选,默认值为: 300]
    当配置不允许回滚时,此参数才有意义【注意:Luat_V0036_XXXX以及以后的core版本才支持此功能,此参数限制的是脚本程序无法捕获的core中lua虚拟机异常】;
          表示一个开机时间阀值,超过这个时间,才不允许回滚;取值范围如下:
          1到72*3600:单位为秒;表示“开机后,在此时间范围内发生异常,允许回滚”;例如300秒,表示开机运行5分钟内的错误允许回滚,5分钟后的错误不允许回滚

Returns:

  • nil

Usage:

  • sys.setRollBack(true)
    sys.setRollBack(false)
generated by LDoc 1.4.6 Last updated 2019-11-19 10:46:53