// while (!all_task_completed) { // // 初始化标志变量为 true // all_tasks_completed = true; // // 遍历所有任务,判断是否有任务未完成 // for (int i = 0; i < tasks.size(); i++) { // if (tasks[i].completed == 0) //任務未分配 // { // all_tasks_completed = false;//有任務沒完成 // break; // } // } // // 如果所有任务都已完成,则退出循环 // if (all_tasks_completed) //任務都做完了,退出 // { // break; // } //},修改爲,遍歷所有任務,如果所有任務的completed爲2,則推出循環
时间: 2023-09-16 16:12:49 浏览: 31
你的修改建议是将原本的任务是否完成的判断改为判断所有任务的completed属性是否都为2,如果是则退出循环。可以这样实现:
```
while (true) {
bool all_tasks_completed = true;
for (int i = 0; i < tasks.size(); i++) {
if (tasks[i].completed != 2) {
all_tasks_completed = false;
break;
}
}
if (all_tasks_completed) {
break;
}
}
```
这样就可以遍历所有任务,判断所有任务的completed属性是否都为2,如果是则退出循环。
相关问题
AGVScheduler scheduler; scheduler.assign_task_to_agv(tasks, agvs); bool all_tasks_completed = false; while (!all_tasks_completed) { // 初始化标志变量为 true all_tasks_completed = true; // 遍历所有任务,判断是否有任务未完成 for (int i = 0; i < tasks.size(); i++) { if (tasks[i].completed != 2) { all_tasks_completed = false; break; } } // 如果所有任务都已完成,则退出循环 if (all_tasks_completed) { break; } // 遍历所有 AGV,更新位置和状态 for (int i = 0; i < agvs.size(); i++) { if (agvs[i].available_ == false) { moveAgvs(i); } } }
这段代码是一个循环,用于实现 AGV 调度和任务执行。具体来说,代码中首先通过 AGVScheduler 类的 assign_task_to_agv 函数将任务分配给 AGV,并初始化 all_tasks_completed 标志变量为 false。
然后进入 while 循环,循环条件为 !all_tasks_completed,即只要有任务未完成就继续循环。在循环中,先遍历所有任务,判断是否有任务未完成。如果有未完成的任务,则将 all_tasks_completed 标志变量赋值为 false,并跳出循环。
接着,如果所有任务都已完成,则直接退出循环。否则,遍历所有 AGV,更新 AGV 的位置和状态,然后继续下一轮循环。
总的来说,这段代码实现了 AGV 调度和任务执行的循环过程,直到所有任务都被完成。
/var/log/cups/ 目录下没有 page_log 文件
如果您的CUPS打印系统没有生成`/var/log/cups/page_log`日志文件,可以尝试使用以下方法查询已完成的打印任务的打印页数:
1. 查看已完成打印任务的ID
```
lpstat -W completed -o
```
该命令将列出所有已完成的打印任务的ID。
2. 查询每个打印任务的打印页数
```
lpq -l -J job_id | grep "pages" | awk '{print $2}'
```
将上述命令中`job_id`替换为具体的打印任务ID,即可查询该打印任务的打印页数。
例如,要查询ID为123的已完成打印任务的打印页数,可以使用以下命令:
```
lpq -l -J 123 | grep "pages" | awk '{print $2}'
```
该命令将输出打印任务123的打印页数。
需要注意的是,这种方法需要逐个查询每个打印任务的打印页数,比较繁琐。如果您需要查询多个打印任务的打印页数,可以编写脚本自动查询并输出结果。