check_wifi.lua 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. --[[
  2. @module check_wifi
  3. @summary 远程升级wifi固件模块
  4. @version 1.1
  5. @date 2025.11.5
  6. @author 拓毅恒
  7. @usage
  8. 检查WiFi版本并自动升级
  9. 功能:检查当前Air8000模组的WiFi固件是否为最新版本,若不是则自动启动升级(需确保模组已经正常联网)。
  10. 注意:升级完毕后最好取消调用,防止后期版本升级过高导致程序使用不稳定。
  11. 本文件没有对外接口,直接在main.lua中require "check_wifi"就可以加载运行。
  12. ]]
  13. local exfotawifi = require("exfotawifi")
  14. local function fota_wifi_task()
  15. local result = exfotawifi.request()
  16. if result then
  17. log.info("exfotawifi", "升级任务执行成功")
  18. else
  19. log.info("exfotawifi", "升级任务执行失败")
  20. end
  21. -- 注意:固件版本需≥V2017版本才有`AIRLINK_SFOTA_DONE`事件
  22. -- 如下操作,在升级完毕后会重启模组,将版本更新到最新
  23. -- 添加5分钟超时机制,如果超时则打印信息并退出
  24. local wait_result = sys.waitUntil("AIRLINK_SFOTA_DONE", 300000)
  25. if wait_result then
  26. log.info("fotawifi","WIFI升级完毕,开始重启")
  27. sys.wait(100)
  28. pm.reboot()
  29. else
  30. log.info("fotawifi","WIFI升级超时")
  31. end
  32. end
  33. -- 启动wifi自动升级任务
  34. sys.taskInit(fota_wifi_task)