timer_app.lua 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. --[[
  2. @module timer_app
  3. @summary 定时器应用功能模块
  4. @version 1.0
  5. @date 2025.07.01
  6. @author 朱天华
  7. @usage
  8. 本文件为定时器应用功能模块,核心业务逻辑为:
  9. 创建一个5秒的循环定时器,每次产生一段数据,通知WebSocket client进行处理;
  10. 本文件的对外接口有一个:
  11. 1、sys.publish("SEND_DATA_REQ", "timer", data, {func=send_data_cbfunc, para="timer"..data}),通过publish通知WebSocket client数据发送功能模块发送data数据;
  12. 数据发送结果通过执行回调函数send_data_cbfunc通知本功能模块;
  13. ]]
  14. local data = 1
  15. -- 数据发送结果回调函数
  16. local function send_data_cbfunc(result, para)
  17. log.info("send_data_cbfunc", result, para)
  18. -- 无论上一次发送成功还是失败,启动一个5秒的定时器,5秒后发送下次数据
  19. sys.timerStart(send_data_req_timer_cbfunc, 5000)
  20. end
  21. -- 定时器回调函数
  22. function send_data_req_timer_cbfunc()
  23. -- 发布消息"SEND_DATA_REQ"
  24. sys.publish("SEND_DATA_REQ", "timer", data, {func=send_data_cbfunc, para="timer"..data})
  25. data = data+1
  26. end
  27. -- 启动一个5秒的单次定时器
  28. sys.timerStart(send_data_req_timer_cbfunc, 5000)