diff options
-rw-r--r-- | makefiles/toolchain_gnu-arm-eabi.mk | 40 | ||||
-rw-r--r-- | src/examples/subscriber/subscriber_example.cpp | 11 | ||||
-rw-r--r-- | src/examples/subscriber/subscriber_example.h | 5 | ||||
-rw-r--r-- | src/platforms/px4_nodehandle.h | 27 | ||||
-rw-r--r-- | src/platforms/px4_subscriber.h | 4 |
5 files changed, 50 insertions, 37 deletions
diff --git a/makefiles/toolchain_gnu-arm-eabi.mk b/makefiles/toolchain_gnu-arm-eabi.mk index 396980453..d38ef645f 100644 --- a/makefiles/toolchain_gnu-arm-eabi.mk +++ b/makefiles/toolchain_gnu-arm-eabi.mk @@ -125,26 +125,26 @@ ARCHCXXFLAGS = -fno-exceptions -fno-rtti -std=gnu++0x -fno-threadsafe-statics # Generic warnings # -ARCHWARNINGS = -Wall \ - -Wextra \ - -Werror \ - -Wdouble-promotion \ - -Wshadow \ - -Wfloat-equal \ - -Wframe-larger-than=1024 \ - -Wpointer-arith \ - -Wlogical-op \ - -Wmissing-declarations \ - -Wpacked \ - -Wno-unused-parameter \ - -Werror=format-security \ - -Werror=array-bounds \ - -Wfatal-errors \ - -Wformat=1 \ - -Werror=unused-but-set-variable \ - -Werror=unused-variable \ - -Werror=double-promotion \ - -Werror=reorder +# ARCHWARNINGS = -Wall \ + # -Wextra \ + # -Werror \ + # -Wdouble-promotion \ + # -Wshadow \ + # -Wfloat-equal \ + # -Wframe-larger-than=1024 \ + # -Wpointer-arith \ + # -Wlogical-op \ + # -Wmissing-declarations \ + # -Wpacked \ + # -Wno-unused-parameter \ + # -Werror=format-security \ + # -Werror=array-bounds \ + # -Wfatal-errors \ + # -Wformat=1 \ + # -Werror=unused-but-set-variable \ + # -Werror=unused-variable \ + # -Werror=double-promotion \ + # -Werror=reorder # -Wcast-qual - generates spurious noreturn attribute warnings, try again later # -Wconversion - would be nice, but too many "risky-but-safe" conversions in the code # -Wcast-align - would help catch bad casts in some cases, but generates too many false positives diff --git a/src/examples/subscriber/subscriber_example.cpp b/src/examples/subscriber/subscriber_example.cpp index 9dea162e2..bc0975a2b 100644 --- a/src/examples/subscriber/subscriber_example.cpp +++ b/src/examples/subscriber/subscriber_example.cpp @@ -65,7 +65,8 @@ SubscriberExample::SubscriberExample() : _n.subscribe<px4_rc_channels>(rc_channels_callback_function, _interval); /* No callback */ - _sub_rc_chan = _n.subscribe<px4_rc_channels>(500); + // _sub_rc_chan = _n.subscribe<px4_rc_channels>(500); + _n.subscribe<px4_rc_channels>(500); /* Class Method */ _n.subscribe<px4_rc_channels>(&SubscriberExample::rc_channels_callback, this, 1000); @@ -73,6 +74,9 @@ SubscriberExample::SubscriberExample() : /* Class Method 2 */ _n.subscribe<px4_vehicle_attitude>(&SubscriberExample::vehicle_attitude_callback, this, 1000); + /* Class Method 3 */ + // _n.subscribe<px4_vehicle_rates_setpoint>(&SubscriberExample::vehicle_rates_setpoint_callback, this, 1000); + PX4_INFO("subscribed"); } @@ -91,3 +95,8 @@ void SubscriberExample::vehicle_attitude_callback(const px4_vehicle_attitude &ms PX4_INFO("Callback (method): [%llu]", msg.data().timestamp); } + +void SubscriberExample::vehicle_rates_setpoint_callback(const px4_vehicle_rates_setpoint &msg) { + PX4_INFO("Callback (method): [%llu]", + msg.data().timestamp); +} diff --git a/src/examples/subscriber/subscriber_example.h b/src/examples/subscriber/subscriber_example.h index d9d7d3fc2..8af94a458 100644 --- a/src/examples/subscriber/subscriber_example.h +++ b/src/examples/subscriber/subscriber_example.h @@ -58,6 +58,7 @@ protected: float _test_float; px4::Subscriber<px4_rc_channels> * _sub_rc_chan; - void rc_channels_callback(const px4_rc_channels &msg); - void vehicle_attitude_callback(const px4_vehicle_attitude &msg); + __EXPORT void rc_channels_callback(const px4_rc_channels &msg); + __EXPORT void vehicle_attitude_callback(const px4_vehicle_attitude &msg); + __EXPORT void vehicle_rates_setpoint_callback(const px4_vehicle_rates_setpoint &msg); }; diff --git a/src/platforms/px4_nodehandle.h b/src/platforms/px4_nodehandle.h index 83a3e422d..70ec1cfe0 100644 --- a/src/platforms/px4_nodehandle.h +++ b/src/platforms/px4_nodehandle.h @@ -187,13 +187,14 @@ public: */ template<typename T> - Subscriber<T> *subscribe(void(*fp)(const T &), unsigned interval) + // Subscriber<T> *subscribe(void(*fp)(const T &), unsigned interval) + void subscribe(void(*fp)(const T &), unsigned interval) { (void)interval; SubscriberUORBCallback<T> *sub_px4 = new SubscriberUORBCallback<T>(interval, std::bind(fp, std::placeholders::_1)); - update_sub_min_interval(interval, sub_px4); - _subs.add((SubscriberNode *)sub_px4); - return (Subscriber<T> *)sub_px4; + // update_sub_min_interval(interval, sub_px4); + // _subs.add((SubscriberNode *)sub_px4); + // return (Subscriber<T> *)sub_px4; } /** @@ -202,13 +203,14 @@ public: * @param obj pointer class instance */ template<typename T, typename C> - Subscriber<T> *subscribe(void(C::*fp)(const T &), C *obj, unsigned interval) + // Subscriber<T> *subscribe(void(C::*fp)(const T &), C *obj, unsigned interval) + void subscribe(void(C::*fp)(const T &), C *obj, unsigned interval) { (void)interval; SubscriberUORBCallback<T> *sub_px4 = new SubscriberUORBCallback<T>(interval, std::bind(fp, obj, std::placeholders::_1)); - update_sub_min_interval(interval, sub_px4); - _subs.add((SubscriberNode *)sub_px4); - return (Subscriber<T> *)sub_px4; + // update_sub_min_interval(interval, sub_px4); + // _subs.add((SubscriberNode *)sub_px4); + // return (Subscriber<T> *)sub_px4; } /** @@ -217,13 +219,14 @@ public: */ template<typename T> - Subscriber<T> *subscribe(unsigned interval) + // Subscriber<T> *subscribe(unsigned interval) + void subscribe(unsigned interval) { (void)interval; SubscriberUORB<T> *sub_px4 = new SubscriberUORB<T>(interval); - update_sub_min_interval(interval, sub_px4); - _subs.add((SubscriberNode *)sub_px4); - return (Subscriber<T> *)sub_px4; + // update_sub_min_interval(interval, sub_px4); + // _subs.add((SubscriberNode *)sub_px4); + // return (Subscriber<T> *)sub_px4; } /** diff --git a/src/platforms/px4_subscriber.h b/src/platforms/px4_subscriber.h index 6ca35b173..9f32966dc 100644 --- a/src/platforms/px4_subscriber.h +++ b/src/platforms/px4_subscriber.h @@ -244,8 +244,8 @@ public: */ SubscriberUORBCallback(unsigned interval, std::function<void(const T &)> cbf) : - SubscriberUORB<T>(interval), - _cbf(cbf) + SubscriberUORB<T>(interval)//, + // _cbf(cbf) {} virtual ~SubscriberUORBCallback() {}; |