Skip to content

Commit 11aec95

Browse files
florent-lamirauxolivier-stasse
authored andcommitted
[RosQueuedSubsribe] Add command listTopics
to get the name of topics corresponding to each signal.
1 parent 3b9e412 commit 11aec95

File tree

5 files changed

+14
-1
lines changed

5 files changed

+14
-1
lines changed

src/dynamic_graph/ros/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
from .ros import RosSubscribe as RosExport
44
from .ros_publish import RosPublish
55
from .ros_subscribe import RosSubscribe
6+
from .ros_queued_subscribe import RosQueuedSubscribe

src/ros_queued_subscribe-python-module-py.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ BOOST_PYTHON_MODULE(wrap)
1313
.def("rm", &dg::RosQueuedSubscribe::rm, "Remove a signal reading data from a ROS topic",
1414
bp::args("signal_name"))
1515
.def("list", &dg::RosQueuedSubscribe::list, "List signals reading data from a ROS topic")
16-
16+
.def("listTopics", &dg::RosQueuedSubscribe::listTopics, "List subscribed topics from ROS in the same order as list command")
1717
.def("clearQueue", &dg::RosQueuedSubscribe::clearQueue,
1818
"Empty the queue of a given signal", bp::args("signal_name"))
1919
.def("queueSize", &dg::RosQueuedSubscribe::queueSize,

src/ros_queued_subscribe.cpp

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,14 @@ std::vector<std::string> RosQueuedSubscribe::list() {
9999
return result;
100100
}
101101

102+
std::vector<std::string> RosQueuedSubscribe::listTopics()
103+
{
104+
std::vector<std::string> result(topics_.size());
105+
std::transform(topics_.begin(), topics_.end(),
106+
result.begin(), [](const auto& pair) { return pair.second; });
107+
return result;
108+
}
109+
102110
void RosQueuedSubscribe::clear() {
103111
std::map<std::string, bindedSignal_t>::iterator it = bindedSignal_.begin();
104112
for (; it != bindedSignal_.end();) {

src/ros_queued_subscribe.hh

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ class RosQueuedSubscribe : public dynamicgraph::Entity {
137137

138138
void rm(const std::string& signal);
139139
std::vector<std::string> list();
140+
std::vector<std::string> listTopics();
140141
void clear();
141142
void clearQueue(const std::string& signal);
142143
void readQueue(int beginReadingAt);
@@ -146,6 +147,7 @@ class RosQueuedSubscribe : public dynamicgraph::Entity {
146147
void add(const std::string& type, const std::string& signal, const std::string& topic);
147148

148149
std::map<std::string, bindedSignal_t>& bindedSignal() { return bindedSignal_; }
150+
std::map<std::string, std::string>& topics() { return topics_; }
149151

150152
ros::NodeHandle& nh() { return nh_; }
151153

@@ -162,6 +164,7 @@ class RosQueuedSubscribe : public dynamicgraph::Entity {
162164
static const std::string docstring_;
163165
ros::NodeHandle& nh_;
164166
std::map<std::string, bindedSignal_t> bindedSignal_;
167+
std::map<std::string, std::string> topics_;
165168

166169
int readQueue_;
167170
// Signal<bool, int> readQueue_;

src/ros_queued_subscribe.hxx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ struct Add {
5454

5555
RosQueuedSubscribe::bindedSignal_t bindedSignal(bs);
5656
rosSubscribe.bindedSignal()[signal] = bindedSignal;
57+
rosSubscribe.topics()[signal] = topic;
5758
}
5859
};
5960

0 commit comments

Comments
 (0)