fix(vd960Loop): 灵敏度阈值改用可配置灵敏度表 g_loop_sens_list
固定表 SensTable/SensTable_1 替换为 flash 可配置的
g_loop_sens_list.sens[loop_SensLevel].sens_in/sens_out
(进入/平坦性/离开三处 dlt_ORG 计算同步修改)
- 修复灵敏度值固定不可配置的问题
- 默认值由 set_factory_param 保持 {216,108,36,10}/{108,72,18,9}
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
#include "task.h"
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "storage.h"
|
||||
|
||||
/*===========================================================================
|
||||
* 灵敏度表 — 对齐 DLD154V4B / M1H
|
||||
@@ -472,7 +473,7 @@ void vd1_task_per_channel(Loop154_Unit *unit)
|
||||
* 无车状态
|
||||
*================================================================*/
|
||||
|
||||
unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * SensTable[unit->loop_SensLevel]) >> 16;
|
||||
unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * g_loop_sens_list.sens[unit->loop_SensLevel].sens_in) >> 16;
|
||||
{
|
||||
int32_t dev = (int32_t)unit->loop_CAPVD - (int32_t)unit->loop_Origin;
|
||||
if (dev < (int32_t)(unit->loop_dlt_ORG * 4)) {
|
||||
@@ -590,7 +591,7 @@ void vd1_task_per_channel(Loop154_Unit *unit)
|
||||
} else {
|
||||
int32_t dev = (int32_t)unit->loop_CAPVD - (int32_t)unit->loop_Origin;
|
||||
int32_t cond1 = (dev >= 0) ? dev : -dev;
|
||||
unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * SensTable_1[unit->loop_SensLevel]) >> 16;
|
||||
unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * g_loop_sens_list.sens[unit->loop_SensLevel].sens_out) >> 16;
|
||||
if (cond1 < (int32_t)unit->loop_dlt_ORG && abs_fd < (int32_t)unit->delta2
|
||||
&& abs_sd < (int32_t)unit->delta3) {
|
||||
unit->flat_ok_cnt++;
|
||||
@@ -624,7 +625,7 @@ void vd1_task_per_channel(Loop154_Unit *unit)
|
||||
/*================================================================
|
||||
* 有车状态 — cnt_release 防抖离开
|
||||
*================================================================*/
|
||||
unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * SensTable_1[unit->loop_SensLevel]) >> 16;
|
||||
unit->loop_dlt_ORG = ((uint32_t)unit->loop_Origin * g_loop_sens_list.sens[unit->loop_SensLevel].sens_out) >> 16;
|
||||
|
||||
if ((unit->loop_Origin - unit->loop_dlt_ORG) < unit->loop_CAPVD) {
|
||||
unit->loop_cnt_release++;
|
||||
|
||||
Reference in New Issue
Block a user