while (true) { bool all_tasks_completed = true; for (int j = 0; j < tasks.size(); j++) { if (tasks[j].completed = 0) { all_tasks_completed = false; break; } } AGVScheduler scheduler; scheduler.assign_task_to_agv(tasks, agvs);//開始分配任務 // 遍历所有 AGV,更新位置和状态 for (int i = 0; i < agvs.size(); i++) { if (agvs[i].available_ == false) { moveAgvs(i); std:: cout << "agv.id:"<< agvs[i].id_ << "___task.id :" << agvs[i].task_id << endl; } } if (all_tasks_completed) { break; } }
时间: 2024-02-15 15:27:47 浏览: 58
MFC.rar_MFC bool_True
这段代码看起来是一个 AGV 调度系统的主循环。在每次循环中,系统会检查所有任务是否已经完成,如果没有完成则开始分配任务给 AGV 并更新 AGV 的位置和状态。如果所有任务都已经完成,则退出循环。
其中,AGVScheduler 是一个 AGV 调度器类,assign_task_to_agv() 函数用于将任务分配给 AGV,moveAgvs() 函数用于更新 AGV 的位置和状态。在 AGV 更新位置和状态时,代码会输出 AGV 的 ID 和当前正在执行的任务的 ID。
需要注意的是,代码中的 if (tasks[j].completed = 0) 应该是 if (tasks[j].completed == 0),因为这里应该是判断任务是否已经完成,应该使用双等号来进行比较。
阅读全文