main.lua 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "air8000_wifi"
  3. VERSION = "1.0.5"
  4. dnsproxy = require("dnsproxy")
  5. dhcpsrv = require("dhcpsrv")
  6. httpplus = require("httpplus")
  7. local exfotawifi = require("exfotawifi")
  8. local function wifi_fota_task_func()
  9. local result = exfotawifi.request()
  10. if result then
  11. log.info("exfotawifi", "升级任务执行成功")
  12. else
  13. log.info("exfotawifi", "升级任务执行失败")
  14. end
  15. end
  16. -- 判断网络是否正常
  17. local function wait_ip_ready()
  18. local result, ip, adapter = sys.waitUntil("IP_READY", 30000)
  19. if result then
  20. log.info("exfotawifi", "开始执行升级任务")
  21. sys.taskInit(wifi_fota_task_func)
  22. else
  23. log.error("当前正在升级WIFI&蓝牙固件,请插入可以上网的SIM卡")
  24. end
  25. end
  26. -- wifi的STA相关事件
  27. sys.subscribe("WLAN_STA_INC", function(evt, data)
  28. -- evt 可能的值有: "CONNECTED", "DISCONNECTED"
  29. -- 当evt=CONNECTED, data是连接的AP的ssid, 字符串类型
  30. -- 当evt=DISCONNECTED, data断开的原因, 整数类型
  31. log.info("收到STA事件", evt, data)
  32. end)
  33. function test_sta()
  34. log.info("执行STA连接操作")
  35. wlan.connect("Xiaomi 13", "15055190176")
  36. -- netdrv.dhcp(socket.LWIP_STA, true)
  37. sys.wait(8000)
  38. -- iperf.server(socket.LWIP_STA)
  39. -- iperf.client(socket.LWIP_STA, "47.94.236.172")
  40. sys.wait(5000)
  41. while 1 do
  42. -- log.info("MAC地址", netdrv.mac(socket.LWIP_STA))
  43. -- log.info("IP地址", netdrv.ipv4(socket.LWIP_STA))
  44. -- log.info("ready?", netdrv.ready(socket.LWIP_STA))
  45. -- sys.wait(1000)
  46. -- log.info("执行http请求")
  47. -- local code = http.request("GET", "http://192.168.1.15:8000/README.md", nil, nil, {adapter=socket.LWIP_STA,timeout=3000}).wait()
  48. local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil, {adapter=socket.LWIP_STA,timeout=5000,debug=false}).wait()
  49. log.info("http执行结果", code, headers, body and #body)
  50. -- socket.sntp(nil, socket.LWIP_STA)
  51. sys.wait(2000)
  52. -- socket.sntp(nil)
  53. -- sys.wait(2000)
  54. -- log.info("执行ping操作")
  55. -- icmp.ping(socket.LWIP_STA, "183.2.172.177")
  56. -- sys.wait(2000)
  57. end
  58. end
  59. sys.subscribe("PING_RESULT", function(id, time, dst)
  60. log.info("ping", id, time, dst);
  61. end)
  62. function test_scan()
  63. while 1 do
  64. log.info("执行wifi扫描")
  65. wlan.scan()
  66. sys.wait(30 * 1000)
  67. end
  68. end
  69. sys.subscribe("WLAN_SCAN_DONE", function ()
  70. local results = wlan.scanResult()
  71. log.info("scan", "results", #results)
  72. for k,v in pairs(results) do
  73. log.info("scan", v["ssid"], v["rssi"], (v["bssid"]:toHex()))
  74. end
  75. end)
  76. function ip_ready_handle(ip, adapter)
  77. log.info("ip_ready_handle",ip, adapter)
  78. if adapter == socket.LWIP_STA then
  79. log.info("wifi sta 链接成功")
  80. end
  81. end
  82. -- 每隔6秒打印一次airlink统计数据, 调试用
  83. -- sys.taskInit(function()
  84. -- while 1 do
  85. -- sys.wait(6000)
  86. -- airlink.statistics()
  87. -- end
  88. -- end)
  89. -- 在设备启动时检查网络状态
  90. sys.taskInit(wait_ip_ready)
  91. sys.taskInit(function()
  92. log.info("新的Air8000脚本...")
  93. wlan.init()
  94. test_sta()
  95. test_scan()
  96. end)
  97. sys.subscribe("IP_READY", ip_ready_handle)
  98. -- 用户代码已结束---------------------------------------------
  99. -- 结尾总是这一句
  100. sys.run()
  101. -- sys.run()之后后面不要加任何语句!!!!!