mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-24 07:09:48 +08:00
uorb subscription: remove _interval & use orb_get_interval() instead
This commit is contained in:
@@ -84,7 +84,7 @@ SubscriptionBase::SubscriptionBase(const struct orb_metadata *meta,
|
||||
_handle = orb_subscribe(getMeta());
|
||||
}
|
||||
|
||||
if (_handle < 0) { warnx("sub failed"); }
|
||||
if (_handle < 0) { PX4_ERR("sub failed"); }
|
||||
|
||||
if (interval > 0) {
|
||||
orb_set_interval(getHandle(), interval);
|
||||
@@ -96,7 +96,7 @@ bool SubscriptionBase::updated()
|
||||
bool isUpdated = false;
|
||||
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;
|
||||
}
|
||||
@@ -106,7 +106,7 @@ void SubscriptionBase::update(void *data)
|
||||
if (updated()) {
|
||||
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);
|
||||
|
||||
if (ret != PX4_OK) { warnx("orb unsubscribe failed"); }
|
||||
if (ret != PX4_OK) { PX4_ERR("orb unsubscribe failed"); }
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@@ -129,7 +129,7 @@ Subscription<T>::Subscription(const struct orb_metadata *meta,
|
||||
|
||||
template <class T>
|
||||
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
|
||||
{
|
||||
}
|
||||
|
||||
@@ -86,7 +86,14 @@ public:
|
||||
|
||||
// accessors
|
||||
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:
|
||||
// accessors
|
||||
void setHandle(int handle) { _handle = handle; }
|
||||
@@ -130,8 +137,7 @@ public:
|
||||
unsigned interval = 0,
|
||||
int instance = 0,
|
||||
List<SubscriptionNode *> *list = nullptr) :
|
||||
SubscriptionBase(meta, interval, instance),
|
||||
_interval(interval)
|
||||
SubscriptionBase(meta, interval, instance)
|
||||
{
|
||||
if (list != nullptr) { list->add(this); }
|
||||
}
|
||||
@@ -141,11 +147,6 @@ public:
|
||||
* updates, a child class must implement it.
|
||||
*/
|
||||
virtual void update() = 0;
|
||||
// accessors
|
||||
unsigned getInterval() { return _interval; }
|
||||
protected:
|
||||
// attributes
|
||||
unsigned _interval;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user