2025-11-01 18:52:19 +08:00
|
|
|
from re import U
|
|
|
|
|
from hardware import transmitter
|
2025-10-18 18:29:40 +08:00
|
|
|
from view.main_window import MainWindow
|
2025-11-01 18:52:19 +08:00
|
|
|
import threading
|
2025-10-31 18:52:31 +08:00
|
|
|
from .camera_controller import CameraController
|
|
|
|
|
from .bottom_control_controller import BottomControlController
|
2025-11-01 18:52:19 +08:00
|
|
|
from hardware.transmitter import TransmitterController
|
|
|
|
|
from hardware.relay import RelayController
|
2025-10-18 18:29:40 +08:00
|
|
|
|
|
|
|
|
class MainController:
|
|
|
|
|
def __init__(self):
|
|
|
|
|
# 主界面
|
|
|
|
|
self.main_window = MainWindow()
|
2025-11-01 18:52:19 +08:00
|
|
|
# 定时器
|
|
|
|
|
self.timer = threading.Timer(5.0, self._onTimer)
|
|
|
|
|
self.timer.start() # 每5秒触发一次
|
2025-10-18 18:29:40 +08:00
|
|
|
|
2025-11-01 18:52:19 +08:00
|
|
|
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
|
2025-10-18 18:29:40 +08:00
|
|
|
# 初始化子界面
|
|
|
|
|
self._initSubViews()
|
|
|
|
|
|
|
|
|
|
# 初始化子控制器
|
2025-10-31 18:52:31 +08:00
|
|
|
self._initSubControllers()
|
2025-11-01 18:52:19 +08:00
|
|
|
|
2025-10-18 18:29:40 +08:00
|
|
|
|
|
|
|
|
# self.__connectSignals()
|
|
|
|
|
|
2025-11-01 18:52:19 +08:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2025-10-18 18:29:40 +08:00
|
|
|
def showMainWindow(self):
|
|
|
|
|
self.main_window.show()
|
2025-11-01 18:52:19 +08:00
|
|
|
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")
|
|
|
|
|
|
|
|
|
|
|
2025-10-18 18:29:40 +08:00
|
|
|
|
2025-10-31 18:52:31 +08:00
|
|
|
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
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
2025-10-18 18:29:40 +08:00
|
|
|
def _initSubViews(self):
|
2025-10-31 18:52:31 +08:00
|
|
|
pass
|