# main.py import time from config.settings import app_set_config from core.system import FeedingControlSystem from hardware import relay from hardware.relay import RelayController import threading import time import cv2 import os from core.state import FeedStatus def main(): system = FeedingControlSystem() system.relay_controller.close_all() # 启动视觉控制 # system.camera_controller.start_cameras() # system.start_visual_control() system.state._feed_status = FeedStatus.FCheckM system.start_lower_feeding() system.state.overflow_detected='未堆料' system.initialize() while True: time.sleep(5) # time.sleep(1) # system.relay_controller.control(system.relay_controller.DOOR_LOWER_OPEN, 'open') # system.vision_detector.detect_angle() # while True: # system.feeding_controller.pulse_control_door_for_maintaining() # time.sleep(5) # system.state.vehicle_aligned=True #假设在 fertilize room # system.state._upper_door_position='over_lower' # while True: # system.feeding_controller.pulse_control_door_for_maintaining() # time.sleep(4) # system.relay_controller.control(system.relay_controller.DOOR_LOWER_OPEN, 'open') # 加载配置 # 初始化系统 # replay_controller.control(replay_controller.DOOR_LOWER_OPEN, 'open') # time.sleep(1) # replay_controller.control(replay_controller.DOOR_LOWER_OPEN, 'close') # replay_controller.control(replay_controller.DOOR_LOWER_CLOSE, 'close') # replay_controller.control_upper_open() # replay_controller.control(replay_controller.DOOR_LOWER_OPEN, 'open') # time.sleep(5) # replay_controller.control(replay_controller.DOOR_LOWER_OPEN, 'close') # image=cv2.imread(os.path.join(app_set_config.project_root,'test.jpeg')) # image=cv2.flip(image, 0) # cv2.imshow('test',image) # cv2.waitKey(1) # replay_controller.control(system.relay_controller.DOOR_LOWER_OPEN, 'open') # system.state._feed_status=FeedStatus.FCheckM # cv2.namedWindow("控制系统", cv2.WND_PROP_VISIBLE) # cv2.setWindowProperty("控制系统", cv2.WND_PROP_VISIBLE, 0) # while True: # key = cv2.waitKey(100) & 0xFF # if key == ord('q') or key == 27: # 'q'键或ESC键 # print("接收到退出信号,正在关闭系统...") # break # time.sleep(1) # 减少CPU占用 # replay_controller.close_all() # system.relay_controller.control(system.relay_controller.DOOR_UPPER_OPEN, 'open') # system.relay_controller.control(system.relay_controller.DOOR_UPPER_CLOSE, 'close') # system.relay_controller.control(system.relay_controller.DOOR_UPPER_OPEN, 'open') # time.sleep(5) # system.relay_controller.control_upper_close() # system.relay_controller.control(system.relay_controller, 'close') # system.relay_controller.control(system.relay_controller.DOOR_UPPER_OPEN, 'open') # system.camera_controller.start_cameras() # loc_all_close=True # if loc_all_close: # relay=RelayController() # relay.control(relay.UPPER_TO_JBL, 'close') # relay.control(relay.UPPER_TO_ZD, 'close') # relay.control(relay.DOOR_LOWER_OPEN, 'close') # relay.control(relay.DOOR_LOWER_CLOSE, 'close') # relay.control(relay.DOOR_UPPER_OPEN, 'close') # relay.control(relay.DOOR_UPPER_CLOSE, 'close') # relay.control(relay.BREAK_ARCH_UPPER, 'close') # relay.control(relay.BREAK_ARCH_LOWER, 'close') # time.sleep(2) # system._alignment_check_loop() # system.relay_controller.control(system.relay_controller.DOOR_LOWER_OPEN, 'open') # time.sleep(2) # system.relay_controller.control(system.relay_controller.DOOR_UPPER_OPEN, 'close') # time.sleep(2) # system.relay_controller.control(system.relay_controller.DOOR_LOWER_CLOSE, 'open') # time.sleep(2) # system.relay_controller.control(system.relay_controller.DOOR_UPPER_CLOSE, 'close') # system.relay_controller.control(system.relay_controller.DOOR_LOWER_CLOSE, 'open') # time.sleep(5) # system.relay_controller.control(system.relay_controller.DOOR_LOWER_CLOSE, 'close') # system._visual_control_loop() # system.transmitter_controller.test_upper_weight=2*2500 # system.transmitter_controller.test_lower_weight=1000 # system.state.vehicle_aligned=True # # 启动调整线程 # weight_thread = threading.Thread(target=adjust_weights, args=(system,), daemon=True) # weight_thread.start() # system.state._upper_door_position='over_lower' # system._start_lower_feeding() if __name__ == "__main__": main()