0209整理
This commit is contained in:
@ -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()
|
||||
|
||||
#获取diff(diff_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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user