fix(vd960DBN): 0x8F 接入 DBN 私有指令处理器 + net_srv 裸 printf + devlog 行尾
按用户 2026-09-10 四条指示: 1) 0x8F 下行的"本地处理"明确为 CH32V208GBU6 私有指令 —— 只作用在自身读写配置上, 一般不转发。实现: 不再留空壳计数, 直接复用 BLE 侧同一个分发器 manage_dbn_ble_default() (dbn_ble_srv.c:729)。两侧帧布局完全一致 (pkg[1]=Addr, pkg[2]=LEN, pkg[3]=CMD, pkg[4..]=Value), 零适配。 响应仍走 g_buf_ble_response -> BLE 通知; 不回 4G —— Air780 侧 parser 只认 0x7F, 回 0x8F 也没人接。 增加 OTA 门控: g_flag_counter_ota.flag != 0 时拒绝私有指令 —— 私有指令会写自身配置(碰 flash), 与 OTA 刷写并发是自找麻烦。 魔数宏改用 dbn_ble_srv.h 的 MAGIC_BYTE_DBN_DEFAULT, 不再硬编码 0x8F。 2) 0x7D 帧: 删除/不理会。V1.11 曾提的 DBN<->Air780 握手/配置同步构想作废, 代码里本就没实现, 正式协议也从未收录。devlog 待办项移除, 记入"已定案"。 3) net_srv.c:125 裸 printf() -> PRINT。该文件本已用 PRINT 53 处, 无需补 include。 DEBUG=0 时随 PRINT 一起消失, 不再出现"往未初始化的 USART1 写字节"。 4) devlog.md 行尾统一 CRLF (修复 132 个孤立 LF: 顶部 V1.13 条目原为 LF)。 验证 (host 单测, 代码从 usart_biz.c 原样抽取, gcc -Wall -Wextra -Werror 零警告): 15 组用例全部通过, 其中新增: - 0x8F -> manage_dbn_ble_default 被调用 1 次, 传入 len==全帧长, 内容逐字节一致, 未转发 - OTA 期间 0x8F -> 处理器未被调用, 但仍计数 (可观测) 原有 13 组 (魔数分流/最大帧/坏帧回找魔数/截断帧不丢帧/LEN 非法/0x9F 忽略...) 保持通过。 待板级验证: 需 MounRiver 工具链编译 + 实机 (本机无 riscv 工具链)。
This commit is contained in:
@@ -122,7 +122,7 @@ uint32_t dev_time_now(void)
|
||||
void mStopIfError(u8 iError)
|
||||
{
|
||||
if (iError == WCHNET_ERR_SUCCESS) return;
|
||||
printf("Error: 0x%02X\r\n", (u16)iError);
|
||||
PRINT("Error: 0x%02X\r\n", (u16)iError); /* 原裸 printf: DEBUG=0 时会去写未被初始化的 USART1 */
|
||||
}
|
||||
|
||||
void mqtt_connect(void)
|
||||
|
||||
Reference in New Issue
Block a user