luat_lib_sysplus_doc.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /*
  2. @module sysplus
  3. @summary sys库的强力补充
  4. @version 1.0
  5. @date 2022.11.23
  6. @tag LUAT_USE_GPIO
  7. @usage
  8. -- 本库是sys库的补充, 添加了如下内容:
  9. -- 1. cwait机制
  10. -- 2. 任务消息机制, 即sub/pub的增强版本
  11. -- 在socket,libnet,http库等场景需要用到, 所以也需要require
  12. */
  13. /*
  14. 等待接收一个目标消息
  15. @api sysplus.waitMsg(taskName, target, timeout)
  16. @string 任务名称,用于唤醒任务的id
  17. @string 目标消息,如果为nil,则表示接收到任意消息都会退出
  18. @int 超时时间,如果为nil,则表示无超时,永远等待
  19. @return table 成功返回table型的msg,超时返回false
  20. @usage
  21. -- 等待任务
  22. sysplus.waitMsg('a', 'b', 1000)
  23. -- 注意, 本函数会自动注册成全局函数 sys_wait
  24. */
  25. void doc_sysplus_wait(void){};
  26. /*
  27. 向目标任务发送一个消息
  28. @api sysplus.sendMsg(taskName, target, arg2, arg3, arg4)
  29. @string 任务名称,用于唤醒任务的id
  30. @any 消息中的参数1,同时也是waitMsg里的target
  31. @any 消息中的参数2
  32. @any 消息中的参数3
  33. @any 消息中的参数4
  34. @return bool 成功返回true, 否则返回false
  35. @usage
  36. -- 向任务a,目标b发送消息
  37. sysplus.sendMsg('a', 'b')
  38. -- 注意, 本函数会自动注册成全局函数 sys_send
  39. */
  40. void doc_sysplus_send(void){};
  41. /*
  42. 创建一个任务线程,在模块最末行调用该函数并注册模块中的任务函数,main.lua导入该模块即可
  43. @api sysplus.taskInitEx(fun, taskName, cbFun, ...)
  44. @function 任务函数名,用于resume唤醒时调用
  45. @string 任务名称,用于唤醒任务的id
  46. @function 接收到非目标消息时的回调函数
  47. @any ... 任务函数fun的可变参数
  48. @return number 返回该任务的线程号
  49. @usage
  50. sysplus.taskInitEx(task1,'a',callback)
  51. */
  52. void doc_sysplus_taskInitEx(void){};
  53. /*
  54. 删除由taskInitEx创建的任务线程
  55. @api sysplus.taskDel(taskName)
  56. @string 任务名称,用于唤醒任务的id
  57. @usage
  58. sysplus.taskDel('a')
  59. */
  60. void doc_sysplus_taskDel(void){};
  61. /*
  62. 清除指定task的消息队列
  63. @api sysplus.cleanMsg(taskName)
  64. @string 任务名称
  65. @usage
  66. sysplus.cleanMsg('a')
  67. */
  68. void doc_sysplus_cleanMsg(void){};