forked from Archive/PX4-Autopilot
Made setting of queue size in orb node based on topic definition
This commit is contained in:
parent
4a043a80f1
commit
dd67766f6c
|
@ -115,7 +115,7 @@ int uorb_top(char **topic_filter, int num_filters)
|
|||
|
||||
orb_advert_t orb_advertise(const struct orb_metadata *meta, const void *data)
|
||||
{
|
||||
return uORB::Manager::get_instance()->orb_advertise(meta, data);
|
||||
return uORB::Manager::get_instance()->orb_advertise(meta, data, meta->o_queue);
|
||||
}
|
||||
|
||||
orb_advert_t orb_advertise_queue(const struct orb_metadata *meta, const void *data, unsigned int queue_size)
|
||||
|
@ -125,7 +125,7 @@ orb_advert_t orb_advertise_queue(const struct orb_metadata *meta, const void *da
|
|||
|
||||
orb_advert_t orb_advertise_multi(const struct orb_metadata *meta, const void *data, int *instance)
|
||||
{
|
||||
return uORB::Manager::get_instance()->orb_advertise_multi(meta, data, instance);
|
||||
return uORB::Manager::get_instance()->orb_advertise_multi(meta, data, instance, meta->o_queue);
|
||||
}
|
||||
|
||||
orb_advert_t orb_advertise_multi_queue(const struct orb_metadata *meta, const void *data, int *instance,
|
||||
|
|
|
@ -53,9 +53,7 @@ struct orb_metadata {
|
|||
const uint16_t o_size_no_padding; /**< object size w/o padding at the end (for logger) */
|
||||
uint32_t message_hash; /**< Hash over all fields for message compatibility checks */
|
||||
orb_id_size_t o_id; /**< ORB_ID enum */
|
||||
#ifdef CONFIG_ORB_COMMUNICATOR
|
||||
uint8_t o_queue; /**< queue size */
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
@ -106,9 +104,8 @@ typedef const struct orb_metadata *orb_id_t;
|
|||
* @param _size_no_padding Struct size w/o padding at the end
|
||||
* @param _message_hash 32 bit message hash over all fields
|
||||
* @param _orb_id_enum ORB ID enum e.g.: ORB_ID::vehicle_status
|
||||
* @param _queue_size Queue size for remote topics in communicator interface
|
||||
* @param _queue_size Queue size from topic definition
|
||||
*/
|
||||
#ifdef CONFIG_ORB_COMMUNICATOR
|
||||
#define ORB_DEFINE(_name, _struct, _size_no_padding, _message_hash, _orb_id_enum, _queue_size) \
|
||||
const struct orb_metadata __orb_##_name = { \
|
||||
#_name, \
|
||||
|
@ -118,16 +115,6 @@ typedef const struct orb_metadata *orb_id_t;
|
|||
_orb_id_enum, \
|
||||
_queue_size \
|
||||
}; struct hack
|
||||
#else
|
||||
#define ORB_DEFINE(_name, _struct, _size_no_padding, _message_hash, _orb_id_enum, _queue_size) \
|
||||
const struct orb_metadata __orb_##_name = { \
|
||||
#_name, \
|
||||
sizeof(_struct), \
|
||||
_size_no_padding, \
|
||||
_message_hash, \
|
||||
_orb_id_enum \
|
||||
}; struct hack
|
||||
#endif
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
|
|
|
@ -630,7 +630,6 @@ int16_t uORB::Manager::process_remote_topic(const char *topic_name)
|
|||
|
||||
if (node) {
|
||||
PX4_DEBUG("Marking DeviceNode(%s) as advertised in process_remote_topic", topic_name);
|
||||
node->update_queue_size(topic_ptr->o_queue);
|
||||
node->mark_as_advertised();
|
||||
_remote_topics.insert(topic_name);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in New Issue