wangfq
|
40e6648445
|
feat(vd960Loop): LOOP_MEASURE_BASE 归一化基数上报 (协议 V1.09)
跨产品 MEASUREMENT_BASE 对齐(2026-08-26 DLD110S ×4 事故):variation 是周期域
计数值,归一化必须除设备自身的 MEASUREMENT_BASE。960Loop 此前 0x64 读参响应裸发
参数,第三方平台无从换算(写死 131072 恰好蒙对,写 524288 就 ÷4 失真)。
- docs(DLD960Loop_串口通信协议.md): V1.09 — 0x64 响应尾部追加 3B LE
LOOP_MEASURE_BASE(响应 34B→37B)+ 换算公式 ΔL/L≈-2×variation/BASE、
Δf/f≈variation/BASE + 修订记录
- inc/cmcng.h: #define LOOP_MEASURE_BASE 131072L(注释标明与 TaskLoop.h
MEASUREMENT_BASE 同步)
- src/main.c: CMD_DBN_GET_MCJQ_PARAM (0x64) handler for 循环后追加 3B LE
- docs/devlog.md: 置顶 2026-08-27 条目
设计决策:常量走 0x64 查询响应(低频)不进 0xC0 高频帧(避免分包);
向后兼容老客户端(只读前 34B 不受影响)。
联动待办:DBN 侧对外(BLE/TCP/MQTT)暴露基数未落地。
|
2026-08-27 08:27:02 +08:00 |
|
wangfq
|
e9a19b40d3
|
docs(vd960Loop): 9级制灵敏度表设计 (0.01%~5.00% ΔL/L, 等比公比2.198)
- variation-analysis.md §9.3.1: 9级 sens_in/sens_out 表 (0=最低, 8=最高)
- sens_in {1638,745,339,154,70,32,15,7,3} 端点精确 0.01%/5.00%
- sens_out 滞回渐变 50%→65%→90%/100% (高档防不释放)
- 4级→9级迁移映射 0→3,1→4,2→5,3→7
- 工程警示: SENS=8 贴噪声底, SENS=0 只认重型车
- tools/variation_calc.py: --sens-table 9 支持 9级显示 (4级默认兼容)
- devlog 2026-08-25 条目追加 9级制设计小节
代码落地 (set_factory_param/sens_level_from_config) 待 9级立项
|
2026-08-25 15:02:15 +08:00 |
|
wangfq
|
6483795079
|
docs(vd960Loop): 更正 devlog — flash sens[0]={512,400} 是 0x8A 自定义配置非坏数据
CMD_DBN_LOOP_SENS_LIST(0x8A) 支持灵敏度表读写 (main.c:946):
写 → memcpy(g_loop_sens_list.sens) → storage_dev() → para_store_init()
链路完整, 512/400 为用户自定义 SENS=0 档阈值(低灵敏度), 勿恢复出厂
|
2026-08-25 14:26:24 +08:00 |
|
wangfq
|
af95660c68
|
fix(vd960Loop): init_vd_single 灵敏度从配置读, 不再硬编码 2
现场日志: 配置 SENS=3/2/1/0, 检测全用 sens_in:36 (SENS=2 表值)
根因: main→para_store_init() 同步 loop_SensLevel=配置, 但任务启动后
INIT_VDs()→init_vd_single() 硬编码 loop_SensLevel=2 覆盖配置 → 全通道 SENS=2
修复: init_vd_single 改为 sens_level_from_config(
g_loop_cng_info.loop_cng[unit->loop_num].sensitvity)
另: flash 灵敏度表 sens[0]={512,400} 为坏数据(出厂应为{216,108}),
修复后 loop_3(SENS=0) 会撞上异常值, 需恢复出厂清配置区
|
2026-08-25 14:23:33 +08:00 |
|
wangfq
|
bbf5492fe2
|
fix(vd960Loop): 灵敏度收敛 4 级制 + 运行中配置立即生效 (协议 V1.08)
根因: 设置不同灵敏度感应高度无区别
1. unpack_pkg_set_mcjq_param 未同步 loop_SensLevel → 改灵敏度需重启才生效
2. 9级制映射 sensitvity & 0x03 折叠 (默认7→3, 3→3, 8→0)
3. (测试陷阱) 金属块过大信号饱和, 建议小金属块测临界高度
修复:
- 提取 sens_level_from_config() 映射函数, 4级制 0~3 一一对应 (9级制后改)
- unpack_pkg_set_mcjq_param 补 loop_SensLevel 同步 (运行中立即生效)
- para_store_init 上电路径改用同一函数
- 协议 V1.08: Sensitivity 0~9级 → 4级制 0~3 (默认2)
- tests/test_sens_mapping.c gcc 隔离单测 PASS (0~3无折叠/兼容旧默认7→3)
|
2026-08-25 11:52:14 +08:00 |
|
wangfq
|
2a267967b4
|
feat(vd960Loop): 环境健康度算法 §10 + drift_health.py 参考实现
- variation-analysis.md §10: 无车漂移监测 (零成本, 不改协议)
- 口径修正: 绝对峰=1.5×窗口漂移(Origin 滞后半窗) → 用峰谷差
- 600ms 采样系统性低估 ~12% (峰在窗口末采不到)
- 冻结态失效(>4×dlt_ORG) → 双指标: 漂移速率 + 冻结占比
- 冻结判定双判据: 跨窗跳变消失 + 峰谷差突变(>4×前4窗中位数)
- tools/drift_health.py: CSV 逐窗统计/冻结检测/JSON/自测
- devlog 2026-08-25 条目追加环境健康度小节
- 自测: 慢漂移 0.02%/s 识别准确, 冻结窗正确排除
|
2026-08-25 10:09:36 +08:00 |
|
wangfq
|
e919ff477a
|
docs(协议): variation 值域勘误 V1.07 — ±8388607 → −8388608 ~ +8388607
统一为 3B 补码标准值域 (-2^23 ~ +2^23-1), 对齐代码负向饱和边界 0x800000
- DLD960Loop_串口通信协议.md: variation 字段值域修正 + 修订记录 V1.07
- variation-analysis.md: 头部版本引用/§1/§5.1 表格/§5.6.3 口径小注同步
- devlog.md: 2026-08-25 条目追加勘误说明
代码无改动 (main.c 饱和边界本就正确)
|
2026-08-25 09:49:11 +08:00 |
|
wangfq
|
1ec4a39d92
|
docs(vd960Loop): variation ↔ ΔL/ΔL-L 物理对应分析 + 换算工具
- variation-analysis.md 新增 §9: CAPVD ∝ √L 推导, 精确/一阶/频域三口径公式
- 灵敏度档位 → ΔL/L 触发阈值表 (SensTable/65536 ×2, DLD154Pro 交叉验证)
- 电容档无关性: 33/43/66/76nF 共用同一换算表 (variation/Origin 中 C 消掉)
- tools/variation_calc.py: 正向/反推/3B LE 补码解析/灵敏度对照/交互 5 模式
- devlog 置顶 2026-08-25 条目
|
2026-08-25 08:39:37 +08:00 |
|
wangfq
|
82e01cd337
|
docs(devlog): 记录 variation 2B->3B有符号升级 (V1.05)
- vd960Loop/docs/devlog.md: 组包端改动(uint32->int32,方案B,饱和防回绕),
背景/影响范围/验证
- vd960DBN/docs/devlog.md: 接收端4处联动(结构体/解析步长/符号扩展/
fast_mode abs阈值), 缓冲核查
两端均标注必须同版本发布
|
2026-07-14 16:48:25 +08:00 |
|
wangfq
|
a73a9392bd
|
docs: 补充 V2.8~V3.1 开发日志 (编译修复/车间距/misc_counter/上电抑制)
|
2026-07-03 17:01:09 +08:00 |
|
wangfq
|
85a4fa7910
|
change: 时间量上报单位 10ms→50ms, report_counter 入 50ms tick
- report_counter++ 从 5ms ISR 外层移入 if(TM1cnt>=10) 50ms 块
- 3处 misc_value 去掉 /2, 直接差值即可
- REPORT_IDLE_TICKS 120→12, REPORT_EVENT_TICKS 30→3
- 更新 TaskLoop.h/main.c/devlog 注释
|
2026-07-03 10:01:30 +08:00 |
|
wangfq
|
3c243ea792
|
change: 时间量上报单位 5ms→10ms
- 进场车间距 / 离场通过时间: misc_value = (差值)/2
- 内部时间戳保持 5ms 精度, 仅上报值转为 10ms
- 更新注释和 devlog (V2.6)
|
2026-07-03 09:36:28 +08:00 |
|
wangfq
|
ecbb4852ca
|
docs: 更新开发日志 — 2026-06-29 M4优化移植 (V2.0~V2.5)
|
2026-06-30 11:17:27 +08:00 |
|
wangfq
|
5a12044c1a
|
fix: vTaskDelay 10→50ms 对齐 DLD154V4B 原始设计, 创建 docs/devlog.md
loop_task_function 主循环周期修正:
- 原值 10ms 是 FreeRTOS 移植时的疏忽
- 改为 50ms 对齐原始 TMR15 5ms×10 设计
- 基线更新: 100×10ms=1s → 100×50ms=5s (Origin 更稳定)
- CPU 占用降低 5×
创建 docs/devlog.md 记录 V2.0~V2.2 全部改动。
|
2026-06-26 14:30:51 +08:00 |
|