From 2d465ca83db254280af7b540a0a7b3e8e6f98194 Mon Sep 17 00:00:00 2001 From: bmy <2583236812@qq.com> Date: Fri, 14 Jun 2024 15:12:13 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E4=B8=8A=E6=AC=A1?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E6=97=B6=E8=B0=83=E8=AF=95=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 108 +++++++++++++++++++++++++++----------------------------- 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/main.py b/main.py index 5758090..b196be4 100644 --- a/main.py +++ b/main.py @@ -18,64 +18,62 @@ cfg_main = toml.load('cfg_main.toml') # 配置日志输出 logger.add(cfg_main['debug']['logger_filename'], format=cfg_main['debug']['logger_format'], retention = 5, level="INFO") -act.move.lane(15, 5) +# 向任务队列添加任务 +task_queue = queue.Queue() +task_queue.put(sb.task(sb.get_block1, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) +task_queue.put(sb.task(sb.get_block2, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) +task_queue.put(sb.task(sb.put_block, cfg_main['find_counts']['PutBlock_counts'], cfg_main['task']['GetBlock_enable'])) +task_queue.put(sb.task(sb.get_bball, cfg_main['find_counts']['GetBBall_counts'], cfg_main['task']['GetBBall_enable'])) +# TODO 添加一个空任务用于提前降 z 轴 +task_queue.put(sb.task(sb.up_tower, cfg_main['find_counts']['UpTower_counts'], cfg_main['task']['UpTower_enable'])) +task_queue.put(sb.task(sb.get_rball, cfg_main['find_counts']['GetRBall_counts'], cfg_main['task']['GetRBall_enable'])) +task_queue.put(sb.task(sb.put_bball, cfg_main['find_counts']['PutBBall_counts'], cfg_main['task']['GetBBall_enable'] and cfg_main['task']['PutBBall_enable'])) +task_queue.put(sb.task(sb.put_hanoi1, cfg_main['find_counts']['PutHanoi1_counts'], True)) # 无论是否进行任务,检测标识并转向都是必须进行的 +task_queue.put(sb.task(sb.put_hanoi2, cfg_main['find_counts']['PutHanoi2_counts'], cfg_main['task']['PutHanoi_enable'])) +task_queue.put(sb.task(sb.put_hanoi3, cfg_main['find_counts']['PutHanoi2_counts'], cfg_main['task']['PutHanoi_enable'])) +task_queue.put(sb.task(sb.move_area1, cfg_main['find_counts']['MoveArea1_counts'], cfg_main['task']['MoveArea_enable'])) +task_queue.put(sb.task(sb.move_area2, cfg_main['find_counts']['MoveArea2_counts'], cfg_main['task']['MoveArea_enable'])) +task_queue.put(sb.task(sb.kick_ass, cfg_main['find_counts']['KickAss_counts'], cfg_main['task']['KickAss_enable'])) -# # 向任务队列添加任务 -# task_queue = queue.Queue() -# task_queue.put(sb.task(sb.get_block1, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) -# task_queue.put(sb.task(sb.get_block2, cfg_main['find_counts']['GetBlock_counts'], cfg_main['task']['GetBlock_enable'])) -# task_queue.put(sb.task(sb.put_block, cfg_main['find_counts']['PutBlock_counts'], cfg_main['task']['GetBlock_enable'])) -# task_queue.put(sb.task(sb.get_bball, cfg_main['find_counts']['GetBBall_counts'], cfg_main['task']['GetBBall_enable'])) -# # TODO 添加一个空任务用于提前降 z 轴 -# task_queue.put(sb.task(sb.up_tower, cfg_main['find_counts']['UpTower_counts'], cfg_main['task']['UpTower_enable'])) -# task_queue.put(sb.task(sb.get_rball, cfg_main['find_counts']['GetRBall_counts'], cfg_main['task']['GetRBall_enable'])) -# task_queue.put(sb.task(sb.put_bball, cfg_main['find_counts']['PutBBall_counts'], cfg_main['task']['GetBBall_enable'] and cfg_main['task']['PutBBall_enable'])) -# task_queue.put(sb.task(sb.put_hanoi1, cfg_main['find_counts']['PutHanoi1_counts'], True)) # 无论是否进行任务,检测标识并转向都是必须进行的 -# task_queue.put(sb.task(sb.put_hanoi2, cfg_main['find_counts']['PutHanoi2_counts'], cfg_main['task']['PutHanoi_enable'])) -# task_queue.put(sb.task(sb.put_hanoi3, cfg_main['find_counts']['PutHanoi2_counts'], cfg_main['task']['PutHanoi_enable'])) -# task_queue.put(sb.task(sb.move_area1, cfg_main['find_counts']['MoveArea1_counts'], cfg_main['task']['MoveArea_enable'])) -# task_queue.put(sb.task(sb.move_area2, cfg_main['find_counts']['MoveArea2_counts'], cfg_main['task']['MoveArea_enable'])) -# task_queue.put(sb.task(sb.kick_ass, cfg_main['find_counts']['KickAss_counts'], cfg_main['task']['KickAss_enable'])) +# 将任务队列传入调度模块中 +task_queuem_t = sb.task_queuem(task_queue) -# # 将任务队列传入调度模块中 -# task_queuem_t = sb.task_queuem(task_queue) +# 创建任务队列的工作线程 +def worker_thread(): + while task_queuem_t.exec() is True: + pass -# # 创建任务队列的工作线程 -# def worker_thread(): -# while task_queuem_t.exec() is True: -# pass +# 启动工作线程 +worker = threading.Thread(target=worker_thread, daemon=True) +worker.start() +# if (cmd_py_obj.send_angle_camera(180) == -1): +# cmd_py_obj.send_angle_camera(180) +cmd_py_obj.send_position_axis_x(1, 140) +time.sleep(0.5) +cmd_py_obj.send_angle_storage(20) +time.sleep(0.5) +cmd_py_obj.send_angle_scoop(25) +time.sleep(2) -# # 启动工作线程 -# worker = threading.Thread(target=worker_thread, daemon=True) -# worker.start() -# # if (cmd_py_obj.send_angle_camera(180) == -1): -# # cmd_py_obj.send_angle_camera(180) -# cmd_py_obj.send_position_axis_x(1, 140) -# time.sleep(0.5) -# cmd_py_obj.send_angle_storage(20) -# time.sleep(0.5) -# cmd_py_obj.send_angle_scoop(25) -# time.sleep(2) +# 创建主任务 +main_task_t = mj.main_task(cmd_py_obj) # 初始化时传入 zmq socket 对象 -# # 创建主任务 -# main_task_t = mj.main_task(cmd_py_obj) # 初始化时传入 zmq socket 对象 +# 主线程仅在子线程搜索 (SEARCHING) 和 空闲 (IDLE) 状态下进行操作 +# while task_queuem_t.busy is True: +try: + while True: + if task_queuem_t.status is sb.task_queuem_status.EXECUTING: + pass + else: + main_task_t.run() + pass +except KeyboardInterrupt: + logger.info("Interrupt received, stopping...") + # 停车 + for _ in range(3): + cmd_py_obj.send_speed_x(0) + time.sleep(0.1) + cmd_py_obj.send_speed_omega(0) + time.sleep(0.1) -# # 主线程仅在子线程搜索 (SEARCHING) 和 空闲 (IDLE) 状态下进行操作 -# # while task_queuem_t.busy is True: -# try: -# while True: -# if task_queuem_t.status is sb.task_queuem_status.EXECUTING: -# pass -# else: -# main_task_t.run() -# pass -# except KeyboardInterrupt: -# logger.info("Interrupt received, stopping...") -# # 停车 -# for _ in range(3): -# cmd_py_obj.send_speed_x(0) -# time.sleep(0.1) -# cmd_py_obj.send_speed_omega(0) -# time.sleep(0.1) - -# logger.info("Main thread exit") +logger.info("Main thread exit")