pref: 拍照更快
This commit is contained in:
@@ -120,9 +120,9 @@ def cmd_str():
|
||||
|
||||
# ==================== 第二阶段:软件初始化 ====================
|
||||
|
||||
# 1. 初始化日志系统
|
||||
# 1. 初始化日志系统(WARNING级别,不打印/写入INFO和DEBUG日志,提高执行流畅度)
|
||||
import logging
|
||||
logger_manager.init_logging(log_level=logging.DEBUG)
|
||||
logger_manager.init_logging(log_level=logging.WARNING)
|
||||
logger = logger_manager.logger
|
||||
|
||||
# 补充:因为初始化的时候,激光会亮,先关了它
|
||||
@@ -278,6 +278,8 @@ def cmd_str():
|
||||
logger.info("系统准备完成...")
|
||||
|
||||
last_adc_trigger = 0
|
||||
_latest_frame = None # 预读的最新帧缓存,供射箭触发时减少延迟
|
||||
_frame_read_counter = 0 # 相机预读计数器,避免每帧都读拖慢CPU
|
||||
# 气压采样:减少日志频率(每 N 个点输出一条),避免 logger.debug 拖慢采样
|
||||
PRESSURE_BATCH_SIZE = 100
|
||||
|
||||
@@ -389,7 +391,8 @@ def cmd_str():
|
||||
_flush_pressure_buf("before_trigger")
|
||||
|
||||
try:
|
||||
process_shot(adc_val)
|
||||
process_shot(adc_val, pre_frame=_latest_frame)
|
||||
_latest_frame = None
|
||||
except Exception as e:
|
||||
logger = logger_manager.logger
|
||||
if logger:
|
||||
@@ -399,13 +402,18 @@ def cmd_str():
|
||||
time.sleep_ms(100)
|
||||
continue
|
||||
else:
|
||||
if config.SHOW_CAMERA_PHOTO_WHILE_SHOOTING:
|
||||
# 每3次循环预读一次相机帧(~15ms间隔),平衡buffer新鲜度与CPU占用
|
||||
_frame_read_counter += 1
|
||||
if _frame_read_counter >= 3:
|
||||
_frame_read_counter = 0
|
||||
try:
|
||||
camera_manager.show(camera_manager.read_frame())
|
||||
_latest_frame = camera_manager.read_frame()
|
||||
if config.SHOW_CAMERA_PHOTO_WHILE_SHOOTING and _latest_frame is not None:
|
||||
camera_manager.show(_latest_frame)
|
||||
except Exception as e:
|
||||
logger = logger_manager.logger
|
||||
if logger:
|
||||
logger.error(f"[MAIN] 显示异常: {e}")
|
||||
logger.error(f"[MAIN] 预读/显示异常: {e}")
|
||||
time.sleep_ms(5)
|
||||
|
||||
except Exception as e:
|
||||
|
||||
Reference in New Issue
Block a user