Files
Feeding_control_system/controller/camera_controller.py
2025-10-31 18:52:35 +08:00

45 lines
1.9 KiB
Python

# controller/camera_controller.py
from view.widgets.vibration_video_widget import VibrationVideoWidget
from .config_loader import load_camera_config
class CameraController:
def __init__(self, video_view: VibrationVideoWidget):
self.video_view = video_view
self._init_camera_configs()
def _init_camera_configs(self):
try:
# 加载配置
cam1_config = load_camera_config("上位料斗")
cam2_config = load_camera_config("下位料斗")
cam3_config = load_camera_config("模具车")
# print("rtsp_url1:", cam1_config["rtsp_url"])
# print("rtsp_url2:", cam2_config["rtsp_url"])
# print("rtsp_url3:", cam3_config["rtsp_url"])
# 设置 camera_urls
self.video_view.set_camera_urls(
cam1_url=cam1_config["rtsp_url"],
cam2_url=cam2_config["rtsp_url"],
cam3_url=cam3_config["rtsp_url"]
)
# 初始化视频流
self.video_view.init_streams()
self._connect_signals()
except Exception as e:
print(f"初始化摄像头配置失败: {e}")
def _connect_signals(self):
# 流Stream的异常错误 触发 显示重连按钮
self.video_view.stream1.error_signal.connect(lambda name, msg: self.video_view.onStreamError(name))
self.video_view.stream2.error_signal.connect(lambda name, msg: self.video_view.onStreamError(name))
self.video_view.stream3.error_signal.connect(lambda name, msg: self.video_view.onStreamError(name))
# 视频显示模组的 重连信号 连接 流Stream的重连函数
self.video_view.cam1.reset_signal.connect(self.video_view.stream1.reset_retry)
self.video_view.cam2.reset_signal.connect(self.video_view.stream2.reset_retry)
self.video_view.cam3.reset_signal.connect(self.video_view.stream3.reset_retry)