2026-04-30 17:16:01 +08:00
|
|
|
|
-- main.lua
|
|
|
|
|
|
-- 功能:初始化硬件、网络、串口,注册回调,启动系统
|
2026-03-31 15:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
PROJECT = "4G_NETWORK"
|
|
|
|
|
|
VERSION = "1.0.0"
|
|
|
|
|
|
|
|
|
|
|
|
require "sys"
|
|
|
|
|
|
require "net"
|
|
|
|
|
|
require "log"
|
|
|
|
|
|
require "uart"
|
2026-04-30 17:16:01 +08:00
|
|
|
|
require "netLed"
|
|
|
|
|
|
require "pmd"
|
2026-03-31 15:46:04 +08:00
|
|
|
|
|
2026-04-30 17:16:01 +08:00
|
|
|
|
-- 初始化UART1
|
|
|
|
|
|
local uartID = 1
|
|
|
|
|
|
uart.setup(uartID, 115200, 8, uart.PAR_NONE, uart.STOP_1)
|
2026-03-31 15:46:04 +08:00
|
|
|
|
|
|
|
|
|
|
-- 启动网络指示灯功能模块
|
2026-04-30 17:16:01 +08:00
|
|
|
|
pmd.ldoset(2, pmd.LDO_VLCD)
|
|
|
|
|
|
netLed.setup(true, pio.P0_1, pio.P0_4)
|
2026-03-31 15:46:04 +08:00
|
|
|
|
|
2026-04-30 17:16:01 +08:00
|
|
|
|
-- 初始化网络
|
|
|
|
|
|
net.startQueryAll(8 * 1000, 60 * 1000)
|
|
|
|
|
|
ril.request("AT+RNDISCALL=0,1")
|
2026-03-31 15:46:04 +08:00
|
|
|
|
|
2026-04-30 17:16:01 +08:00
|
|
|
|
-- 加载自定义模块(必须放在网络初始化之后)
|
|
|
|
|
|
local cmd = require "cmd"
|
|
|
|
|
|
local linksocket = require "linksocket"
|
2026-03-31 15:46:04 +08:00
|
|
|
|
|
2026-04-30 17:16:01 +08:00
|
|
|
|
-- 注册Socket数据接收回调
|
|
|
|
|
|
linksocket.setRecvCallback(function(socketId, data)
|
|
|
|
|
|
-- 打包帧格式:55 AA 01 id len data AA 55
|
|
|
|
|
|
local frame = string.char(0x55, 0xAA, 0x01, socketId, #data) .. data .. string.char(0xAA, 0x55)
|
|
|
|
|
|
uart.write(uartID, frame)
|
|
|
|
|
|
log.info("Forward data from socket", socketId, "len=", #data)
|
|
|
|
|
|
end)
|
2026-03-31 15:46:04 +08:00
|
|
|
|
|
2026-04-30 17:16:01 +08:00
|
|
|
|
-- 串口数据接收处理
|
2026-03-31 15:46:04 +08:00
|
|
|
|
uart.on(uartID, "receive", function()
|
|
|
|
|
|
local data = uart.read(uartID, 300)
|
2026-04-30 17:16:01 +08:00
|
|
|
|
if data and #data > 0 then
|
|
|
|
|
|
cmd.process(data)
|
2026-03-31 15:46:04 +08:00
|
|
|
|
end
|
|
|
|
|
|
end)
|
|
|
|
|
|
|
2026-04-30 17:16:01 +08:00
|
|
|
|
-- 启动系统
|
2026-03-31 15:46:04 +08:00
|
|
|
|
sys.init(0, 0)
|
|
|
|
|
|
sys.run()
|