0209整理

This commit is contained in:
2026-02-10 10:18:17 +08:00
parent d6ad01274a
commit 6e74eaf206
62 changed files with 838 additions and 9136 deletions

View File

@ -33,14 +33,17 @@ class VisualCallback:
# cls._instance = super().__new__(cls)
# return cls._instance
def __init__(self,state:SystemState=None):
def __init__(self,
relay_controller:RelayController,
transmitter_controller:TransmitterController,
state:SystemState=None):
"""初始化视觉回调处理器"""
# 避免重复初始化
if hasattr(self, '_initialized') and self._initialized:
return
self.relay_controller = RelayController()
self.transmitter_controller = TransmitterController(self.relay_controller)
self.relay_controller = relay_controller
self.transmitter_controller = transmitter_controller
self.pd_record_bll=PDRecordBll()
self.state=state
@ -87,48 +90,9 @@ class VisualCallback:
self._cur_mould_model=None
# self.db_queue=queue.Queue()
# self.plc_data=5
self.plc_service = OmronFinsPollingService("192.168.250.233")
self.plc_service.register_data_callback(self.on_plc_update)
# self.plc_service.register_status_callback(self.on_status_change)
self.plc_service.start_polling(interval=2.0)
# 获取视觉数据线程angle_visual_callback推送的数据并进行处理注意处理视觉进行夹角控制
self.callback_thread = threading.Thread(
target=self._run_thread_loop,
daemon=True
)
self.callback_thread.start()
# 启动下料线程检测
self.feed_thread = threading.Thread(
target=self._run_feed,
daemon=True
)
self.feed_thread.start()
#启动振动线程
self.monitor_thread = threading.Thread(
target=self._monitor_loop,
daemon=True,
name='monitor'
)
self.monitor_thread.start()
#获取diffdiff_visual_callback推送的数据数据线程
self.diff_thread = threading.Thread(
target=self._diff_temp,
daemon=True
)
self.diff_thread.start()
"""启动数据库监控"""
# self.db_thread = threading.Thread(
# target=self._monitor_db_loop,
# daemon=True,
# name='db_monitor'
# )
# self.db_thread.start()
# 获取视觉数据线程angle_visual_callback推送的数据并进行处理注意处理视觉进行夹角控制
self.callback_thread = None
self.diff_thread = None
def init_val(self):
#初始化值
@ -197,6 +161,20 @@ class VisualCallback:
self._point_speed_grade=0
self._point_weight=0
def start_visual_thread(self)->bool:
"""浇筑状态回调线程"""
self.callback_thread = threading.Thread(
target=self._run_thread_loop,
daemon=True
)
self.callback_thread.start()
#diff线程值传递后处理
self.diff_thread = threading.Thread(
target=self._diff_temp,
daemon=True
)
self.diff_thread.start()
return True
def angle_visual_callback(self, current_angle, overflow_detected, mould_aligned):
"""
@ -313,7 +291,7 @@ class VisualCallback:
_temp_area_str=''
time.sleep(1)
def _monitor_loop(self):
def _arch_loop(self):
"""破拱线程"""
while self._is_running:
try:
@ -1380,17 +1358,12 @@ class VisualCallback:
self.is_start_visual=False
# #关闭下料斗
# self.safe_control_lower_close()
if self.plc_service:
self.plc_service.stop_polling()
# 等待线程结束
if self.callback_thread.is_alive():
self.callback_thread.join(timeout=1.0)
if self.feed_thread.is_alive():
self.feed_thread.join(timeout=1.0)
if self.monitor_thread.is_alive():
self.monitor_thread.join(timeout=1.0)
if self.diff_thread:
self.diff_thread.join(timeout=1.0)
# self.relay_controller._close_lower_5s