- readme §2.2/§3:0x7D 帧设计稿 v0.2 作废,改写为「0x7F 业务帧字节流 + 0x8F 本机侧私有帧」 (权威源规则 / 拉取为主+推送为辅 / 帧长上限 260B / 两侧缓冲需同步扩容),依据协议 §6.9 - readme §3.1:对比表由 0x7D 改为 0x8F,保留 0x7F 帧布局参考 - config.lua / uart_app.lua:注释中的 0x7D 计划改为 0x8F 配置同步;协议版本引用 V1.13 → V1.14 - config.lua:MQTT 账号密码不再明文入库,改从 cred.lua 读取;缺失时降级为空串(匿名连接) - 新增 .gitignore(忽略 cred.lua)+ cred.lua.example(填写模板) ⚠ 原明文凭据已存在于 git 历史,商用前必须更换服务器密码 - 语法:luac5.3 -p config.lua / cred.lua / uart_app.lua 全部通过
75 lines
3.5 KiB
Lua
75 lines
3.5 KiB
Lua
--[[
|
|
@module config
|
|
@summary vd960Air 配置: MQTT 服务器 / 设备标识 / 主题 / UART / 上报参数
|
|
@date 2026.08.31
|
|
@usage
|
|
vd960Air 是 Air8781P 整板(Air780EPM 核心模组)上的 LuatOS 应用,
|
|
作为 vd960DBN 车检器在有线网络失效时的 4G 兜底通道(方案 C: Air780 协议转换)。
|
|
|
|
协议依据:《DLD960_IoT_MQTT协议》V1.14(4G 通道适配方案 C,标准 JSON 命令面)
|
|
]]
|
|
|
|
-- ==================== MQTT 服务器 ====================
|
|
-- 测试服务器(2026-09-10 用户提供): host/port 见下(出厂默认值)
|
|
-- 注: 后续 vd960DBN 更新版本后,经 BLE 设置的服务器参数会同步下发覆盖此处(配置同步, 协议 §6.9)
|
|
-- ⚠ 商用环境须替换为平台实际地址
|
|
--
|
|
-- 敏感凭据从非跟踪文件 cred.lua 读取(不入版本库; 模板见 cred.lua.example)
|
|
-- 缺失时为空串 -> 匿名连接(不崩, 仅 broker 侧鉴权失败后按重连逻辑重试)
|
|
-- ⚠ 2026-09-10 之前凭据曾明文写在 config.lua 并已入库(git 历史), 商用前必须更换服务器密码
|
|
local _cred_ok, _cred = pcall(require, "cred")
|
|
if not _cred_ok or type(_cred) ~= "table" then
|
|
_cred = {}
|
|
if log then log.warn("config", "cred.lua 缺失或非法 -> 凭据为空(匿名), 请复制 cred.lua.example") end
|
|
end
|
|
|
|
CFG_MQTT_HOST = _cred.mqtt_host or "110.41.131.144"
|
|
CFG_MQTT_PORT = _cred.mqtt_port or 1883
|
|
|
|
-- MQTT 鉴权(mqtt_main 调用 mqtt_client:auth; 空串表示匿名)
|
|
CFG_MQTT_USER = _cred.mqtt_user or ""
|
|
CFG_MQTT_PASS = _cred.mqtt_pass or ""
|
|
|
|
-- ==================== 设备标识 ====================
|
|
-- 设备序列码: 6 字节十六进制字符串(与 vd960DBN dev_serial 一致,有线/4G 同一设备)
|
|
CFG_DEV_SERIAL = "A1B2C3D4E5F6"
|
|
|
|
-- 产品信息(initialize 上报,协议 §5.1)
|
|
CFG_MODEL = "DLD960"
|
|
CFG_HW_VER = "1.0"
|
|
CFG_SW_VER = "1.0"
|
|
CFG_LOOP_VER = "" -- 地感 Loop 固件版本(0x4A 查询 P1 后填充)
|
|
CFG_LOOP_HW_VER = "" -- 地感 Loop 硬件版本
|
|
|
|
-- MQTT Topic(与《DLD960_IoT_MQTT协议》§1.2 一致)
|
|
CFG_TOPIC_UP = "dld960/" .. CFG_DEV_SERIAL .. "/dev" -- 设备上报
|
|
CFG_TOPIC_DOWN = "dld960/" .. CFG_DEV_SERIAL .. "/srv" -- 服务器下发
|
|
|
|
-- MQTT ClientID: 用 IMEI 保证唯一(与序列码解耦;鉴权待确认)
|
|
CFG_MQTT_CLIENT_ID = "vd960Air-" .. (mobile.imei() or "unknown")
|
|
|
|
-- ==================== UART(对接 vd960DBN) ====================
|
|
-- vd960DBN 侧: CH32V208 串口1(PB6=TX, PB7=RX)
|
|
-- 波特率: 115200(用户决策 2026-08-31,后续如需再调)
|
|
CFG_UART_ID = 1
|
|
CFG_UART_BAUD = 115200
|
|
|
|
-- 链路帧: 0x7F 帧字节流(方案 C,数据面透传 Loop 地感协议)
|
|
-- 0x8F 本机侧私有帧用于 DBN↔Air780 配置同步(拉取+推送,协议 §6.9)(P1)
|
|
|
|
-- ==================== 上报节奏 ====================
|
|
CFG_HEARTBEAT_INTERVAL = 60 -- 心跳周期(秒,协议 §5.4 默认 60)
|
|
CFG_REPORT_ALWAYS = true -- MVP: 每收到 0xC0 帧都上报 loop_data;P1 按协议三档节流
|
|
|
|
-- ==================== 4G 特有字段注入 ====================
|
|
-- 用户决策 2026-08-31: 上行附加 link 对象 + initialize extra_info 含 imei/iccid
|
|
-- true = 上行 JSON 顶层注入 link 对象(见 link_info.lua)
|
|
CFG_LINK_ENABLE = true
|
|
|
|
-- ==================== 模块导出(必须, 不可删) ====================
|
|
-- ⚠ require "config" 时若文件无 return, Lua 返回 true;
|
|
-- 调用方 local CFG = require "config" 后访问 CFG.CFG_xxx 会报
|
|
-- "attempt to index a boolean value" ——2026-09-10 上电复位事故根因
|
|
-- 配置项以全局变量定义, 这里返回全局表供模块化访问
|
|
return _G
|