main.lua 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. -- main.lua文件
  2. -- LuaTools需要PROJECT和VERSION这两个信息
  3. PROJECT = "timer_demo"
  4. VERSION = "1.0.0"
  5. sys.taskInit(function()
  6. log.info("------start timer_demo------")
  7. -- 定义一个单次触发的定时器回调函数
  8. local function oneShotCallback(message)
  9. log.info("One-shot timer triggered: " .. message)
  10. end
  11. -- 定义一个周期性触发的定时器回调函数
  12. local function periodicCallback(count)
  13. log.info("Periodic timer triggered (Count: " .. count .. ")")
  14. end
  15. -- 定义一个周期性触发的定时器回调函数
  16. local function periodicCallback1(count)
  17. log.info("Periodic timer triggered1 (Count: " .. count .. ")")
  18. end
  19. -- 初始化计数器,用于周期性定时器
  20. local periodicCount = 0
  21. -- 启动一个单次触发的定时器,延迟3秒后触发
  22. local oneShotTimerId = sys.timerStart(oneShotCallback, 3000, 0, "Hello from one-shot timer!")
  23. -- 启动一个一次性定时器,分别再第7秒触发一次
  24. sys.timerStart(periodicCallback,7000,"first")
  25. -- 启动一个一次性定时器,分别再第6秒触发一次
  26. sys.timerStart(periodicCallback,6000,"second")
  27. -- 启动一个一次性定时器,分别再第5秒触发一次
  28. sys.timerStart(periodicCallback,5000,"third")
  29. -- 启动一个周期性触发的定时器,每2秒触发一次
  30. local periodicTimerId2 = sys.timerLoopStart(function() periodicCount = periodicCount + 1 periodicCallback1(periodicCount)
  31. end, 2000)
  32. --等待5000ms
  33. sys.wait(5000)
  34. -- 停止周期性定时器
  35. sys.timerStart(function()
  36. sys.timerStop(periodicTimerId2)
  37. log.info("stop 2s loop timer periodicCallback1")
  38. end,5000)
  39. -- 停止所有定时器(仅作为测试,实际应用中应根据需要停止)
  40. sys.timerStart(function()
  41. sys.timerStopAll(periodicCallback)
  42. log.info("stop periodicCallback loop timer ")
  43. end,4000)
  44. end)
  45. -- 用户代码已结束---------------------------------------------
  46. -- 结尾总是这一句
  47. sys.run()
  48. -- sys.run()之后后面不要加任何语句!!!!!