• wangfq released this 2026-08-21 09:07:40 +08:00 | 23 commits to main since this release

    vd960DBN V1.02.05 — 2026-08-21(DBN 通信板单侧更新)

    配套版本矩阵

    组件 版本
    vd960DBN 固件 (CH32V208, DLD960GA) 1.02.05
    vd960Loop 固件 (AT32F421) 1.0(不变)
    DLD960Loop 串口协议(0x7F / 0x9F OTA) V1.05(不变)
    DLD960 TCP JSON 协议(:5960) V1.03(不变)
    DLD960 IoT MQTT 协议 V1.10
    DLD960 BLE 协议 V1.02(不变)

    🆕 MQTT 协议 V1.10:网络上报携带地感版本(配合远程 OTA 版本核对)

    • dev_info_query 响应 / initialize 上报新增 loop_ver(地感固件 "主.次.次")+ loop_hw_ver(地感硬件)——来自 Loop 0x4A 查询缓存(上电自动查一次 + OTA done 后刷新),查询未完成/失败为空串
    • 新增 §4.25 loop_version_query:平台实时查询 Loop 版本(0x4A 异步 → 回包 loop_ver/loop_hw_ver/version_str),超时回 code=5
    • 固件:loop_uart_proto 新增 LoopVerCache 版本缓存;iot_mqtt_srv 新增 iot_verq_poll() 异步回包 + 后台刷新(上电/OTA done)
    • 单测 44 断言全过(tests/test_iot_loop_ver.c

    🔧 联网稳定性修复(2026-08-20 系列)

    • SocketSend 0x11 死循环:改为 200ms 退避重试(≤10 次),不再 3 次强制断连;SocketCreat 失败置 SocketId_TCP=0xFF + 中止 Connect(不再 timeout 死循环)
    • OTA 下载失败ota_json_extract_hex() 兼容 json.dumps 空格(单片 CRC 全错根因闭环)
    • OTA 刷写状态语义:成功状态回 idle(镜像保留可重刷)+ 补 ota_report done/failed 主动上报
    • 联网复位事故:OTA 命令缓冲合并 union(RAM 90% 栈余量不足 → HardFault 复位闭环)

    📋 已知约束

    • UART2 0x4A 版本查询与 loop_data/事件上报共用总线(低频命令,理论无冲突)——待板上验证时序
    • OTA done 后缓存刷新存在 Loop 复位时间窗(查询可能超时,可接受;平台可用 loop_version_query 主动核对)
    • BLE→Loop OTA 透传模式无自动退出(V1.02.03 遗留,升级后需断电重启)

    验证

    • gcc 隔离单测:test_iot_loop_ver.c 44 例 + 既有 ota/offlog/snapshot/mqtt 单测全过
    • 待板级回归:MQTT 联网长稳、loop_version_query 实际回包、OTA 全流程
    Downloads