diff --git a/BLE/DLD154Pro_Peripheral_28K/APP/include/storage.h b/BLE/DLD154Pro_Peripheral_28K/APP/include/storage.h index 44d5ffd..4f9199e 100644 --- a/BLE/DLD154Pro_Peripheral_28K/APP/include/storage.h +++ b/BLE/DLD154Pro_Peripheral_28K/APP/include/storage.h @@ -180,9 +180,9 @@ extern Loop_ACS_Info g_loop_acs_info; typedef enum _DLD_OUTPUT_MODE { OUTPUT_MODE_LOOP_OR_RADAR = 0, // 地感或雷达,雷达的输出信号接光耦输入,雷达或地感有信号,车检器的继电器输出。 - OUTPUT_MODE_LOOP_AND_RADAR, // 地感和雷达,雷达的输出信号接光耦输入,雷达 并且 地感都有信号,车检器继电器才输出。 OUTPUT_MODE_HUMAN_VD_MIX, // 人车混行,雷达的输出信号接光耦输入,刚开始屏蔽雷达信号,当地感检测有车、车检器继电器输出后,车检器对地感 或雷达信号都有效(或的关系),车辆离开地感与雷达检测区域后,三秒内雷达检测有效,车检器继电器立即输出,起到防砸人的效果,连续进入持续防砸、人走落杆。 OUTPUT_MODE_ETC, // ETC模式,雷达的输出信号接光耦输入,刚开始屏蔽雷达信号,当地感检测有车、车检器继电器输出后,车检器对地感 或雷达信号都有效(或的关系),雷达输出断开后会有500ms的防抖超时时间,超时时间结束后,车检器才确定释放继电器。 + OUTPUT_MODE_LOOP_AND_RADAR, // 地感和雷达,雷达的输出信号接光耦输入,雷达 并且 地感都有信号,车检器继电器才输出。 OUTPUT_MODE_LOOP_ONLY, // 仅地感输出 有效,光耦输入 无效 OUTPUT_MODE_RADAR_ONLY, // 仅光耦输入有效,雷达的输出信号接光耦输入,雷达有输出,车检器的继电器输出;地感信号 无效。 OUTPUT_MODE_LOOP_X_RESET, // 光耦输入为 设备 复位信号,仅地感检测 输出 diff --git a/BLE/DLD154Pro_Peripheral_28K/APP/peripheral_main.c b/BLE/DLD154Pro_Peripheral_28K/APP/peripheral_main.c index 2c2c431..4a3b9d0 100644 --- a/BLE/DLD154Pro_Peripheral_28K/APP/peripheral_main.c +++ b/BLE/DLD154Pro_Peripheral_28K/APP/peripheral_main.c @@ -853,13 +853,13 @@ void cjq_srv(void){ * * 产出 g_opt_trigger (1=有效, 0=无效),供继电器输出段融合判决。 * 各模式逻辑: - * MODE 0 (LOOP_X_RESET): 光耦=复位信号,≥400ms 低电平后上升沿芯片复位 - * MODE 1 (LOOP_ONLY): 光耦忽略,g_opt_trigger=0 - * MODE 2 (RADAR_ONLY): g_opt_trigger = 光耦信号 (3 样本多数表决防抖) - * MODE 3 (LOOP_OR): g_opt_trigger = 光耦信号 - * MODE 4 (LOOP_AND): g_opt_trigger = 光耦信号 - * MODE 5 (HUMAN_VD_MIX): 状态机 — 屏蔽→地感触发后解禁→离场 3s 防砸窗口 - * MODE 6 (ETC): 状态机 — 屏蔽→地感触发后解禁→光耦断开 500ms 防抖 + * MODE 0 (LOOP_OR_RADAR): g_opt_trigger = 光耦信号, 或关系 + * MODE 1 (HUMAN_VD_MIX): 状态机 — 屏蔽→地感触发后解禁→离场 3s 防砸窗口 + * MODE 2 (ETC): 状态机 — 屏蔽→地感触发后解禁→光耦断开 500ms 防抖 + * MODE 3 (LOOP_AND_RADAR): g_opt_trigger = 光耦信号, 且关系 + * MODE 4 (LOOP_ONLY): 光耦忽略, g_opt_trigger=0 + * MODE 5 (RADAR_ONLY): g_opt_trigger = 光耦信号 (3 样本多数表决防抖) + * MODE 6 (LOOP_X_RESET): 光耦=复位信号,≥400ms 低电平后上升沿芯片复位 * * 注意: mstick() 单位 5ms/tick *===========================================================================*/ @@ -923,7 +923,7 @@ static void opt_input_poll(void) } /*================================================================ - * 模式 0/1/5 — 或 / 与 / 纯雷达 + * 模式 0/3/5 — 或 / 且 / 纯雷达 * g_opt_trigger 直出光耦信号, 融合判决在继电器输出段 *================================================================*/ if (g_output_radar_mode == OUTPUT_MODE_RADAR_ONLY || @@ -934,7 +934,7 @@ static void opt_input_poll(void) } /*================================================================ - * 模式 2/3 — 人车混行 / ETC (状态机) + * 模式 1/2 — 人车混行 / ETC (状态机) *================================================================*/ { static uint8_t _opt_state = OPT_STATE_IDLE; diff --git a/docs/devlog.md b/docs/devlog.md index dc2a05d..2954e86 100644 --- a/docs/devlog.md +++ b/docs/devlog.md @@ -4,6 +4,35 @@ --- +## 2026-07-30 — 输出融合模式枚举再次重排:地感且光耦后移 + +### 变更 + +将「地感且光耦」从值 1 移到值 3(排到后面),混行/ETC 前移: + +``` +旧 (V1.4): 0=或 1=且 2=混行 3=ETC 4=仅地感 5=仅光耦 6=复位 +新 (V1.5): 0=或 1=混行 2=ETC 3=且 4=仅地感 5=仅光耦 6=复位 +``` + +### 涉及文件 + +| 文件 | 变更 | +|------|------| +| `storage.h` | `DLD_OUTPUT_MODE` 枚举顺序:AND_RADAR 从 line 2 移至 line 4 | +| `peripheral_main.c` | 注释块 MODE N 标签 + 内联模式号 (0/1/5→0/3/5, 2/3→1/2) | +| `docs/technical-spec.md` | §6.1 融合模式表重排; §6.2/6.3 标题模式号更新; §7.2 LED 行改写为非数字区间 | +| `docs/product-manual.md` | §4.6 融合模式表重排 + 默认值 1→4 (仅地感); 模式号引用更新 | +| `docs/rs485-modbus-protocol.md` | §6.5 融合模式表重排 + 状态机标题模式号更新; V1.4→V1.5 | +| `docs/devlog.md` | 本条目 | + +### 影响 + +- 代码全用符号名,无行为影响 +- 已有 flash 配置的 `fusion_mode` 旧值语义与新模式不兼容,需重新设置 + +--- + ## 2026-07-29 — 输出融合模式枚举重排 ### 变更 diff --git a/docs/product-manual.md b/docs/product-manual.md index 35e21ac..e601f04 100644 --- a/docs/product-manual.md +++ b/docs/product-manual.md @@ -128,7 +128,7 @@ DLD154Pro **无物理拨码开关**,所有参数通过手机 BLE 小程序配 | 离开延时 | 0 ~ 255 (×100ms) | 5 (500ms) | 车辆离开后延时释放 | | 有限存在 | 0 (永久) 或 1~255 (×5s) | 0 | 超时后释放并复位 | | 频率档位 | 0 (高频) / 1 (低频) | 0 | 调频电容切换 | -| 融合模式 | 0 ~ 6 | 1 (仅地感) | 见 §4.6 | +| 融合模式 | 0 ~ 6 | 4 (仅地感) | 见 §4.6 | | 功能码 (function_mode) | bit0: RS485 协议, bit1: 光耦功能 | 0 | 700BS/Modbus 切换 | | RS485 协议 | 700BS / Modbus RTU | 700BS | bit0=0→700BS, bit0=1→Modbus | | RS485 地址 | 1 ~ 247 | 1 | Modbus 从机地址 | @@ -171,14 +171,14 @@ DLD154Pro 支持通过光耦输入接入外部雷达/车检器的干接点信号 | 模式 | 名称 | 继电器吸合条件 | 适用场景 | |------|------|--------------|---------| | 0 | 地感**或**光耦 | 任一触发 | 互补冗余,提高检测可靠性(默认) | -| 1 | 地感**且**光耦 | 两者同时触发 | 双确认,防地感误触(行人/拖车) | -| 2 | **人车混行防砸** | 有车后任一触发,离场 3s 窗口内光耦有效 | 混合交通防砸人 | -| 3 | **ETC 模式** | 有车后任一触发,光耦断开 500ms 防抖才释放 | ETC 车道 | +| 1 | **人车混行防砸** | 有车后任一触发,离场 3s 窗口内光耦有效 | 混合交通防砸人 | +| 2 | **ETC 模式** | 有车后任一触发,光耦断开 500ms 防抖才释放 | ETC 车道 | +| 3 | 地感**且**光耦 | 两者同时触发 | 双确认,防地感误触(行人/拖车) | | 4 | 仅地感 | 线圈有车 | 纯线圈场景 | | 5 | 仅光耦 | 光耦输入有效 | 纯雷达,地感做背景监控 | | 6 | 光耦复位 | 仅地感(光耦用于远程复位) | 需要远程复位功能 | -**人车混行防砸 (模式 2) 工作原理:** +**人车混行防砸 (模式 1) 工作原理:** 1. 平常状态只用线圈检测,屏蔽光耦(防行人误触) 2. 线圈检测到车、继电器吸合后,光耦信号也参与(人或雷达都能续吸) 3. 车离开线圈+雷达区域后,保留 **3 秒防砸窗口**——期间光耦检测到人立即吸合 diff --git a/docs/rs485-modbus-protocol.md b/docs/rs485-modbus-protocol.md index 4abb0f2..af69e71 100644 --- a/docs/rs485-modbus-protocol.md +++ b/docs/rs485-modbus-protocol.md @@ -265,16 +265,16 @@ DLD154Pro 算法移植后,`MEASUREMENT_BASE = 524288 (2^19)`(CH591R@60MHz | 值 | 模式 | 继电器吸合条件 | 适用场景 | |----|------|--------------|---------| | 0 | 地感 **或** 光耦 | 线圈 OR 雷达 | 互补冗余,任一触发即吸合 | -| 1 | 地感 **且** 光耦 | 线圈 AND 雷达 | 双确认,防地感误触(如行人/拖车) | -| 2 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 | -| 3 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用逻辑 | +| 1 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 | +| 2 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用逻辑 | +| 3 | 地感 **且** 光耦 | 线圈 AND 雷达 | 双确认,防地感误触(如行人/拖车) | | 4 | 仅地感 | 线圈有车 | 纯线圈场景(默认,未接光耦时也用此模式) | | 5 | 仅光耦 | 光耦输入有效(雷达有车) | 纯雷达,地感只做背景监控 | | 6 | 光耦复位 | 线圈有车(光耦用于远程复位) | 需要远程复位功能 | -**模式 2(人车混行防砸)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → WINDOW(3s 防砸窗口,光耦触发即续吸,连续进入持续防砸)→ 3s 超时 → IDLE。 +**模式 1(人车混行防砸)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → WINDOW(3s 防砸窗口,光耦触发即续吸,连续进入持续防砸)→ 3s 超时 → IDLE。 -**模式 3(ETC)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → DEBOUNCE(500ms 防抖,期间触发即回 ARMED)→ 超时 → IDLE。 +**模式 2(ETC)状态机**:IDLE(仅线圈检测)→ 线圈有车 → ARMED(线圈||光耦)→ 两者均释放 → DEBOUNCE(500ms 防抖,期间触发即回 ARMED)→ 超时 → IDLE。 > **注意**:当光耦配置为复位功能(`function_mode` bit1=1)时,`fusion_mode` 无效,继电器仅由线圈检测结果驱动。模式 6 下光耦输入低电平 ≥400ms 后上升沿触发 `SYS_ResetExecute()` 芯片全复位。 @@ -328,6 +328,7 @@ DLD154Pro RS485 同时支持 700BS 协议(`g_fm_700bs_disable=0`)和 Modbus | 版本 | 日期 | 作者 | 变更 | |------|------|------|------| +| V1.5 | 2026-07-30 | wangfq | 枚举再次重排: 且后移 (0=或,1=混行,2=ETC,3=且,4=仅地感,5=仅光耦,6=复位); 模式号引用同步更新 | | V1.4 | 2026-07-29 | wangfq | 枚举重排: 融合模式值重新分配 (0=或,1=且,2=混行,3=ETC,4=仅地感,5=仅光耦,6=复位); 默认融合模式 0→4(仅地感); 修正所有示例和说明文本 | | V1.3 | 2026-07-29 | wangfq | 修正: 灵敏度档位 3→4 (范围 0–3, 默认 1); MEASUREMENT_BASE 131072→524288; Origin 窗口 100→500; 融合模式 5/6 待定义→已实现+状态机; 命令示例数值对齐实际硬件; 700BS 标注为已完成; 版本号 FW 3.00→3.01 | | V1.2 | 2026-07-22 | wangfq | 700BS 兼容: +DI Freq Low/High Fault, +DI Init Flag, +IR DIP Virtual, +HR Device Reset(0x00FF), +HR Init Flag Clear(0x00FE); +§7 700BS 兼容对照表 | diff --git a/docs/technical-spec.md b/docs/technical-spec.md index 07c1393..67a4bc7 100644 --- a/docs/technical-spec.md +++ b/docs/technical-spec.md @@ -364,14 +364,14 @@ DLD154Pro 支持通过光耦输入 (PB10) 接入外部雷达/车检器信号, | 模式值 | 名称 | 继电器吸合条件 | 适用场景 | |--------|------|--------------|---------| | 0 | 地感**或**光耦 | coil OR opto | 互补冗余,任一触发即吸合(默认) | -| 1 | 地感**且**光耦 | coil AND opto | 双确认,防地感误触 | -| 2 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 | -| 3 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用 | +| 1 | 人车混行防砸 | 有车后 coil OR opto,离场 3s 窗口内光耦有效 | 混合交通流防砸人 | +| 2 | ETC 模式 | 有车后 coil OR opto,光耦断开 500ms 防抖才释放 | ETC 专用 | +| 3 | 地感**且**光耦 | coil AND opto | 双确认,防地感误触 | | 4 | 仅地感 | 线圈有车 | 纯线圈场景 | | 5 | 仅光耦 | 光耦输入有效 | 纯雷达,地感只做背景监控 | | 6 | 光耦复位 | 仅地感(光耦用于远程复位) | 带远程复位功能 | -### 6.2 人车混行防砸 (模式 2) 状态机 +### 6.2 人车混行防砸 (模式 1) 状态机 ``` IDLE (仅线圈检测) @@ -386,7 +386,7 @@ WINDOW (3s 防砸窗口) │ 3s 超时无触发 → 回到 IDLE,落杆 ``` -### 6.3 ETC 模式 (模式 3) 状态机 +### 6.3 ETC 模式 (模式 2) 状态机 ``` IDLE (仅线圈检测) @@ -425,7 +425,7 @@ TMR1 ISR (每 5ms) | 线圈断开 | **灭** | 等待恢复 | | 正常运行,无车 | **灭** | 就绪 | | 正常运行,有车 | **亮** | 车辆检测中 | -| 光耦融合模式 2-6 下 | 跟随 `relay1_state` | 与实际继电器状态一致 | +| 光耦参与模式 (非 LOOP_ONLY/LOOP_X_RESET) | 跟随 `relay1_state` | 与实际继电器状态一致 | ### 7.3 红灯行为