testAlarm.lua 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. --- 模块功能:闹钟功能测试(支持开机闹钟和关机闹钟,同时只能存在一个闹钟,如果想实现多个闹钟,等当前闹钟触发后,再次调用闹钟设置接口去配置下一个闹钟).
  2. -- @author openLuat
  3. -- @module alarm.testAlarm
  4. -- @license MIT
  5. -- @copyright openLuat
  6. -- @release 2018.03.14
  7. require"ntp"
  8. require "sys"
  9. require"misc"
  10. module(...,package.seeall)
  11. sys.taskInit(function()
  12. sys.wait(10000)
  13. log.info("alarm test start")
  14. misc.setClock({year=2020,month=5,day=1,hour=12,min=12,sec=12})
  15. sys.wait(2000)
  16. local onTimet = os.date("*t",os.time() + 60) --下次要开机的时间为60秒后
  17. log.info("alarm restart time", 60)
  18. rtos.set_alarm(1,onTimet.year,onTimet.month,onTimet.day,onTimet.hour,onTimet.min,onTimet.sec) --设定闹铃
  19. --如果要测试关机闹钟,打开下面这2行代码
  20. --sys.wait(2000)
  21. --rtos.poweroff()
  22. end)
  23. --[[
  24. 函数名:alarMsg
  25. 功能 :开机闹钟事件的处理函数
  26. 参数 :无
  27. 返回值:无
  28. ]]
  29. local function alarMsg()
  30. print("alarMsg")
  31. end
  32. --如果是关机闹钟开机,则需要软件主动重启一次,才能启动GSM协议栈
  33. if rtos.poweron_reason()==rtos.POWERON_ALARM then
  34. sys.restart("ALARM")
  35. end
  36. --注册闹钟模块
  37. rtos.init_module(rtos.MOD_ALARM)
  38. --注册闹钟消息的处理函数(如果是开机闹钟,闹钟事件到来时会调用alarmsg)
  39. rtos.on(rtos.MSG_ALARM,alarMsg)