aboutsummaryrefslogtreecommitdiff
path: root/src/platforms
diff options
context:
space:
mode:
authorThomas Gubler <thomasgubler@gmail.com>2014-11-28 11:38:22 +0100
committerThomas Gubler <thomasgubler@gmail.com>2014-11-28 11:38:22 +0100
commit16f21d36dce17868f455318273140013febb6770 (patch)
tree954ca2efc6c1ccb7a3560cfa025c9bb0d50888b1 /src/platforms
parentb351d67175e328ce3ab16642cdc69f6b8a239366 (diff)
downloadpx4-firmware-16f21d36dce17868f455318273140013febb6770.tar.gz
px4-firmware-16f21d36dce17868f455318273140013febb6770.tar.bz2
px4-firmware-16f21d36dce17868f455318273140013febb6770.zip
actually call callback
Diffstat (limited to 'src/platforms')
-rw-r--r--src/platforms/px4_nodehandle.h6
-rw-r--r--src/platforms/px4_subscriber.h11
2 files changed, 7 insertions, 10 deletions
diff --git a/src/platforms/px4_nodehandle.h b/src/platforms/px4_nodehandle.h
index f473bf629..e228dfca5 100644
--- a/src/platforms/px4_nodehandle.h
+++ b/src/platforms/px4_nodehandle.h
@@ -106,8 +106,6 @@ public:
template<typename M>
Subscriber * subscribe(const struct orb_metadata *meta, std::function<void(const M&)> callback) {
- // Subscriber * subscribe(const struct orb_metadata *meta, std::function<void(int i)> callback) {
- // Subscriber * subscribe(const struct orb_metadata *meta, CallbackFunction callback) {
unsigned interval = 0;//XXX decide how to wrap this, ros equivalent?
//XXX
Subscriber *sub = new SubscriberPX4<M>(meta, interval, callback, &_subs);
@@ -124,7 +122,9 @@ public:
void spinOnce();
void spin() {
- //XXX: call callbacks and do not return until task is terminated
+ while (true) { //XXX
+ spinOnce();
+ }
}
private:
static const uint16_t kMaxSubscriptions = 100;
diff --git a/src/platforms/px4_subscriber.h b/src/platforms/px4_subscriber.h
index 71c3a766d..efec8f2a3 100644
--- a/src/platforms/px4_subscriber.h
+++ b/src/platforms/px4_subscriber.h
@@ -80,11 +80,10 @@ public:
SubscriberPX4(const struct orb_metadata *meta,
unsigned interval,
std::function<void(const M&)> callback,
- // std::function<void(int i)> callback,
- // CallbackFunction callback,
List<uORB::SubscriptionNode *> * list) :
Subscriber(),
- uORB::Subscription<M>(meta, interval, list)
+ uORB::Subscription<M>(meta, interval, list),
+ _callback(callback)
//XXX store callback
{}
~SubscriberPX4() {};
@@ -94,13 +93,11 @@ public:
uORB::Subscription<M>::update();
/* Call callback which performs actions based on this data */
- // _callback();
+ _callback(uORB::Subscription<M>::getData());
};
private:
- // std::function<void(int i)> _callback;
- // CallbackFunction _callback;
- std::function<void(const M&)> _callback;
+ std::function<void(const M&)> _callback;
};
#endif