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