wangfq
|
d1fb357989
|
feat(vd960Loop): 看门狗升级双保险喂狗模式 + 超时对齐 V4B(1.64s)
对照 DLD154V4B V2.10(同款 AT32F421):
- 原直喂模式缺 ISR 活性检测: TMR15 ISR 死但主循环活 -> 看门狗永不复位(假活)
- 升级: TMR15 ISR 5ms 递增 g_wdg_counter + 主循环 poll_wdg() 500ms 才 reload
- 超时 3s(div64/rld1875) -> 1.64s(div16枚举/rld4095)
- wdt_feed 定义移至 TaskLoop.c 改名 poll_wdg, 与 V4B 同构
- 修正 main.c 注释矛盾(4687 vs 1875); 沿用 WDT_CLK_DIV_16 枚举写法避免
V4B 同源传值 bug
- 隔离测试 3 项断言全过(分频16/超时1638ms>500ms/10s喂20次/ISR死不喂)
|
2026-08-28 09:15:54 +08:00 |
|
wangfq
|
5aa8edc1ea
|
refactor: 新增 misc_counter 替代 report_counter 做时间戳
- Loop154_States 新增 misc_counter (50ms 自由运行不复位)
- 7处时间戳操作改用 misc_counter: passtime_start/last_exit_tick/misc_value
- report_counter 还原原始清零逻辑, 仅管上报间隔
- 删除 last_report_tick
这样 report_counter 只管上报调度, misc_counter 只管时间戳,
互不干扰, 即使 report_counter 清零也不影响车间距/通过时间计算
|
2026-07-03 10:33:48 +08:00 |
|
wangfq
|
b49797ecc6
|
fix: report_counter 清零导致车间距/通过时间下溢 (0xFFFFFFxx)
根因: report_counter 清零后 last_exit_tick/passtime_start 存旧值,
再次进场时差值下溢 uint32_t → 0xFFFFFFF7
修复:
- Loop154_States 新增 last_report_tick, report_counter 自由运行不复位
- report_misc: 增量判断 (report_counter - last_report_tick) >= _interval
- TMR6 ISR: 用 last_report_tick 实现 UART 期间推迟上报, 不再清零
- 删掉所有 g_loop_states.report_counter = 0
|
2026-07-03 10:27:56 +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
|
9fae087fed
|
feat: 主动上报时间量 — 补齐车间距时间 (gap time)
- Loop154_Unit 新增 last_exit_tick 字段,记录上次离场时间戳
- 进场: misc_value = 车间距 (report_counter - last_exit_tick), 首车为0
- 离场 (flatness/cnt_release): 记录 last_exit_tick, misc_value = 通过时间
- 有限存在超时: 也记录 last_exit_tick, 确保下一辆车车间距正确
四通道独立计算, 单位 5ms tick
|
2026-07-03 09:13:39 +08:00 |
|
wangfq
|
9e125f953c
|
feat(vd960Loop): 0xC0 主动上报 — 4种杂项类型轮转 + 事件优先级
杂项类型轮转:
- 0b00 时间量: 进场=车间距, 离开=通过时间, 空闲=0
- 0b01 线圈断开次数
- 0b10 车流量累计
- 0b11 继电器动作次数
上报间隔:
- 空闲稳定: 600ms, 轮流上报 0→1→2→3
- 进场/离开事件: 150ms, 强制时间量, 最高优先级
TaskLoop.h: 新增 MISC_TYPE_* / REPORT_*_TICKS 宏
Loop154_Unit 新增 flow_count/relay_count/passtime_start/misc_value
Loop154_States 新增 report_misc_round
TaskLoop.c: 进场时记录时间戳+累计; 离开时计算通过时间
main.c: 重写 uart_report_packet_loop_acs
|
2026-07-02 18:18:16 +08:00 |
|
wangfq
|
4d77ef8c71
|
refactor: 去掉快速 IIR,ALFA_CAP1=79 @10ms (同步 DLD154V4B)
|
2026-06-29 18:35:15 +08:00 |
|
wangfq
|
918287d9da
|
clean: 删除死代码 ALFA_FAST (同步 DLD154V4B)
|
2026-06-29 17:16:47 +08:00 |
|
wangfq
|
23f33d9af5
|
fix: update_moving_average window 参数 uint8_t→uint16_t (同步 DLD154V4B)
|
2026-06-29 15:55:59 +08:00 |
|
wangfq
|
1ca7f01cdf
|
tune: WINDOW_ORIGIN 100→500, 基线更新 1s→5s (同步 DLD154V4B)
|
2026-06-29 15:37:12 +08:00 |
|
wangfq
|
0b951768ec
|
feat(vd960Loop): 移植 DLD154V4B V2.0-V2.5 M4 优化 — 双路 IIR + 斜率限幅 + 进入确认 + 冻结超时
V2.0: 双路 IIR (慢速 α=18/256 τ=135ms + 快速 α=0.5 τ=28ms)
斜率限幅 MAX_SLOPE_RATE=5%
进入确认 ENTRY_CONFIRM=3
vTaskDelay 50→10ms (tick 加速 5×)
V2.1: CAPVD_fast 初始化修复 (==0 时首次锁定)
V2.2: 稳定期绕过 IIR 和斜率限幅,直接用 Value 收敛基线
V2.3: 基线冻结超时自动恢复 (FREEZE_TIMEOUT)
V2.4: 冻结稳定性检查 (FREEZE_STABILITY_RATE=2% 窗口)
V2.5: 冻结超时 10s (1000 tick @ 10ms)
结构体新增: loop_CAPVD_fast, loop_entry_cnt,
loop_freeze_cnt, loop_freeze_ref
每通道独立状态,四路并行运行
|
2026-06-29 11:25:44 +08:00 |
|
wangfq
|
1831291d76
|
fix: 离开延时 OUT_DELAY 改为可配置 relay_delay
- Loop154_Unit 新增 relay_delay 字段
- storage.c 从 delay_time 计算: relay_delay = delay_time * 2
- TMR15_GLOBAL_IRQHandler 使用 unit->relay_delay 替代固定 OUT_DELAY
|
2026-06-26 10:31:53 +08:00 |
|
wangfq
|
bfbceec761
|
fix: 有限存在超时改为可配置 hold_time 替代固定 HOLD_TIME
- Loop154_Unit 新增 hold_time 字段 (tick 数)
- storage.c para_store_init 从 exist_mode 计算: hold_time = exist_mode * 20 * 5
- TMR15_GLOBAL_IRQHandler 中使用 unit->hold_time 替代固定 HOLD_TIME
|
2026-06-26 10:20:13 +08:00 |
|
wangfq
|
95808f9f25
|
refactor(vd960Loop): 算法回退到 DLD154V4B,四通道适配
- 用 DLD154V4B vd1_task/per_channel 替换 vds_task 复杂算法
- 移除 FUNCTION_B/二次判断/快速变化/多重确认等增强特性
- 保留平坦性离开算法 (CN200910309382),每通道独立状态
- 灵敏度表改为 DLD154V4B 4级: {216,108,36,10} / {108,72,18,9}
- 清理废弃类型: FltHistoryManager, Loop_ACS_Info, StageRangeConfig 等
- 首次添加 vd960DBN 完整源码
|
2026-06-25 16:21:57 +08:00 |
|