Files
vd_960/CHANGELOG.md
T
wangfq 08893d5134 docs(protocol): 脱机事件日志命令规范 — MQTT V1.06 + TCP JSON V1.02
新增 3 命令 (两协议同步):
- log_stat: 日志统计/分页定位 (stream/boot_seq/count/capacity/seq_first/seq_last)
- log_query: 按全局序号分页拉取, count≤4 (受 500B 发布限制)
- log_clear: 清除+审计留痕 (log_clear 事件不可清除)

日志时间戳语义 (§2.3 补充): 每条记录 ts_ms(相对) + unix_ts(已同步,
0=未同步), 锚点回算规则; 10 类事件类型表 (boot/iot_*/evt_*/coil/
time_anchor/log_clear) 带 data 字段解析。

同步: README/CHANGELOG/产品手册/技术规格书 协议矩阵
(MQTT V1.05→V1.06, TCP JSON V1.01→V1.02)

注: 固件命令分发 (log_stat/log_query/log_clear 处理) 待 P1.3 实现,
本文档为协议先行
2026-08-04 18:34:31 +08:00

75 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CHANGELOG — vd_960 (DLD960)
本文件记录 DLD960 整机(双 MCU 配套)的版本发布历史。
单侧固件的细粒度演进见 `vd960Loop/docs/devlog.md``vd960DBN/docs/devlog.md`
---
## V1.0.0 — 2026-07-16(首个正式发布)
**配套版本矩阵**
| 组件 | 版本 |
|------|------|
| vd960Loop 固件 (AT32F421) | 1.0 |
| vd960DBN 固件 (CH32V208, DLD960GA) | 1.0 |
| DLD960Loop 串口协议(MCU 间 0x7F | V1.05 |
| DLD960 串口通信协议(TTL | V1.01 |
| DLD960 TCP JSON 协议(:5960 | V1.02 |
| DLD960 IoT MQTT 协议 | V1.06 |
> ⚠ 自协议 V1.05 起,Loop 固件与 DBN 固件必须同版本配套刷写,禁止混跑(variation 字段宽度变更导致帧格式不兼容)。
### vd960Loop(检测 MCUAT32F421
**检测算法**(自 DLD154V4B 移植并四通道化,针对 M4 优化)
- 主循环 tick 50ms → **10ms**,单路 IIRALFA_CAP1=79,τ≈32ms,较 8051 时代快 5 倍)
- 斜率限幅 MAX_SLOPE_RATE=5%(含低基值 floor=100 防锁死)
- 进入确认 ENTRY_CONFIRM=3(连续 3 次低于阈值才判有车,抗尖峰误触发)
- 基线冻结超时 10s + ±2% 稳定性检查:温漂/换线圈可自适应,慢速进车不误吸收
- 稳定期(上电 128 样本)旁路 IIR/限幅,窗口 100 快速收敛;常态基线窗口 500(5s 更新,噪声抑制 22×)
- 每通道可配置 hold_time(有限存在)与 relay_delay(继电器延时);有限存在超时执行**全通道重启**重建基线
**串口上报(0x7F 协议,UART @192000**
- 0xC0 传感数据主动上报:频率、variation(**3B 有符号**`Origin CAPVD`V1.05)、车状态
- 时间量(通过时间/车间距)统一 **50ms 单位**;上电 3 秒抑制主动上报
- 继电器输出次数上报;0x4A 版本查询(CAPVD→实际频率 uint64 精确换算)
### vd960DBN(通信 MCUCH32V208
**TCP JSON 服务(:5960,协议 V1.02**
- 密码鉴权 + 18 条命令(新增脱机日志 log_stat/log_query/log_clear
- 鉴权状态机 + 15 条命令;服务异常自动重启(3 条件 + 3 次限额 + 10min 冷却)
- event_report 客户端必答:5s 超时重发同 msg_id/原始 ts ×3
**IoT MQTT(协议 V1.06**
- 双主题 `dld960/{sn}/srv` + `dld960/{sn}/dev`,消息类型由 `cmd` 区分
- 上电 initialize 上线消息(dev_serial/model/hard_ver/soft_ver
- loop_data 三档调度:空闲按配置间隔 / 活动 300ms / **car_state 翻转沿立即上报**
- event_report 平台必答 + 16 深环形队列,ACK 后出队;不受 report_config.enable 门控
- 设备时钟同步方案B:平台经 report_config 下发 Unix ts,设备无 RTC 也能上报真实时间
- 稳定性修复:mqtt_publish 缓冲溢出发垃圾包致 broker RST 风暴(现场 P0)、packet_id=0 断连、PINGREQ 保活、分批发送(MSS=576Publish≤500B
- loop_data 陈旧快照修复:0xC0 帧双消费路径统一摄取,事件与缓存同源
- **脱机事件日志(W25Q32 环形 8064 条,V1.06 新增)**log_stat / log_query / log_clear 三命令;BOOT 复位原因、MQTT 连接/断开、event ACK 超时、线圈事件、时钟锚点共 10 类;掉电不丢
**基础设施**
- BLE 小程序配置 + OTALoop MCU ISP 串口透传升级
- WCHNET TCP/IPlisten=N / data=N+1)、simple_json 解析器 6 项 bug 修复
### 文档与工具
- 四份协议文档 + 硬件资源文档齐套(见 README 协议矩阵)
- DBNetClientTCP JSON 测试)、DBNMQTToolMQTT 双主题测试)
- 双 MCU devlog、验收标准、variation 分析报告、现场事故归档
### 已知约束
- 设备无 RTC,时钟同步依赖平台下发(校准前 ts 为上电秒数)
- CH32V208 栈资源紧张:2KB 任务栈内勿连续 PRINT,勿随意扩大全局 BSS
---
## 版本号规则
- 整机发布 tag`vX.Y.Z`(本仓库 git tag + Gitea Release
- 固件版本:两侧 `cmcng.h``FIRMWARE_VER`,随整机版本同步
- 协议文档版本:各文档内修订记录表独立演进,发布时在配套矩阵中锁定