• 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
  • wangfq released this 2026-08-19 15:25:48 +08:00 | 37 commits to main since this release

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

    配套版本矩阵

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

    🔧 SPI Flash 存储适配修复

    • 识别去厂商代码W25Qxx 宏去 0XEF 前缀、SPI_Flash_ReadJEDEC_ID() 删厂商校验(JEDEC 容量码跨厂商标准化)、storage_init 低字节匹配——兼容其他厂家同容量型号(如 0x1A 厂商)
    • 恢复 factory 配置写入:解除 2026-08-13 止血(根因 8-17 已闭环:栈溢出 + printf 重入,非 SPI 硬件问题),换新空片(W25Q128)后不再每次上电进出厂初始化
    • 板级验证通过(2026-08-19):W25Q128 配置读写恢复正常

    文档同步:README 版本表、CHANGELOG V1.02.04、产品手册/技术规格书配套版本(保持 V1.02)、devlog V4.7

    Downloads
  • wangfq released this 2026-08-19 11:22:17 +08:00 | 41 commits to main since this release

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

    配套版本矩阵

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

    🔧 BLE→Loop OTA 升级修复(0x9F 帧透传回 BLE)

    • 现象:UART2 RX DMA 改造后,通过 BLE 给地感(Loop MCU)OTA 升级失效
    • 根因:DMA poll 帧解析 lup_feed_byte() 只认 0x7F,Loop bootloader 回的 0x9F 响应帧(pre_ok/addr_ok/data ACK)全部被吞;OTA 为停等协议(0xA7 WITH_BACK 每块必回 ACK),工具等不到 ACK 升级卡死
    • 修复:新增 lup_feed_byte_ota() 0x9F 帧状态机(SUM 校验无 XOR);uart2_dma_pollg_flag_counter_ota.flag 切换 0x9F/0x7F 解析器;uart_srv OTA 分支 0x9F 帧透传回 BLE + 清 flag;OTA 溢出阈值放宽 + 收帧 tick 归零
    • 验证:gcc 隔离单测 8 断言全过;板级 BLE OTA 全流程实测通过

    📦 脱机日志快照流 + hex 上报(2026-08-18 已含)

    • TCP/MQTT log_* 命令支持 stream=snapshot 传感快照流(复用命令 + stream 字段)
    • log_query records 改 hex 原始字节上报(OfflogEvt 32B→64 hex / SnapRec 64B→128 hex)
    • MQTT 查询命令补齐:ssc_net_query / iot_net_query / iot_topic_query

    ⚠ 已知约束

    • OTA 透传模式无自动退出机制:进入 OTA 态后需断电重启才恢复 0x7F 正常通信(升级完成后重启设备)

    文档同步:产品手册 / 技术规格书 V1.02(配套 V1.02.03)、README 版本表与文档索引、CHANGELOG、devlog V4.4

    Downloads
  • v1.0.0 130054658a

    wangfq released this 2026-07-16 10:02:44 +08:00 | 137 commits to main since this release

    DLD960 整机发布 V1.0.0(首个正式发布)

    配套版本矩阵

    组件 版本
    vd960Loop 固件 (AT32F421) 1.0
    vd960DBN 固件 (CH32V208, DLD960GA) 1.0
    DLD960Loop 串口协议(MCU 间 0x7F) V1.05
    DLD960 串口通信协议(RS485/TTL) V1.01
    DLD960 TCP JSON 协议(:5960) V1.01
    DLD960 IoT MQTT 协议 V1.05

    ⚠ 自协议 V1.05 起,Loop 固件与 DBN 固件必须同版本配套刷写,禁止混跑。

    vd960Loop(检测 MCU)

    • 10ms tick 单路 IIR(τ≈32ms)+ 斜率限幅 5% + 进入确认 ×3
    • 基线冻结超时 10s + ±2% 稳定性检查;稳定期快速收敛
    • 每通道可配置 hold_time / relay_delay;有限存在超时全通道重启
    • 0xC0 传感上报:variation 3B 有符号,时间量 50ms 单位

    vd960DBN(通信 MCU)

    • TCP JSON :5960 鉴权 + 自动重启;event_report 客户端必答
    • MQTT 双主题 + initialize 上线 + loop_data 三档调度(car_state 沿立即上报)
    • event_report 平台必答 + 5s×3 重发 + 16 深队列;设备时钟同步方案B
    • 现场 P0 修复:mqtt_publish 缓冲溢出 RST 风暴、loop_data 陈旧快照

    完整说明见 CHANGELOG.md

    Downloads