fix: 去除3秒内只能射箭一次的限制

This commit is contained in:
2026-08-28 17:11:51 +08:00
parent d30c432143
commit 0c8ab1508f
4 changed files with 14 additions and 10 deletions
+9 -5
View File
@@ -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: