sysplus - sys库的强力补充#

已适配 Air780E/Air700E Air780EP Air601 Air101/Air103 Air105 ESP32C3 ESP32S3

备注

本页文档由这个文件自动生成。如有错误,请提交issue或帮忙修改后pr,谢谢!

示例

-- 本库是sys库的补充, 添加了如下内容:
-- 1. cwait机制
-- 2. 任务消息机制, 即sub/pub的增强版本

-- 在socket,libnet,http库等场景需要用到, 所以也需要require

sysplus.waitMsg(taskName, target, timeout)#

等待接收一个目标消息

参数

传入值类型

解释

string

任务名称,用于唤醒任务的id

string

目标消息,如果为nil,则表示接收到任意消息都会退出

int

超时时间,如果为nil,则表示无超时,永远等待

返回值

返回值类型

解释

table

成功返回table型的msg,超时返回false

例子

-- 等待任务
sysplus.waitMsg('a', 'b', 1000)
-- 注意, 本函数会自动注册成全局函数 sys_wait

sysplus.sendMsg(taskName, target, arg2, arg3, arg4)#

向目标任务发送一个消息

参数

传入值类型

解释

string

任务名称,用于唤醒任务的id

any

消息中的参数1,同时也是waitMsg里的target

any

消息中的参数2

any

消息中的参数3

any

消息中的参数4

返回值

返回值类型

解释

bool

成功返回true, 否则返回false

例子

-- 向任务a,目标b发送消息
sysplus.sendMsg('a', 'b')
-- 注意, 本函数会自动注册成全局函数 sys_send

sysplus.taskInitEx(fun, taskName, cbFun, …)#

创建一个任务线程,在模块最末行调用该函数并注册模块中的任务函数,main.lua导入该模块即可

参数

传入值类型

解释

function

任务函数名,用于resume唤醒时调用

string

任务名称,用于唤醒任务的id

function

接收到非目标消息时的回调函数

any

… 任务函数fun的可变参数

返回值

返回值类型

解释

number

返回该任务的线程号

例子

sysplus.taskInitEx(task1,'a',callback)

sysplus.taskDel(taskName)#

删除由taskInitEx创建的任务线程

参数

传入值类型

解释

string

任务名称,用于唤醒任务的id

返回值

例子

sysplus.taskDel('a')

sysplus.cleanMsg(taskName)#

清除指定task的消息队列

参数

传入值类型

解释

string

任务名称

返回值

例子

sysplus.cleanMsg('a')