feat(vd960Air): Air8781P 4G UART<->MQTT 桥接工程骨架
基于官方 Air780EPM demo/mqtt 骨架创建 vd960Air 工程:
- 目标: vd960DBN 有线网络失效时,经 Air780EPM 4G 兜底上报
- UART1(115200 8N1)对接 vd960DBN CH32V208 串口1 PB6/PB7
- MQTT 主题按《DLD960_IoT_MQTT协议》V1.10: 订阅 dld960/{sn}/srv, 发布 dld960/{sn}/dev
- 帧协议(设计稿 v0.1): [0x7D][LEN_H][LEN_L][JSON][SUM], 双向对称, ≤2048B
- 上行: DBN JSON 帧 → 4G 校验拆帧 → MQTT publish(JSON 命令面与有线完全一致)
- 下行: MQTT 订阅 → 组帧 → UART1 下发 DBN
- 改造: config.lua 集中配置 / 去掉官方 demo 的 "send from" 演示前缀 / 单路 MQTT
- readme: 架构、协议设计决策(4G 适配协议=命令面复用+网络类裁剪+4G特有扩展)、待确认清单
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
--[[
|
||||
@module main
|
||||
@summary vd960Air — Air8781P(Air780EPM) 4G 模块 LuatOS 应用入口
|
||||
@version 0.1
|
||||
@date 2026.08.31
|
||||
@usage
|
||||
vd960DBN 车检器在有线网络无效时的 4G 兜底通道(UART <-> MQTT 桥):
|
||||
|
||||
1、UART1 对接 vd960DBN(CH32V208 串口1 PB6/PB7),帧协议见 uart_app.lua;
|
||||
2、上行: vd960DBN JSON 帧 → 4G → MQTT publish 到 dld960/{sn}/dev
|
||||
(JSON 命令面与《DLD960_IoT_MQTT协议》V1.10 完全一致,平台侧无感);
|
||||
3、下行: MQTT 订阅 dld960/{sn}/srv → 4G → 组帧 → UART1 下发 vd960DBN;
|
||||
4、网络看门狗: 长时间无网络业务则重启系统(官方 network_watchdog);
|
||||
5、网卡: 仅 4G(netdrv_4g)。
|
||||
]]
|
||||
PROJECT = "vd960Air"
|
||||
VERSION = "001.999.000"
|
||||
|
||||
-- 在日志中打印项目名和项目版本号
|
||||
log.info("main", PROJECT, VERSION)
|
||||
|
||||
-- ==================== 加载配置 ====================
|
||||
require "config"
|
||||
|
||||
-- ==================== 网络环境检测看门狗 ====================
|
||||
require "network_watchdog"
|
||||
|
||||
-- ==================== 网卡驱动(仅 4G) ====================
|
||||
require "netdrv_device"
|
||||
|
||||
-- ==================== 串口应用(UART1 <-> vd960DBN) ====================
|
||||
require "uart_app"
|
||||
|
||||
-- ==================== MQTT 客户端(单路, 主题 dld960/{sn}/srv + dev) ====================
|
||||
require "mqtt_main"
|
||||
|
||||
-- 用户代码已结束---------------------------------------------
|
||||
-- 结尾总是这一句
|
||||
sys.run()
|
||||
-- sys.run()之后不要加任何语句!!!!!因为添加的任何语句都不会被执行
|
||||
Reference in New Issue
Block a user