fix: 去除3秒内只能射箭一次的限制
This commit is contained in:
@@ -289,7 +289,9 @@ def cmd_str():
|
||||
logger.info("系统准备完成...")
|
||||
|
||||
last_adc_trigger = 0
|
||||
trigger_adc_val = 0 # 触发时的气压值,气压需降回此值以下才能再次触发
|
||||
# 读取一次ADC初始值,防止开机时传感器已有压力导致误触发
|
||||
enable_check = True
|
||||
try:
|
||||
last_adc_val = hardware_manager.adc_obj.read()
|
||||
except Exception:
|
||||
@@ -384,13 +386,15 @@ def cmd_str():
|
||||
if len(pressure_buf) >= PRESSURE_BATCH_SIZE:
|
||||
_flush_pressure_buf("batch")
|
||||
# 突变增量检测:压力增量大于300时触发
|
||||
if (adc_val - last_adc_val) > 300:
|
||||
# 触发后需等气压降到触发值以下才重新检测增量
|
||||
if adc_val < trigger_adc_val :
|
||||
enable_check = True
|
||||
if (adc_val - last_adc_val) > 500 and enable_check:
|
||||
hardware_manager.start_idle_timer() # 重新计时
|
||||
diff_ms = current_time - last_adc_trigger
|
||||
if diff_ms < 3000:
|
||||
time.sleep_ms(5)
|
||||
continue
|
||||
last_adc_trigger = current_time
|
||||
trigger_adc_val = adc_val # 记录触发时的气压值
|
||||
last_adc_val = adc_val # 更新基准值,防止连续增量误触发
|
||||
enable_check = False
|
||||
_flush_pressure_buf("before_trigger")
|
||||
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user