refactor: 输出融合模式枚举重排,出厂默认模式0(地感或光耦)

枚举值重新分配:
  旧: 0=复位 1=仅地感 2=仅光耦 3=或 4=且 5=混行 6=ETC
  新: 0=或   1=且     2=混行   3=ETC 4=仅地感 5=仅光耦 6=复位

涉及:
- storage.h: 枚举顺序重排
- peripheral_main.c: 注释号同步; LED区间判断改用精确比较; 工厂默认direction_mode=0x00
- 三份文档: 融合模式表/示例/默认值全部同步
This commit is contained in:
wangfq
2026-07-29 18:46:35 +08:00
parent c22d55236f
commit 8a01a5e769
6 changed files with 83 additions and 52 deletions
@@ -179,13 +179,13 @@ extern Loop_ACS_Info g_loop_acs_info;
typedef enum _DLD_OUTPUT_MODE
{
OUTPUT_MODE_LOOP_X_RESET = 0, // 光耦输入为 设备 复位信号,仅地感检测 输出
OUTPUT_MODE_LOOP_ONLY, // 地感输出 有效,光耦输入 无效
OUTPUT_MODE_RADAR_ONLY, // 仅光耦输入有效,雷达的输出信号接光耦输入,雷达有输出,车检器的继电器输出;地感信号 无效
OUTPUT_MODE_LOOP_OR_RADAR, // 地感或雷达,雷达的输出信号接光耦输入,雷达或地感有信号,车检器的继电器输出
OUTPUT_MODE_LOOP_AND_RADAR, // 地感和雷达,雷达的输出信号接光耦输入,雷达 并且 地感都有信号,车检器继电器才输出。
OUTPUT_MODE_HUMAN_VD_MIX, // 人车混行,雷达的输出信号接光耦输入,刚开始屏蔽雷达信号,当地感检测有车、车检器继电器输出后,车检器对地感 或雷达信号都有效(或的关系),车辆离开地感与雷达检测区域后,三秒内雷达检测有效,车检器继电器立即输出,起到防砸人的效果,连续进入持续防砸、人走落杆
OUTPUT_MODE_ETC, // ETC模式,雷达的输出信号接光耦输入,刚开始屏蔽雷达信号,地感检测有车、车检器继电器输出后,车检器对地感 或雷达信号都有效(或的关系),雷达输出断开后会有500ms的防抖超时时间,超时时间结束后,车检器才确定释放继电器。
OUTPUT_MODE_LOOP_OR_RADAR = 0, // 地感或雷达,雷达的输出信号接光耦输入,雷达或地感有信号,车检器的继电器输出
OUTPUT_MODE_LOOP_AND_RADAR, // 地感和雷达,雷达的输出信号接光耦输入,雷达 并且 地感都有信号,车检器继电器才输出。
OUTPUT_MODE_HUMAN_VD_MIX, // 人车混行,雷达的输出信号接光耦输入,刚开始屏蔽雷达信号,当地感检测有车、车检器继电器输出,车检器对地感 或雷达信号都有效(或的关系),车辆离开地感与雷达检测区域后,三秒内雷达检测有效,车检器继电器立即输出,起到防砸人的效果,连续进入持续防砸、人走落杆
OUTPUT_MODE_ETC, // ETC模式,雷达的输出信号接光耦输入,刚开始屏蔽雷达信号,当地感检测有车、车检器继电器输出后,车检器对地感 或雷达信号都有效(或的关系),雷达输出断开后会有500ms的防抖超时时间,超时时间结束后,车检器才确定释放继电器。
OUTPUT_MODE_LOOP_ONLY, // 地感输出 有效,光耦输入 无效
OUTPUT_MODE_RADAR_ONLY, // 仅光耦输入有效,雷达的输出信号接光耦输入,雷达有输出,车检器继电器输出;地感信号 无效
OUTPUT_MODE_LOOP_X_RESET, // 光耦输入为 设备 复位信号,地感检测 输出
}DLD_OUTPUT_MODE;
@@ -251,7 +251,7 @@ __attribute__((aligned(4))) uint32_t Image_Flag __attribute__((section(".ImageFl
uint8_t loop_cng_default[7] = {2,1,0,0,4,0,0};
uint8_t loop_cng_default[7] = {2,1,0,0x00,4,0,0};
void set_factory_param(void)
@@ -891,7 +891,7 @@ static void opt_input_poll(void)
}
/*================================================================
* 模式 0 — 光耦复位
* 模式 6 — 光耦复位
*================================================================*/
if (g_output_radar_mode == OUTPUT_MODE_LOOP_X_RESET) {
static uint32_t _rst_low_since = 0;
@@ -915,7 +915,7 @@ static void opt_input_poll(void)
}
/*================================================================
* 模式 1 — 纯地感
* 模式 4 — 纯地感
*================================================================*/
if (g_output_radar_mode == OUTPUT_MODE_LOOP_ONLY) {
g_opt_trigger = 0;
@@ -923,7 +923,7 @@ static void opt_input_poll(void)
}
/*================================================================
* 模式 2/3/4 — 纯雷达 / /
* 模式 0/1/5 — 或 / / 纯雷达
* g_opt_trigger 直出光耦信号, 融合判决在继电器输出段
*================================================================*/
if (g_output_radar_mode == OUTPUT_MODE_RADAR_ONLY ||
@@ -934,7 +934,7 @@ static void opt_input_poll(void)
}
/*================================================================
* 模式 5/6 — 人车混行 / ETC (状态机)
* 模式 2/3 — 人车混行 / ETC (状态机)
*================================================================*/
{
static uint8_t _opt_state = OPT_STATE_IDLE;
@@ -1274,9 +1274,11 @@ void TMR1_IRQHandler(void)
}
}
/*--- 光耦参与模式 (2-6): LED 同步继电器实际状态 ---*/
/* 断开/稳定期闪烁已在 5ms 段优先处理 */
if (g_output_radar_mode >= OUTPUT_MODE_RADAR_ONLY
/*--- 光耦参与模式: LED 同步继电器实际状态 ---*/
/* (非 LOOP_ONLY/LOOP_X_RESET 时开启) ---*/
/* 断开/稳定期闪烁已在 5ms 段优先处理 ---*/
if (g_output_radar_mode != OUTPUT_MODE_LOOP_ONLY
&& g_output_radar_mode != OUTPUT_MODE_LOOP_X_RESET
&& !g_disconnect_active
&& g_loop_power_up_state
&& g_loop_stable) {