Files
Feeding_control_system/controller/main_controller.py
2025-11-01 18:52:19 +08:00

95 lines
3.0 KiB
Python

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):
# 定时任务逻辑
loc_tra=TransmitterController(RelayController())
upper_weight=loc_tra.read_data(1)
lower_weight=loc_tra.read_data(2)
if upper_weight is None:
upper_weight=0
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.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