main.lua 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "air8000_wifi"
  3. VERSION = "1.0.5"
  4. --[[
  5. 本demo演示的功能是:
  6. 1. 创建AP, 提供wifi设备, 通过4G上网
  7. 2. 创建以太网, 为局域网内的设备, 通过4G上网
  8. ]]
  9. dnsproxy = require("dnsproxy")
  10. dhcpsrv = require("dhcpsrv")
  11. httpplus = require("httpplus")
  12. gpio.setup(140, 1, gpio.PULLUP)
  13. sys.subscribe("PING_RESULT", function(id, time, dst)
  14. log.info("ping", id, time, dst);
  15. end)
  16. function eth_lan()
  17. -- sys.wait(3000)
  18. local result = spi.setup(
  19. 1,--spi id
  20. nil,
  21. 0,--CPHA
  22. 0,--CPOL
  23. 8,--数据宽度
  24. 51200000--,--波特率
  25. )
  26. log.info("main", "open spi",result)
  27. if result ~= 0 then--返回值为0,表示打开成功
  28. log.info("main", "spi open error",result)
  29. return
  30. end
  31. log.info("netdrv", "初始化以太网")
  32. netdrv.setup(socket.LWIP_ETH, netdrv.CH390, {spi=1,cs=12,irq=255})
  33. log.info("netdrv", "等待以太网就绪")
  34. sys.wait(1000)
  35. netdrv.ipv4(socket.LWIP_ETH, "192.168.5.1", "255.255.255.0", "0.0.0.0")
  36. while netdrv.ready(socket.LWIP_ETH) ~= true do
  37. -- log.info("netdrv", "等待以太网就绪")
  38. sys.wait(100)
  39. end
  40. log.info("netdrv", "以太网就绪")
  41. log.info("netdrv", "创建dhcp服务器, 供以太网使用")
  42. dhcpsrv.create({adapter=socket.LWIP_ETH, gw={192,168,5,1}})
  43. log.info("netdrv", "创建dns代理服务, 供以太网使用")
  44. dnsproxy.setup(socket.LWIP_ETH, socket.LWIP_GP)
  45. end
  46. sys.taskInit(function()
  47. while airlink.ready() ~= true do
  48. sys.wait(100)
  49. end
  50. wlan.init()
  51. sys.taskInit(eth_lan)
  52. sys.wait(3000)
  53. log.info("socket", "ip",socket.localIP(socket.LWIP_ETH))
  54. while 1 do
  55. if netdrv.ready(socket.LWIP_GP) then
  56. log.info("netdrv", "4G作为网关")
  57. netdrv.napt(socket.LWIP_GP)
  58. break
  59. end
  60. sys.wait(1000)
  61. end
  62. -- for i = 0, 2, 1 do
  63. -- local ip = "192.168.5." .. (i+100)
  64. -- icmp.ping(socket.LWIP_AP, ip)
  65. -- sys.waitUntil("PING_RESULT", 3000)
  66. -- end
  67. -- sys.wait(1000)
  68. end)
  69. -- 用户代码已结束---------------------------------------------
  70. -- 结尾总是这一句
  71. sys.run()
  72. -- sys.run()之后后面不要加任何语句!!!!!