wangfq
|
bfc9646e48
|
proto(V1.05): variation 由 2B无符号 扩展为 3B有符号
背景: variation 是遥测量, 用于离线跟踪分析车检器算法。原 2B 无符号
存在两个缺陷: (1)CAPVD域量级~131072, 大车全覆盖时偏差可超65535而回绕,
污染数据; (2)绝对值丢失方向, 分不清'车进入'与'反向漂移'。
改动 (三端联动, 同版本发布):
- 协议 DLD960Loop_串口通信协议.md: 变化量 2B->3B有符号补码, 定义
variation=Origin-CAPVD (正=车/裕量, 负=反向漂移); 每单元11->12B,
Len 47->51; 补符号扩展说明; 示例报文重算(XOR=FE SUM=38); 修订记录V1.05
- vd960Loop main.c: 组包 uint32->int32, Origin-CAPVD, 3B LE, +-2^23饱和防回绕
- vd960DBN loop_uart_proto.h: variation uint16->int32
- vd960DBN loop_uart_proto.c: 步长11->12, data_len/11->/12, misc偏移右移1B,
variation 3B解码+bit23符号扩展
- vd960DBN iot_mqtt_srv.c: fast_mode 阈值判断改 abs(variation)>=10, 正负变化都加速
验证: 本地 gcc 隔离单测 编解码往返/符号扩展/饱和/方向语义/fast_mode 全通过;
大车 diff=100000 旧版回绕34464 新版正确保留。字节账: 帧56B < Loop缓冲64B
< DBN缓冲512B < MSS576, 均不溢出。整体固件编译需在 Keil/MounRiver 侧完成。
|
2026-07-14 14:47:39 +08:00 |
|
wangfq
|
e6dbdb5296
|
fix(vd960DBN): 修复无法设置 IoT 模式的 bug
|
2026-07-06 10:24:15 +08:00 |
|
wangfq
|
d9059fac92
|
rename: passtime_ms5 → passtime_ms
|
2026-07-03 11:08:53 +08:00 |
|
wangfq
|
c4a2b50ca5
|
fix: tcp_json_srv_init 加一次性守卫 + callback NULL 诊断
问题: NET_SSC_ENABLE 时 g_net_state.flag 保持 1, net_srv_init 反复调用
tcp_json_srv_init 第二次因 socket 已存在失败 → 过早 return
→ lup_set_sensor_callback 未执行 → 0xC0 回调永远 NULL
修复:
- tcp_json_srv_init: 加 static _init_done 守卫,防止重复执行
- lup_set_sensor_callback: 打印注册/清除日志
- lup_process_frame: 回调为 NULL 时打印诊断信息
|
2026-07-02 14:29:23 +08:00 |
|
wangfq
|
6acd788d13
|
fix: 0xC0 帧通过回调直接驱动网络上报
loop_uart_proto:
- 新增 lup_sensor_cb_t 回调类型 + lup_set_sensor_callback
- lup_process_frame 收到 0xC0 → 调用注册的回调推送数据
tcp_json_srv:
- json_sensor_callback: 检查 g_report_active → 解析 → TCP 发送
- tcp_json_srv_init: 注册回调
usart_biz:
- uart_srv: 0xC0 由回调直接 TCP 推送,BLE 连接时也转发 BLE
- 移除旧的 _report_flag 轮询路径
数据流: ISR → lup_process_frame(校验) → json_sensor_callback → WCHNET_SocketSend
|
2026-07-02 14:15:28 +08:00 |
|
wangfq
|
615b369690
|
fix: 同步协议文档 V1.03 — 0x8A 响应格式 + LEN 计算修正
协议变更(V1.02→V1.03):
- 0x8A 响应: Ret(0x10/0x11) + Amount + Amount*(SensIn+SensOut)
- 新增灵敏度响应例程 (7F 80 13 8A 10 04 ...)
- 波特率确认 192000
代码修正:
- lup_build_sensitivity_read: LEN=3 (was 4)
- lup_build_sensitivity_write: LEN=3+Amount*4 (was 2+Amount*2)
- lup_parse_sensitivity_resp: 解析 Ret 字节 + SensIn/SensOut 双值
- lup_build_set_param: LEN=3+5*Amount (was 2+5*Amount)
- tcp_json_srv: JSON 输出含 sens_in/sens_out 字段
|
2026-07-02 11:55:29 +08:00 |
|
wangfq
|
eb7419b3e8
|
fix: 修正 lup_append_checksum total_len 计算错误 (CMD 重复计数)
Bug: 1 + 3 + LEN + 2 把 CMD 计入两次 (Header(3) 和 Value(LEN) 各含一次)
Fix: 5 + LEN = Magic(1)+Addr(1)+LEN(1)+Value(LEN)+Check(2)
影响: 校验字节偏移1位,导致 XOR 写到错误位置,地感MCU 校验失败无响应
同时修正 lup_build_sensor_ack 的 padding 长度和返回值
|
2026-07-02 10:55:37 +08:00 |
|
wangfq
|
e9c24ae736
|
feat: DBNetClient Loop命令完善 + vd960DBN 发送调试打印
vd960DBN:
- loop_uart_proto.c: 所有发送函数添加 LUP Tx 调试打印
- tcp_json_srv.c: 新增 loop_version_query/loop_reset/loop_factory_init/
loop_sens_read/loop_sens_write 命令处理器 + 延迟响应解析
- 修复 loop_sens_write 未设置命令状态机和错误使用解析函数的问题
DBNetClient:
- tcp_json_client.py: 新增 full Loop MCU API (6 条命令)
- main.py: 线圈参数标签页增加版本/复位/出厂/灵敏度操作按钮
|
2026-07-02 10:33:11 +08:00 |
|
wangfq
|
4fbda96078
|
feat(vd960DBN): 实现 DLD960Loop 串口通信协议 (0x7F)
新增:
- docs/DLD960Loop_串口通信协议.md — 协议文档 V1.02
- loop_uart_proto.h/c — 协议实现: checksum/组包/解析/帧状态机/命令状态机
修改:
- usart_biz.c: 使用 lup_feed_byte() 帧解析器替代 timeout heuristic; 波特率修正为 115200
- tcp_json_srv.c/h: loop_param_set/query 真实实现(0x63/0x64), 0xC0 传感器推流, 延迟响应机制
- peripheral_main.c: 添加 tcp_json_push_sensor() 调用, 帧解析器超时保护
校验验证: 5个协议例程 XOR+SUM 全部通过
|
2026-07-02 09:26:34 +08:00 |
|