main.lua 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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. -- 如果无法使用STA功能,可以开启此功能升级WiFi固件版本后再次尝试
  8. -- 升级完毕后最好取消调用,防止后期版本升级过高导致程序使用不稳定
  9. -- require "check_wifi"
  10. -- wifi的STA相关事件
  11. sys.subscribe("WLAN_STA_INC", function(evt, data)
  12. -- evt 可能的值有: "CONNECTED", "DISCONNECTED"
  13. -- 当evt=CONNECTED, data是连接的AP的ssid, 字符串类型
  14. -- 当evt=DISCONNECTED, data断开的原因, 整数类型
  15. log.info("收到STA事件", evt, data)
  16. end)
  17. function test_sta()
  18. log.info("执行STA连接操作")
  19. wlan.connect("Xiaomi 13", "15055190176")
  20. -- netdrv.dhcp(socket.LWIP_STA, true)
  21. sys.wait(8000)
  22. -- iperf.server(socket.LWIP_STA)
  23. -- iperf.client(socket.LWIP_STA, "47.94.236.172")
  24. sys.wait(5000)
  25. while 1 do
  26. -- log.info("MAC地址", netdrv.mac(socket.LWIP_STA))
  27. -- log.info("IP地址", netdrv.ipv4(socket.LWIP_STA))
  28. -- log.info("ready?", netdrv.ready(socket.LWIP_STA))
  29. -- sys.wait(1000)
  30. -- log.info("执行http请求")
  31. -- local code = http.request("GET", "http://192.168.1.15:8000/README.md", nil, nil, {adapter=socket.LWIP_STA,timeout=3000}).wait()
  32. local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil, {adapter=socket.LWIP_STA,timeout=5000,debug=false}).wait()
  33. log.info("http执行结果", code, headers, body and #body)
  34. -- socket.sntp(nil, socket.LWIP_STA)
  35. sys.wait(2000)
  36. -- socket.sntp(nil)
  37. -- sys.wait(2000)
  38. -- log.info("执行ping操作")
  39. -- icmp.ping(socket.LWIP_STA, "183.2.172.177")
  40. -- sys.wait(2000)
  41. end
  42. end
  43. sys.subscribe("PING_RESULT", function(id, time, dst)
  44. log.info("ping", id, time, dst);
  45. end)
  46. function test_scan()
  47. while 1 do
  48. log.info("执行wifi扫描")
  49. wlan.scan()
  50. sys.wait(30 * 1000)
  51. end
  52. end
  53. sys.subscribe("WLAN_SCAN_DONE", function ()
  54. local results = wlan.scanResult()
  55. log.info("scan", "results", #results)
  56. for k,v in pairs(results) do
  57. log.info("scan", v["ssid"], v["rssi"], (v["bssid"]:toHex()))
  58. end
  59. end)
  60. function ip_ready_handle(ip, adapter)
  61. log.info("ip_ready_handle",ip, adapter)
  62. if adapter == socket.LWIP_STA then
  63. log.info("wifi sta 链接成功")
  64. end
  65. end
  66. -- 每隔6秒打印一次airlink统计数据, 调试用
  67. -- sys.taskInit(function()
  68. -- while 1 do
  69. -- sys.wait(6000)
  70. -- airlink.statistics()
  71. -- end
  72. -- end)
  73. sys.taskInit(function()
  74. log.info("新的Air8000脚本...")
  75. wlan.init()
  76. test_sta()
  77. test_scan()
  78. end)
  79. sys.subscribe("IP_READY", ip_ready_handle)
  80. -- 用户代码已结束---------------------------------------------
  81. -- 结尾总是这一句
  82. sys.run()
  83. -- sys.run()之后后面不要加任何语句!!!!!