Browse Source

uorb subscription: remove _interval & use orb_get_interval() instead

sbg
Beat Küng 9 years ago
parent
commit
aefd217fc0
  1. 10
      src/modules/uORB/Subscription.cpp
  2. 17
      src/modules/uORB/Subscription.hpp

10
src/modules/uORB/Subscription.cpp

@ -84,7 +84,7 @@ SubscriptionBase::SubscriptionBase(const struct orb_metadata *meta,
_handle = orb_subscribe(getMeta()); _handle = orb_subscribe(getMeta());
} }
if (_handle < 0) { warnx("sub failed"); } if (_handle < 0) { PX4_ERR("sub failed"); }
if (interval > 0) { if (interval > 0) {
orb_set_interval(getHandle(), interval); orb_set_interval(getHandle(), interval);
@ -96,7 +96,7 @@ bool SubscriptionBase::updated()
bool isUpdated = false; bool isUpdated = false;
int ret = orb_check(_handle, &isUpdated); int ret = orb_check(_handle, &isUpdated);
if (ret != PX4_OK) { warnx("orb check failed"); } if (ret != PX4_OK) { PX4_ERR("orb check failed"); }
return isUpdated; return isUpdated;
} }
@ -106,7 +106,7 @@ void SubscriptionBase::update(void *data)
if (updated()) { if (updated()) {
int ret = orb_copy(_meta, _handle, data); int ret = orb_copy(_meta, _handle, data);
if (ret != PX4_OK) { warnx("orb copy failed"); } if (ret != PX4_OK) { PX4_ERR("orb copy failed"); }
} }
} }
@ -114,7 +114,7 @@ SubscriptionBase::~SubscriptionBase()
{ {
int ret = orb_unsubscribe(_handle); int ret = orb_unsubscribe(_handle);
if (ret != PX4_OK) { warnx("orb unsubscribe failed"); } if (ret != PX4_OK) { PX4_ERR("orb unsubscribe failed"); }
} }
template <class T> template <class T>
@ -129,7 +129,7 @@ Subscription<T>::Subscription(const struct orb_metadata *meta,
template <class T> template <class T>
Subscription<T>::Subscription(const Subscription &other) : Subscription<T>::Subscription(const Subscription &other) :
SubscriptionNode(other._meta, other._interval, other._instance, nullptr), SubscriptionNode(other._meta, other.getInterval(), other._instance, nullptr),
_data() // initialize data structure to zero _data() // initialize data structure to zero
{ {
} }

17
src/modules/uORB/Subscription.hpp

@ -86,7 +86,14 @@ public:
// accessors // accessors
const struct orb_metadata *getMeta() { return _meta; } const struct orb_metadata *getMeta() { return _meta; }
int getHandle() { return _handle; } int getHandle() const { return _handle; }
unsigned getInterval() const
{
unsigned int interval;
orb_get_interval(getHandle(), &interval);
return interval;
}
protected: protected:
// accessors // accessors
void setHandle(int handle) { _handle = handle; } void setHandle(int handle) { _handle = handle; }
@ -130,8 +137,7 @@ public:
unsigned interval = 0, unsigned interval = 0,
int instance = 0, int instance = 0,
List<SubscriptionNode *> *list = nullptr) : List<SubscriptionNode *> *list = nullptr) :
SubscriptionBase(meta, interval, instance), SubscriptionBase(meta, interval, instance)
_interval(interval)
{ {
if (list != nullptr) { list->add(this); } if (list != nullptr) { list->add(this); }
} }
@ -141,11 +147,6 @@ public:
* updates, a child class must implement it. * updates, a child class must implement it.
*/ */
virtual void update() = 0; virtual void update() = 0;
// accessors
unsigned getInterval() { return _interval; }
protected:
// attributes
unsigned _interval;
}; };

Loading…
Cancel
Save