from re import U from hardware import transmitter from view.main_window import MainWindow import threading from .camera_controller import CameraController from .bottom_control_controller import BottomControlController from hardware.transmitter import TransmitterController from hardware.relay import RelayController class MainController: def __init__(self): # 主界面 self.main_window = MainWindow() # 定时器 self.timer = threading.Timer(5.0, self._onTimer) self.timer.start() # 每5秒触发一次 self.timer2=threading.Timer(1.0, self._onTimer2) self.timer2.start() # 每秒触发一次 self.angle=10 self.max_angle=60 self.min_angle=10 self.is_add=True # 初始化子界面 self._initSubViews() # 初始化子控制器 self._initSubControllers() # self.__connectSignals() def _onTimer(self): # 定时任务逻辑 # 变送器是 192.168.250.63,端口 502 loc_tra=TransmitterController(RelayController()) upper_weight=loc_tra.read_data(1) # 目前只有上料斗安装了变送器 # lower_weight=loc_tra.read_data(2) if upper_weight is not None: # upper_weight=0 self.main_window.hopper_widget.setUpperHopperWeight(upper_weight) # if lower_weight is None: # lower_weight=0 # self.main_window.hopper_widget.setUpperHopperWeight(upper_weight) # self.main_window.hopper_widget.setLowerHopperWeight(lower_weight) # 重新启动定时器以实现重复执行 self.timer = threading.Timer(5.0, self._onTimer) self.timer.start() pass def _onTimer2(self): # print(str(self.angle)) # 定时任务逻辑 if self.is_add: self.angle+=1 else: self.angle-=1 if self.angle>self.max_angle: self.is_add=False self.angle=self.max_angle if self.angle<=self.min_angle: self.is_add=True self.angle=10 self.main_window.hopper_widget.setLowerHopperOpeningAngle(self.angle) # 重新启动定时器以实现重复执行 self.timer2 = threading.Timer(1.0, self._onTimer2) self.timer2.start() pass def showMainWindow(self): # self.main_window.show() self.main_window.showFullScreen() self.main_window.dispatch_task_widget.set_task_time("task1","15:44 PM") self.main_window.dispatch_task_widget.set_task_time("task2","17:37 PM") self.main_window.segment_task_widget.set_task_time("task1","15:38 PM") self.main_window.segment_task_widget.set_task_time("task2","17:24 PM") def _initSubControllers(self): # 振捣视频控制 self.camera_controller = CameraController( video_view=self.main_window.vibration_video ) # 底部控制(按钮)控制器 self.bottom_control_controller = BottomControlController( bottom_control_widget=self.main_window.bottom_control_widget, main_window=self.main_window ) def _initSubViews(self): pass