diff --git a/src/autonomy/pl/src/pl_node.cpp b/src/autonomy/pl/src/pl_node.cpp index d82ba01..1c5c2d3 100644 --- a/src/autonomy/pl/src/pl_node.cpp +++ b/src/autonomy/pl/src/pl_node.cpp @@ -107,7 +107,7 @@ class pl_node : public rclcpp::Node pthread_create(&pl_thread_t, NULL, pl_thread, NULL); LOG_INFO("started"); is_start = 1; - task_status = TaskStatus::PENDING; + task_status = TaskStatus::RUNNING; } else if (is_start == 1 && msg->task_status == 0) { @@ -231,9 +231,22 @@ class pl_node : public rclcpp::Node void timer_callback_task() { + // 仅在任务启动后才发布任务状态,避免初始化时的 PENDING 状态覆盖 task_manager 的 RUNNING 状态 + if (is_start == 0) + { + return; + } + // 创建消息 sweeper_interfaces::msg::Task message; message.task_status = task_status; + message.task_id = current_task_id; + message.task_name = current_task_name; + message.mode = current_task_mode; + message.duration = current_task_duration; + message.count = current_task_count; + message.route_name = current_route_name; + message.file_name = current_file_name; task_publisher_->publish(message); }