|
|
|
@ -161,6 +161,11 @@ extern orb_advert_t orb_advertise_multi_queue(const struct orb_metadata *meta, c
@@ -161,6 +161,11 @@ extern orb_advert_t orb_advertise_multi_queue(const struct orb_metadata *meta, c
|
|
|
|
|
*/ |
|
|
|
|
extern int orb_unadvertise(orb_advert_t handle) __EXPORT; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @see uORB::Manager::orb_publish() |
|
|
|
|
*/ |
|
|
|
|
extern int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) __EXPORT; |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Advertise as the publisher of a topic. |
|
|
|
|
* |
|
|
|
@ -169,13 +174,23 @@ extern int orb_unadvertise(orb_advert_t handle) __EXPORT;
@@ -169,13 +174,23 @@ extern int orb_unadvertise(orb_advert_t handle) __EXPORT;
|
|
|
|
|
* |
|
|
|
|
* @see uORB::Manager::orb_advertise_multi() for meaning of the individual parameters |
|
|
|
|
*/ |
|
|
|
|
extern int orb_publish_auto(const struct orb_metadata *meta, orb_advert_t *handle, const void *data, int *instance, |
|
|
|
|
int priority); |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @see uORB::Manager::orb_publish() |
|
|
|
|
*/ |
|
|
|
|
extern int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data) __EXPORT; |
|
|
|
|
static inline int orb_publish_auto(const struct orb_metadata *meta, orb_advert_t *handle, const void *data, |
|
|
|
|
int *instance, |
|
|
|
|
int priority) |
|
|
|
|
{ |
|
|
|
|
if (!*handle) { |
|
|
|
|
*handle = orb_advertise_multi(meta, data, instance, priority); |
|
|
|
|
|
|
|
|
|
if (*handle) { |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
return orb_publish(meta, *handle, data); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return -1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @see uORB::Manager::orb_subscribe() |
|
|
|
|