fix bug :任务状态没有正确更新为 COMPLETED
This commit is contained in:
parent
fa779cb512
commit
f3fc9be86b
@ -39,6 +39,9 @@ class TaskManager
|
|||||||
int mode = 0, int duration = 0, int count = 0,
|
int mode = 0, int duration = 0, int count = 0,
|
||||||
const std::vector<ROUTE_INFO>& routeInfos = std::vector<ROUTE_INFO>());
|
const std::vector<ROUTE_INFO>& routeInfos = std::vector<ROUTE_INFO>());
|
||||||
|
|
||||||
|
// 只更新当前任务的状态
|
||||||
|
void updateCurrentTaskStatus(TaskStatus status);
|
||||||
|
|
||||||
// 获取当前任务名称
|
// 获取当前任务名称
|
||||||
std::string getCurrentTaskName();
|
std::string getCurrentTaskName();
|
||||||
|
|
||||||
|
|||||||
@ -147,6 +147,13 @@ ROUTE_INFO TaskManager::getCurrentRouteInfo()
|
|||||||
return ROUTE_INFO();
|
return ROUTE_INFO();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void TaskManager::updateCurrentTaskStatus(TaskStatus status)
|
||||||
|
{
|
||||||
|
std::lock_guard<std::mutex> lock(task_mutex_);
|
||||||
|
current_task_.status = status;
|
||||||
|
LOG_INFO("当前任务状态更新为: %d", status);
|
||||||
|
}
|
||||||
|
|
||||||
std::string TaskManager::getCurrentTaskName()
|
std::string TaskManager::getCurrentTaskName()
|
||||||
{
|
{
|
||||||
std::lock_guard<std::mutex> lock(task_mutex_);
|
std::lock_guard<std::mutex> lock(task_mutex_);
|
||||||
|
|||||||
@ -588,9 +588,10 @@ class TaskManagerNode : public rclcpp::Node
|
|||||||
dst << src.rdbuf();
|
dst << src.rdbuf();
|
||||||
LOG_INFO("路径文件复制成功");
|
LOG_INFO("路径文件复制成功");
|
||||||
|
|
||||||
// 重新设置状态为 RUNNING,让 PL 层继续工作
|
// 同时更新两个状态,保持任务继续运行
|
||||||
task_manager.setTaskStatus(1);
|
task_manager.setTaskStatus(1);
|
||||||
// 定时器会自动发布任务消息,PL 层会收到 task_status=1 并重新加载路径
|
task_manager.updateCurrentTaskStatus(TaskStatus::RUNNING);
|
||||||
|
// 定时器会自动发布任务消息,PL 层会重新加载路径
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -598,7 +599,19 @@ class TaskManagerNode : public rclcpp::Node
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 如果没有下一条路径,保持 COMPLETED 状态
|
else
|
||||||
|
{
|
||||||
|
// 最后一条路径完成,更新任务管理器内部状态为 COMPLETED
|
||||||
|
LOG_INFO("已完成全部路径,任务结束");
|
||||||
|
task_manager.setTaskStatus(TaskStatus::COMPLETED);
|
||||||
|
task_manager.updateCurrentTaskStatus(TaskStatus::COMPLETED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 如果不是 COMPLETED 状态,直接同步更新任务管理器的状态
|
||||||
|
task_manager.setTaskStatus(msg->task_status);
|
||||||
|
task_manager.updateCurrentTaskStatus(status_up);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user