1、image framework

This commit is contained in:
熊玮 2024-11-22 16:01:59 +08:00
parent 747d110897
commit d51db0bf36

View File

@ -196,6 +196,7 @@ class ImageFramework(EdgeComponent):
self.data_callback = None
self.location_thread = None
self.process_thread = None
self.thread_running = False
def configure(self, setting: Settings) -> None:
self.init_image_framework_sdk()
@ -272,19 +273,25 @@ class ImageFramework(EdgeComponent):
@service()
def stop(self):
if self.location_thread is not None:
self.location_thread.join()
if self.process_thread is not None:
self.process_thread.join()
self.image_framework_sdk.stop_sdk()
super().stop()
self.stop_location()
# self.image_framework_sdk.LibapiStop()
self.logger.info("Image framework stopped.")
@service()
def start_location(self):
self.thread_running = True
self.location_thread.start()
self.process_thread.start()
@service()
def stop_location(self):
self.thread_running = False
if self.location_thread is not None:
self.location_thread.join()
if self.process_thread is not None:
self.process_thread.join()
@service()
def start_detect(self):
global g_running_mode
@ -317,7 +324,7 @@ class ImageFramework(EdgeComponent):
global g_msg_cache, g_frame_cache, g_running_mode
# 打开广角摄像头
capture = cv2.VideoCapture(0)
while True:
while self.thread_running:
# 如果当前不是定位模式,不处理任何事务
if g_running_mode != RUNNING_MODE_LOCATION:
time.sleep(0.5)
@ -345,7 +352,7 @@ class ImageFramework(EdgeComponent):
def _main_processing_thread(self):
global g_msg_cache, g_frame_cache, g_running_mode
while True:
while self.thread_running:
if len(g_msg_cache) <= 0:
time.sleep(0.01)
continue