main.lua 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "airlink_uart"
  3. VERSION = "1.0.1"
  4. dnsproxy = require("dnsproxy")
  5. is_gw = true
  6. sys.taskInit(function()
  7. sys.wait(500)
  8. log.info("airlink", "Starting airlink with UART task")
  9. -- 首先, 初始化uart1, 115200波特率 8N1
  10. uart.setup(1, 115200)
  11. -- 初始化airlink
  12. airlink.init()
  13. netdrv.setup(socket.LWIP_USER0, netdrv.WHALE) -- 初始化netdrv
  14. -- 启动airlink uart任务
  15. airlink.start(2)
  16. if is_gw then
  17. netdrv.ipv4(socket.LWIP_USER0, "192.168.111.1", "255.255.255.0", "192.168.111.2")
  18. else
  19. netdrv.ipv4(socket.LWIP_USER0, "192.168.111.2", "255.255.255.0", "192.168.111.1")
  20. end
  21. sys.wait(100)
  22. --等待IP_READY事件
  23. sys.waitUntil("IP_READY", 1000)
  24. while 1 do
  25. -- 发送给对端设备
  26. local data = rtos.bsp() .. " " .. os.date() .. " " .. (mobile and mobile.imei() or "")
  27. log.info("sever 发送数据给client设备", data, "当前airlink状态", airlink.ready())
  28. airlink.sdata(data)
  29. -- airlink.test(1000) -- 要测试高速连续发送的情况
  30. sys.wait(1000)
  31. end
  32. end)
  33. sys.taskInit(function()
  34. -- sys.waitUntil("IP_READY")
  35. sys.wait(3000)
  36. if is_gw then
  37. log.info("airlink", "Gateway mode")
  38. while netdrv.ready(socket.LWIP_GP) == false do
  39. sys.wait(100)
  40. log.info("airlink", "Waiting for netdrv_READY")
  41. end
  42. log.info("airlink", "netdrv_READY")
  43. netdrv.napt(socket.LWIP_GP)
  44. dnsproxy.setup(socket.LWIP_USER0,socket.LWIP_GP)
  45. return
  46. else
  47. log.info("airlink", "Client mode")
  48. end
  49. end)
  50. --订阅IP_READY事件,打印收到的信息
  51. sys.subscribe("IP_READY", function(id,ip)
  52. log.info("收到IP_READY!!", id,ip)
  53. end)
  54. -- 用户代码已结束---------------------------------------------
  55. -- 结尾总是这一句
  56. sys.run()
  57. -- sys.run()之后后面不要加任何语句!!!!!