diff --git a/src/communication/task_manager/src/task_manager_main.cpp b/src/communication/task_manager/src/task_manager_main.cpp index 333b053..7f86c04 100644 --- a/src/communication/task_manager/src/task_manager_main.cpp +++ b/src/communication/task_manager/src/task_manager_main.cpp @@ -618,9 +618,17 @@ class TaskManagerNode : public rclcpp::Node else { // 如果不是 PATH_FINISHED 状态,直接同步更新任务管理器的状态 - LOG_INFO_THROTTLE(5000, "更新任务状态: %d", msg->task_status); - task_manager.setTaskStatus(msg->task_status); - task_manager.updateCurrentTaskStatus(status_up); + // 但忽略来自PL的COMPLETED状态,避免stop后状态被覆盖 + if (msg->task_status != TaskStatus::COMPLETED) + { + LOG_INFO_THROTTLE(5000, "更新任务状态: %d", msg->task_status); + task_manager.setTaskStatus(msg->task_status); + task_manager.updateCurrentTaskStatus(status_up); + } + else + { + LOG_DEBUG("忽略PL的COMPLETED状态,避免stop后状态被覆盖"); + } } } else