通过配置路由不同的算法
This commit is contained in:
15
common/processor_factory.py
Normal file
15
common/processor_factory.py
Normal file
@@ -0,0 +1,15 @@
|
||||
from biz.checkpoint.checkpoint_biz import FrameProcessorWorker as CheckpointWorker
|
||||
from biz.prison.trajectory02_biz import FrameProcessorWorker as TrajectoryWorker
|
||||
from biz.prison.supervision_room_biz import FrameProcessorWorker as SupervisionWorker
|
||||
# ... 其他导入
|
||||
|
||||
PROCESSOR_MAP = {
|
||||
"checkpoint": CheckpointWorker,
|
||||
"trajectory": TrajectoryWorker,
|
||||
"supervision_room": SupervisionWorker,
|
||||
}
|
||||
|
||||
def get_processor(processor_type: str):
|
||||
if processor_type not in PROCESSOR_MAP:
|
||||
raise ValueError(f"Unknown processor type: {processor_type}")
|
||||
return PROCESSOR_MAP[processor_type]
|
||||
@@ -15,7 +15,11 @@ from dataclasses import dataclass
|
||||
|
||||
# from biz.checkpoint.checkpoint_biz import FrameProcessorWorker
|
||||
# from biz.prison.prison_biz import FrameProcessorWorker
|
||||
from biz.prison.trajectory02_biz import FrameProcessorWorker
|
||||
# from biz.prison.trajectory02_biz import FrameProcessorWorker
|
||||
# from biz.prison.supervision_room_biz import FrameProcessorWorker
|
||||
|
||||
from common.processor_factory import get_processor
|
||||
|
||||
from common.camera_config import CameraConfig, parse_cameras_from_json, parse_cameras_from_yaml
|
||||
from common.contants import init_config
|
||||
from utils.web_socket_sender import WebSocketSender
|
||||
@@ -294,7 +298,7 @@ class HLSKadianService:
|
||||
self.ws_queue = queue.Queue(maxsize=1000) # WebSocket队列
|
||||
|
||||
self.frame_processor_workers = []
|
||||
self.biz_processor = FrameProcessorWorker(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
|
||||
self.biz_processor = get_processor(self.algorithm)(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
|
||||
self.ws_sender = WebSocketSender(self.ws_queue, self.stop_event, self.ws_host, self.ws_port)
|
||||
|
||||
def start(self):
|
||||
|
||||
@@ -11,7 +11,7 @@ import argparse
|
||||
import threading
|
||||
import queue
|
||||
|
||||
from biz.checkpoint.checkpoint_biz import FrameProcessorWorker
|
||||
from common.processor_factory import get_processor
|
||||
from common.camera_config import CameraConfig, parse_cameras_from_json, parse_cameras_from_yaml
|
||||
from common.contants import init_config
|
||||
from test_cam import get_camera_preview_url
|
||||
@@ -178,7 +178,7 @@ class RTSPService:
|
||||
self.ws_queue = queue.Queue(maxsize=1000)
|
||||
|
||||
self.capture_workers = []
|
||||
self.processor = FrameProcessorWorker(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
|
||||
self.biz_processor = get_processor(self.algorithm)(self.raw_queue, self.ws_queue, self.stop_event, self.cameras)
|
||||
self.ws_sender = WebSocketSender(self.ws_queue, self.stop_event, self.ws_host, self.ws_port)
|
||||
|
||||
def start(self):
|
||||
|
||||
Reference in New Issue
Block a user