From 59a9648bb60f8c33ca26b5f248d4b28dfc1de139 Mon Sep 17 00:00:00 2001 From: Thomas Gubler Date: Fri, 28 Nov 2014 10:18:28 +0100 Subject: macro for topic subscription --- src/examples/subscriber/subscriber.cpp | 7 +++++-- src/platforms/px4_defines.h | 10 ++++++---- 2 files changed, 11 insertions(+), 6 deletions(-) (limited to 'src') diff --git a/src/examples/subscriber/subscriber.cpp b/src/examples/subscriber/subscriber.cpp index 178fca4b5..d6bc0bf37 100644 --- a/src/examples/subscriber/subscriber.cpp +++ b/src/examples/subscriber/subscriber.cpp @@ -86,8 +86,11 @@ PX4_MAIN_FUNCTION(subscriber) // CallbackFunction cbf = [](int i){ return rc_channels_callback(i);}; // std::function cbf = [](const PX4_TOPIC_T(rc_channels)& msg){ return rc_channels_callback(msg);}; // n.subscribe(PX4_TOPIC(rc_channels), cbf); - n.subscribe(PX4_TOPIC(rc_channels), - [](const PX4_TOPIC_T(rc_channels)& msg){ return rc_channels_callback(msg);}); + // n.subscribe(PX4_TOPIC(rc_channels), + // [](const PX4_TOPIC_T(rc_channels)& msg){ return rc_channels_callback(msg);}); + // n.subscribe(PX4_TOPIC(rc_channels), + // [](const PX4_TOPIC_T(rc_channels)& msg){ return rc_channels_callback(msg);}); + PX4_SUBSCRIBE(n, rc_channels, rc_channels_callback); PX4_INFO("subscribed"); /** diff --git a/src/platforms/px4_defines.h b/src/platforms/px4_defines.h index d4dc71453..79f305140 100644 --- a/src/platforms/px4_defines.h +++ b/src/platforms/px4_defines.h @@ -48,8 +48,9 @@ #define PX4_MAIN_FUNCTION(_prefix) int main(int argc, char **argv) #define PX4_WARN ROS_WARN #define PX4_INFO ROS_INFO -#define PX4_TOPIC(name) #name -#define PX4_TOPIC_T(name) name +#define PX4_TOPIC(_name) #_name +#define PX4_TOPIC_T(_name) _name +#define PX4_SUBSCRIBE(_nodehandle, _name, _cbf) _nodehandle.subscribe(PX4_TOPIC(_name), _cbf); #else /* @@ -62,7 +63,8 @@ #define PX4_WARN warnx #define PX4_WARN warnx #define PX4_INFO warnx -#define PX4_TOPIC(name) ORB_ID(name) -#define PX4_TOPIC_T(name) name##_s +#define PX4_TOPIC(_name) ORB_ID(_name) +#define PX4_TOPIC_T(_name) _name##_s +#define PX4_SUBSCRIBE(_nodehandle, _name, _cbf) _nodehandle.subscribe(PX4_TOPIC(_name), [](const PX4_TOPIC_T(_name)& msg){ return _cbf(msg);}) #endif -- cgit v1.2.3