wtd618.lua 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. --- 模块功能:看门狗功能
  2. -- @module wtd
  3. -- @author 翟科研
  4. -- @license MIT
  5. -- @copyright OpenLuat.com
  6. -- @release 2023.5.13
  7. local wtd618={}
  8. local sys = require "sys"
  9. --[[特别注意, 使用mqtt库需要下列语句]]
  10. _G.sysplus = require("sysplus")
  11. -- 看门狗引脚
  12. watchdogPin = 28
  13. function wtd618_Init()
  14. gpio.setup(watchdogPin,0,gpio.PULLDOWN)
  15. gpio.set(watchdogPin,0)
  16. end
  17. function wtd618_callback()
  18. gpio.set(watchdogPin,0)
  19. end
  20. function wtd618_SetTime(value)--定时模式下,value每增加1,定时时间增加4小时,最长不超过24小时
  21. for i=value,1,-1 do
  22. wtd618_FeedDog()
  23. log.info("定时成功")
  24. end
  25. end
  26. function wtd618_FeedDog()--watchdogInterval设定喂狗间隔时常,不超过240s
  27. -- 喂狗时长(单位:毫秒)
  28. local watchdogFeedDuration = 210
  29. gpio.set(watchdogPin,1)
  30. sys.timerStart(wtd618_callback,watchdogFeedDuration)--喂狗动作
  31. --sys.wait(watchdogInterval*1000)
  32. end
  33. function wtd618_CloseWatchDog()
  34. -- 关闭喂狗(单位:毫秒)
  35. local watchdogStopDuration = 410
  36. gpio.set(watchdogPin,1)
  37. sys.timerStart(wtd618_callback,watchdogStopDuration)
  38. end
  39. return wtd618