From c30d12e2e382136afd03630378b3d853e3608f98 Mon Sep 17 00:00:00 2001 From: Ryohei Ueda Date: Mon, 6 Jul 2015 16:25:45 +0900 Subject: [PATCH] [jsk_topic_tools] Add number of subscribers to diagnostic information --- jsk_topic_tools/src/diagnostic_nodelet.cpp | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/jsk_topic_tools/src/diagnostic_nodelet.cpp b/jsk_topic_tools/src/diagnostic_nodelet.cpp index e24761a03..fffeef761 100644 --- a/jsk_topic_tools/src/diagnostic_nodelet.cpp +++ b/jsk_topic_tools/src/diagnostic_nodelet.cpp @@ -34,7 +34,7 @@ *********************************************************************/ #include "jsk_topic_tools/diagnostic_nodelet.h" - +#include namespace jsk_topic_tools { DiagnosticNodelet::DiagnosticNodelet(const std::string& name): @@ -79,5 +79,20 @@ namespace jsk_topic_tools stat.summary(diagnostic_msgs::DiagnosticStatus::OK, getName() + " is not subscribed"); } + std::stringstream topic_names; + for (size_t i = 0; i < publishers_.size(); i++) { + if (i == publishers_.size() - 1) { + topic_names << publishers_[i].getTopic(); + } + else { + topic_names << publishers_[i].getTopic() << ", "; + } + } + stat.add("watched topics", topic_names.str()); + for (size_t i = 0; i < publishers_.size(); i++) { + stat.add(publishers_[i].getTopic(), + (boost::format("%d subscribers") % + publishers_[i].getNumSubscribers()).str()); + } } }