fix: report only enabled color queue statistics

This commit is contained in:
slz
2026-08-19 16:35:13 +08:00
parent c141430c62
commit db4df46c03
+26 -12
View File
@@ -477,19 +477,30 @@ void OBCameraNode::getColorQueueStatsCallback(
{"max_queue_wait_ms", stats.max_queue_wait_ms}, {"max_queue_wait_ms", stats.max_queue_wait_ms},
}; };
}; };
nlohmann::json queues; nlohmann::json queues;
queues["color"] = to_json(getColorQueueStats(color_frame_queue_, color_frame_queue_lock_, uint64_t overflow_count = 0;
color_frame_queue_stats_, if (enable_stream_[COLOR]) {
color_frame_queue_max_frames_, request->data)); const auto stats =
queues["left_color"] = to_json(getColorQueueStats( getColorQueueStats(color_frame_queue_, color_frame_queue_lock_, color_frame_queue_stats_,
left_color_frame_queue_, left_color_frame_queue_lock_, left_color_frame_queue_stats_, color_frame_queue_max_frames_, request->data);
left_color_frame_queue_max_frames_, request->data)); queues["color"] = to_json(stats);
queues["right_color"] = to_json(getColorQueueStats( overflow_count += stats.overflow_count;
right_color_frame_queue_, right_color_frame_queue_lock_, right_color_frame_queue_stats_, }
right_color_frame_queue_max_frames_, request->data)); if (enable_stream_[COLOR_LEFT]) {
const uint64_t overflow_count = queues["color"]["overflow_count"].get<uint64_t>() + const auto stats = getColorQueueStats(left_color_frame_queue_, left_color_frame_queue_lock_,
queues["left_color"]["overflow_count"].get<uint64_t>() + left_color_frame_queue_stats_,
queues["right_color"]["overflow_count"].get<uint64_t>(); left_color_frame_queue_max_frames_, request->data);
queues["left_color"] = to_json(stats);
overflow_count += stats.overflow_count;
}
if (enable_stream_[COLOR_RIGHT]) {
const auto stats = getColorQueueStats(right_color_frame_queue_, right_color_frame_queue_lock_,
right_color_frame_queue_stats_,
right_color_frame_queue_max_frames_, request->data);
queues["right_color"] = to_json(stats);
overflow_count += stats.overflow_count;
}
response->success = true; response->success = true;
response->message = response->message =
nlohmann::json{ nlohmann::json{
@@ -499,6 +510,9 @@ void OBCameraNode::getColorQueueStatsCallback(
{"queues", queues}, {"queues", queues},
} }
.dump(); .dump();
if (queues.empty()) {
RCLCPP_WARN(logger_, "No enabled color streams; color queue statistics are empty");
}
} catch (const std::exception& error) { } catch (const std::exception& error) {
response->success = false; response->success = false;
response->message = error.what(); response->message = error.what();