main.lua 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. -- LuaTools需要PROJECT和VERSION这两个信息
  2. PROJECT = "airlink_http"
  3. VERSION = "1.0.1"
  4. dnsproxy = require("dnsproxy")
  5. -----------------------------------
  6. -- 配置区域
  7. -----------------------------------
  8. -- 是否是网关模式, 要插卡, 要能联网
  9. is_gw = rtos.bsp() ~= "Air1601"
  10. -- 网关就用slave模式, 客户端就用master模式
  11. local airlink_mode = is_gw and 0 or 1
  12. -------------------------------------
  13. sys.taskInit(function()
  14. sys.wait(500)
  15. -- 初始化airlink
  16. airlink.init()
  17. -- 注册网卡
  18. netdrv.setup(socket.LWIP_USER0, netdrv.WHALE)
  19. -- 启动airlink uart任务
  20. airlink.start(airlink_mode)
  21. -- 网关模式下, ip设置为.1, 对端设置为.2
  22. if is_gw then
  23. netdrv.ipv4(socket.LWIP_USER0, "192.168.111.1", "255.255.255.0", "192.168.111.2")
  24. else
  25. netdrv.ipv4(socket.LWIP_USER0, "192.168.111.2", "255.255.255.0", "192.168.111.1")
  26. end
  27. -- netdrv.debug(0, true)
  28. end)
  29. sys.taskInit(function()
  30. sys.wait(1000)
  31. while 1 do
  32. -- 发送给对端设备
  33. local data = rtos.bsp() .. " " .. os.date() .. " " .. (mobile and mobile.imei() or "")
  34. log.info("client 发送数据给sever设备", data, "当前airlink状态", airlink.ready())
  35. airlink.sdata(data)
  36. -- airlink.test(1000) -- 要测试高速连续发送的情况
  37. sys.wait(1000)
  38. end
  39. end)
  40. sys.taskInit(function()
  41. -- sys.waitUntil("IP_READY")
  42. sys.wait(3000)
  43. if is_gw then
  44. log.info("airlink", "Gateway mode")
  45. -- while netdrv.ready(socket.LWIP_USER0) == false do
  46. while netdrv.ready(socket.LWIP_GP) == false do
  47. sys.wait(100)
  48. end
  49. netdrv.napt(socket.LWIP_GP)
  50. dnsproxy.start(adapter=socket.LWIP_USER0, socket.LWIP_GP)
  51. return
  52. else
  53. log.info("airlink", "Client mode")
  54. end
  55. while 1 do
  56. sys.wait(500)
  57. local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil, {adapter=socket.LWIP_USER0,timeout=3000}).wait()
  58. log.info("http", code, body and #body)
  59. -- log.info("lua", rtos.meminfo())
  60. -- log.info("sys", rtos.meminfo("sys"))
  61. end
  62. end)
  63. -- 用户代码已结束---------------------------------------------
  64. -- 结尾总是这一句
  65. sys.run()
  66. -- sys.run()之后后面不要加任何语句!!!!!