Qurt uORB communicator fixes (#20705)

- there was an issue sending a message from slpi to apps. Seems the code was stuck in an loop and crashed when the message was sent from slpi to apps
This commit is contained in:
Zachary Lowell
2022-12-06 10:33:19 -05:00
committed by GitHub
parent 1ea026961e
commit 91acd494a3
7 changed files with 60 additions and 122 deletions
+4 -13
View File
@@ -481,11 +481,6 @@ public:
*/
uORBCommunicator::IChannel *get_uorb_communicator();
/**
* Utility method to check if there is a remote subscriber present
* for a given topic
*/
bool is_remote_subscriber_present(const char *messageName);
#endif /* CONFIG_ORB_COMMUNICATOR */
private: // class methods
@@ -506,7 +501,7 @@ private: // data members
uORBCommunicator::IChannel *_comm_channel{nullptr};
static pthread_mutex_t _communicator_mutex;
ORBSet _remote_subscriber_topics;
// Track the advertisements we get from the remote side
ORBSet _remote_topics;
#endif /* CONFIG_ORB_COMMUNICATOR */
@@ -518,32 +513,28 @@ private: //class methods
#ifdef CONFIG_ORB_COMMUNICATOR
/**
* Interface to process a received topic from remote.
* Interface to process a received topic advertisement from remote.
* @param topic_name
* This represents the uORB message Name (topic); This message Name should be
* globally unique.
* @param isAdvertisement
* Represents if the topic has been advertised or is no longer avialable.
* @return
* 0 = success; This means the messages is successfully handled in the
* handler.
* otherwise = failure.
*/
virtual int16_t process_remote_topic(const char *topic_name, bool isAdvertisement);
virtual int16_t process_remote_topic(const char *topic_name);
/**
* Interface to process a received AddSubscription from remote.
* @param messageName
* This represents the uORB message Name; This message Name should be
* globally unique.
* @param msgRate
* The max rate at which the subscriber can accept the messages.
* @return
* 0 = success; This means the messages is successfully handled in the
* handler.
* otherwise = failure.
*/
virtual int16_t process_add_subscription(const char *messageName, int32_t msgRateInHz);
virtual int16_t process_add_subscription(const char *messageName);
/**
* Interface to process a received control msg to remove subscription