Commit Graph

8 Commits

Author SHA1 Message Date
wangfq
eb9f21b08d fix: 有限存在超时改为通道完整重启, 避免继电器立即重新吸合
原逻辑设 loop_FLAG_OUT=1 触发正常离车流程,
但线圈物理上仍有车, vd1_task 立刻重新检测到有车→继电器又吸合。

改为与安全复位一致的重启逻辑:
- LC_Reset=1, loop_INI_LOOP=1 → 强制重新初始化
- loop_stable=0, loop_LOOP_OK0=0 → 重建基线(含稳定期128样本)
- 清除所有标志位和计数器
- 移除 loop_VD_FLAG 前置条件 (set_loops_relay_off 无条件执行)
2026-06-26 12:02:00 +08:00
wangfq
995520164d fix: 有车时根据 hold_time 启用有限存在计时
vd1_task_per_channel 判定有车 (loop_VD_FLAG=1) 时,
若 hold_time > 0 则设置 loop_VD_HOLD = 1,
使有限存在超时逻辑能够实际生效。
hold_time=0 (exist_mode=0) 时不设 VD_HOLD,保持无限制存在。
2026-06-26 11:55:43 +08:00
wangfq
56d8b77278 fix: 有限存在超时后完整恢复无车状态
set_loops_relay_off 之后补充:
- loop_VD_FLAG = 0  → 无车 → 绿灯灭 (poll_green_led 自动)
- loop_FLAG_OUT = 1  → 触发正常离开输出
- LC_HOLD = 0        → 清除安全保持
- loop_ORG_CNT/SUM=0  → 重置基线跟踪
2026-06-26 11:18:25 +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
abf000911b fix(vd960Loop): 移除 TaskLoop.c 中重复的 usart_task/g_flag_output 定义 2026-06-25 16:51:36 +08:00
wangfq
d2b132a6ef fix(vd960Loop): 编译错误修复 — Flt_Reg/SensTable/macros/INCNT 2026-06-25 16:41:50 +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