air_fota.lua 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. libfota2 = require "libfota2"
  2. local PRODUCT_KEY = "<KEY>"
  3. -- 联网函数, 可自行删减
  4. sys.taskInit(function()
  5. -- 默认都等到联网成功
  6. sys.waitUntil("IP_READY")
  7. log.info("4G网络链接成功")
  8. sys.publish("net_ready")
  9. end)
  10. local function fota_cb(ret)
  11. log.info("fota", ret)
  12. if ret == 0 then
  13. log.info("升级包下载成功,重启模块")
  14. rtos.reboot()
  15. elseif ret == 1 then
  16. log.info("连接失败", "请检查url拼写或服务器配置(是否为内网)")
  17. elseif ret == 2 then
  18. log.info("url错误", "检查url拼写")
  19. elseif ret == 3 then
  20. log.info("服务器断开", "检查服务器白名单配置")
  21. elseif ret == 4 then
  22. log.info("接收报文错误", "检查模块固件或升级包内文件是否正常")
  23. elseif ret == 5 then
  24. log.info("版本号书写错误", "iot平台版本号需要使用xxx.yyy.zzz形式")
  25. else
  26. log.info("不是上面几种情况 ret为", ret)
  27. end
  28. end
  29. local ota_opts = {}
  30. local function air_update()
  31. if "123" == PRODUCT_KEY and not ota_opts.url then
  32. log.info("fota", "请修改正确的PRODUCT_KEY")
  33. end
  34. log.info("开始检查升级")
  35. log.info("fota", "脚本版本号", VERSION, "core版本号", rtos.version())
  36. libfota2.request(fota_cb, ota_opts)
  37. end
  38. -- 演示定时自动升级, 每隔4小时自动检查一次
  39. sys.timerLoopStart(libfota2.request, 4 * 3600000, fota_cb, ota_opts)