From dd67766f6c11e4aaa6008959fe8f8bee95ff34ef Mon Sep 17 00:00:00 2001 From: Eric Katzfey Date: Fri, 1 Mar 2024 14:18:52 -0800 Subject: [PATCH] Made setting of queue size in orb node based on topic definition --- platforms/common/uORB/uORB.cpp | 4 ++-- platforms/common/uORB/uORB.h | 15 +-------------- platforms/common/uORB/uORBManager.cpp | 1 - 3 files changed, 3 insertions(+), 17 deletions(-) diff --git a/platforms/common/uORB/uORB.cpp b/platforms/common/uORB/uORB.cpp index c91ac6bcce..cb56f6111c 100644 --- a/platforms/common/uORB/uORB.cpp +++ b/platforms/common/uORB/uORB.cpp @@ -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, diff --git a/platforms/common/uORB/uORB.h b/platforms/common/uORB/uORB.h index 90c401337d..7fc0ae86ff 100644 --- a/platforms/common/uORB/uORB.h +++ b/platforms/common/uORB/uORB.h @@ -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 diff --git a/platforms/common/uORB/uORBManager.cpp b/platforms/common/uORB/uORBManager.cpp index c9ff7670ae..f0b5b2d457 100644 --- a/platforms/common/uORB/uORBManager.cpp +++ b/platforms/common/uORB/uORBManager.cpp @@ -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;