2024-05-21 23:53:47 +08:00
|
|
|
import toml
|
|
|
|
|
import queue
|
|
|
|
|
import threading
|
|
|
|
|
from loguru import logger
|
|
|
|
|
import subtask as sb
|
2024-05-22 16:58:53 +08:00
|
|
|
import majtask as mj
|
2024-05-21 23:53:47 +08:00
|
|
|
|
|
|
|
|
# 读取配置
|
|
|
|
|
cfg_main = toml.load('cfg_main.toml')
|
|
|
|
|
|
|
|
|
|
# 配置日志输出
|
2024-05-22 12:37:15 +08:00
|
|
|
logger.add(cfg_main['debug']['logger_filename'], format=cfg_main['debug']['logger_format'], retention = 5, level="INFO")
|
2024-05-21 23:53:47 +08:00
|
|
|
|
2024-05-22 16:58:53 +08:00
|
|
|
# 向任务队列添加任务
|
2024-05-22 12:37:15 +08:00
|
|
|
task_queue = queue.Queue()
|
|
|
|
|
task_queue.put(sb.task(sb.get_block.exec, sb.get_block.find, cfg_main['task']['GetBlock_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.put_block.exec, sb.put_block.find, cfg_main['task']['PutBlock_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.get_bball.exec, sb.get_bball.find, cfg_main['task']['GetBBall_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.up_tower.exec, sb.up_tower.find, cfg_main['task']['UpTower_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.get_rball.exec, sb.get_rball.find, cfg_main['task']['GetRBall_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.put_bball.exec, sb.put_bball.find, cfg_main['task']['PutBBall_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.put_hanoi.exec, sb.put_hanoi.find, cfg_main['task']['PutHanoi_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.move_area.exec, sb.move_area.find, cfg_main['task']['MoveArea_enable']))
|
|
|
|
|
task_queue.put(sb.task(sb.kick_ass.exec, sb.kick_ass.find, cfg_main['task']['KickAss_enable']))
|
2024-05-21 23:53:47 +08:00
|
|
|
|
2024-05-22 16:58:53 +08:00
|
|
|
# 将任务队列传入调度模块中
|
2024-05-21 23:53:47 +08:00
|
|
|
task_queuem_t = sb.task_queuem(task_queue)
|
|
|
|
|
|
2024-05-22 16:58:53 +08:00
|
|
|
# 创建任务队列的工作线程
|
2024-05-21 23:53:47 +08:00
|
|
|
def worker_thread():
|
|
|
|
|
while task_queuem_t.exec() is True:
|
|
|
|
|
pass
|
|
|
|
|
|
2024-05-22 16:58:53 +08:00
|
|
|
# 启动工作线程
|
2024-05-21 23:53:47 +08:00
|
|
|
worker = threading.Thread(target=worker_thread, daemon=True)
|
|
|
|
|
worker.start()
|
|
|
|
|
|
2024-05-22 16:58:53 +08:00
|
|
|
# 创建主任务
|
|
|
|
|
main_task_t = mj.main_task(None) # TODO 初始化时传入 zmq socket 对象
|
|
|
|
|
|
2024-05-21 23:53:47 +08:00
|
|
|
# 主线程仅在子线程搜索 (SEARCHING) 和 空闲 (IDLE) 状态下进行操作
|
|
|
|
|
while task_queuem_t.busy is True:
|
|
|
|
|
if task_queuem_t.status is sb.task_queuem_status.EXECUTING:
|
|
|
|
|
pass
|
|
|
|
|
else:
|
|
|
|
|
# 模拟执行回归任务
|
2024-05-22 12:37:15 +08:00
|
|
|
# logger.info("***** sim huigui task *****")
|
2024-05-22 16:58:53 +08:00
|
|
|
main_task_t.run()
|
2024-05-22 12:37:15 +08:00
|
|
|
pass
|
2024-05-21 23:53:47 +08:00
|
|
|
|
|
|
|
|
logger.info("Main thread exit")
|