--[[ @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