if (agvs[i].getBattery() < safe_battery_level) { bool has_charge_task = false; for (int k = 0; k < tasks.size(); k++) { if (tasks[k].a_id == agvs[i].id_ && tasks[k].Task_type == 1 && !tasks[k].completed ) { has_charge_task = true; break; }} if (!has_charge_task ) { for (int j = 0; j < charges.size(); j++) { if (charges[j].charge_available == true) { charges[j].setavailable(false); for (int k = 0; k < tasks.size(); k++) { if (tasks[k].id > max_task_id) { max_task_id = tasks[k].id; } if (tasks[k].Task_type == 1 && tasks[k].priority > max_charge_priority) { max_charge_priority = tasks[k].priority; } } charge_task_id = max_task_id + 1; charge_task_priority = max_charge_priority + 1; Task charge_task(charge_task_id, agvs[i].current_x, agvs[i].current_y, charges[j].charge_x, charges[j].charge_y, charge_task_priority, 0, agvs[i].id_, 1); tasks.push_back(charge_task); break; } } } }
时间: 2024-02-15 16:28:54 浏览: 66
AGVS.rar_AGVS调度_gulf5j4_scheduling AGV_wpf agv调度系统_调度控制
5星 · 资源好评率100%
这段代码看起来像是一个机器人 AGV(Automated Guided Vehicle)的任务分配部分。如果 AGV 的电量低于安全电量,那么会检查 AGV 是否有充电任务,如果没有则会为其分配一个充电任务。这个充电任务会在 available 的充电桩中找到一个,并设置为不可用,然后会根据已有任务的最大 ID 和最大优先级创建一个新的充电任务,并将其加入到任务列表中。
阅读全文