main.lua 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "netdrv"
  3. VERSION = "1.0.5"
  4. -- sys库是标配
  5. _G.sys = require("sys")
  6. --[[特别注意, 使用http库需要下列语句]]
  7. _G.sysplus = require("sysplus")
  8. dnsproxy = require("dnsproxy")
  9. dhcpsrv = require("dhcpsrv")
  10. gpio.setup(0, function()
  11. sys.publish("WIFI_RESET")
  12. end, gpio.PULLDOWN, gpio.RISING)
  13. gpio.debounce(0, 100)
  14. gpio.setup(23, 0, gpio.PULLUP) -- 关闭Air8000S的LDO供电
  15. sys.taskInit(function()
  16. sys.wait(100)
  17. while 1 do
  18. sys.waitUntil("WIFI_RESET")
  19. log.info("复位WIFI部分")
  20. gpio.set(23, 0)
  21. sys.wait(100)
  22. gpio.setup(23, 1)
  23. end
  24. end)
  25. sys.taskInit(function()
  26. -- 设置电平, 关闭小核的供电
  27. pm.ioVol(pm.IOVOL_ALL_GPIO, 3300)
  28. sys.wait(100)
  29. -- 初始化airlink
  30. airlink.init()
  31. log.info("注册STA和AP设备")
  32. netdrv.setup(socket.LWIP_STA, netdrv.WHALE)
  33. netdrv.setup(socket.LWIP_AP, netdrv.WHALE)
  34. -- 启动底层线程, 从机模式
  35. airlink.start(1)
  36. sys.wait(100)
  37. log.info("打开Air8000S的LDO供电")
  38. gpio.setup(23, 1) -- 打开Air8000S的LDO供电
  39. log.info("一切就绪了")
  40. sys.wait(5000)
  41. netdrv.ipv4(socket.LWIP_STA, "192.168.1.35", "255.255.255.0", "192.168.1.1")
  42. sys.wait(1000)
  43. -- while 1 do
  44. -- -- log.info("MAC地址", netdrv.mac(socket.LWIP_STA))
  45. -- -- log.info("IP地址", netdrv.ipv4(socket.LWIP_STA))
  46. -- -- log.info("ready?", netdrv.ready(socket.LWIP_STA))
  47. -- sys.wait(1000)
  48. -- log.info("执行http请求")
  49. -- -- local code = http.request("GET", "http://192.168.1.15:8000/README.md", nil, nil, {adapter=socket.LWIP_STA,timeout=3000}).wait()
  50. -- local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil, {adapter=socket.LWIP_STA,timeout=3000}).wait()
  51. -- log.info("http执行结果", code, code, headers, body)
  52. -- end
  53. end)
  54. sys.subscribe("IP_READY", function(ip, id)
  55. log.info("收到IP_READY!!", ip, id)
  56. end)
  57. sys.subscribe("IP_LOSE", function(id)
  58. log.info("收到IP_LOSE!!", id)
  59. end)
  60. sys.taskInit(function()
  61. while netdrv.ready(socket.LWIP_AP) == false do
  62. sys.wait(100)
  63. end
  64. sys.wait(100)
  65. netdrv.ipv4(socket.LWIP_AP, "192.168.4.1", "255.255.255.0", "0.0.0.0")
  66. sys.wait(100)
  67. dnsproxy.setup(socket.LWIP_AP, socket.LWIP_GP)
  68. dhcpsrv.create({adapter=socket.LWIP_AP})
  69. while 1 do
  70. if netdrv.ready(socket.LWIP_GP) then
  71. netdrv.napt(socket.LWIP_GP)
  72. break
  73. end
  74. sys.wait(1000)
  75. end
  76. end)
  77. -- 用户代码已结束---------------------------------------------
  78. -- 结尾总是这一句
  79. sys.run()
  80. -- sys.run()之后后面不要加任何语句!!!!!