| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- -- LuaTools需要PROJECT和VERSION这两个信息
- PROJECT = "airlink_uart_http"
- VERSION = "1.0.1"
- dnsproxy = require("dnsproxy")
- -----------------------------------
- -- 配置区域
- -----------------------------------
- is_gw = false -- 是否是网关模式, 要插卡, 要能联网
- uart_id = 1 -- 按实际接到UART的ID来设置, 1或2
- airlink.config(airlink.CONF_UART_ID, uart_id) -- 设置airlink使用的UART ID
- uart.setup(uart_id, 115200) -- 初始化UART1, 波特率115200, 8N1
- -- 注意, uart波特率的设置值,取决于两个设备的都支持的最高波特率, 例如2M也是可以的, 但要确保两个设备都支持2M波特率
- -------------------------------------
- sys.taskInit(function()
- sys.wait(500)
- log.info("airlink", "Starting airlink with UART task")
- -- 初始化airlink
- airlink.init()
- -- 注册网卡
- netdrv.setup(socket.LWIP_USER0, netdrv.WHALE)
- -- 启动airlink uart任务
- airlink.start(2)
- -- 网关模式下, ip设置为.1, 对端设置为.2
- if is_gw then
- netdrv.ipv4(socket.LWIP_USER0, "192.168.111.1", "255.255.255.0", "192.168.111.2")
- else
- netdrv.ipv4(socket.LWIP_USER0, "192.168.111.2", "255.255.255.0", "192.168.111.1")
- end
- -- netdrv.debug(0, true)
- end)
- sys.taskInit(function()
- sys.wait(1000)
- while 1 do
- -- 发送给对端设备
- local data = rtos.bsp() .. " " .. os.date() .. " " .. (mobile and mobile.imei() or "")
- log.info("client 发送数据给sever设备", data, "当前airlink状态", airlink.ready())
- airlink.sdata(data)
- -- airlink.test(1000) -- 要测试高速连续发送的情况
- sys.wait(1000)
- end
- end)
- sys.taskInit(function()
- -- sys.waitUntil("IP_READY")
- sys.wait(3000)
- if is_gw then
- log.info("airlink", "Gateway mode")
- -- while netdrv.ready(socket.LWIP_USER0) == false do
- while netdrv.ready(socket.LWIP_GP) == false do
- sys.wait(100)
- end
- netdrv.napt(socket.LWIP_GP)
- return
- else
- log.info("airlink", "Client mode")
- end
- while 1 do
- sys.wait(500)
- local code, headers, body = http.request("GET", "https://httpbin.air32.cn/bytes/2048", nil, nil, {adapter=socket.LWIP_USER0,timeout=3000}).wait()
- log.info("http", code, body and #body)
- -- log.info("lua", rtos.meminfo())
- -- log.info("sys", rtos.meminfo("sys"))
- end
- end)
- -- 用户代码已结束---------------------------------------------
- -- 结尾总是这一句
- sys.run()
- -- sys.run()之后后面不要加任何语句!!!!!
|