34 #ifndef _uORBManager_hpp_ 35 #define _uORBManager_hpp_ 37 #include "uORBCommon.hpp" 38 #include "uORBDeviceMaster.hpp" 47 #define ORBSet std::set<std::string> 50 #ifdef ORB_COMMUNICATOR 51 #include "uORBCommunicator.hpp" 65 #ifdef ORB_COMMUNICATOR
159 int priority,
unsigned int queue_size = 1);
296 int orb_check(
int handle,
bool *updated);
307 int orb_stat(
int handle, uint64_t *time);
362 #ifdef ORB_COMMUNICATOR 382 bool is_remote_subscriber_present(
const char *messageName);
393 int node_advertise(
const struct orb_metadata *meta,
int *instance =
nullptr,
int priority = ORB_PRIO_DEFAULT);
401 int node_open(
const struct orb_metadata *meta,
bool advertiser,
int *instance =
nullptr,
402 int priority = ORB_PRIO_DEFAULT);
407 #ifdef ORB_COMMUNICATOR 411 ORBSet _remote_subscriber_topics;
421 #ifdef ORB_COMMUNICATOR 434 virtual int16_t process_remote_topic(
const char *topic_name,
bool isAdvertisement);
448 virtual int16_t process_add_subscription(
const char *messageName, int32_t msgRateInHz);
460 virtual int16_t process_remove_subscription(
const char *messageName);
476 virtual int16_t process_received_message(
const char *messageName, int32_t length, uint8_t *data);
479 #ifdef ORB_USE_PUBLISHER_RULES 481 struct PublisherRule {
483 const char *module_name;
484 bool ignore_other_topics;
490 bool startsWith(
const char *pre,
const char *str);
495 bool findTopic(
const PublisherRule &rule,
const char *topic_name);
500 void strTrim(
const char **str);
511 int readPublisherRulesFromFile(
const char *file_name, PublisherRule &rule);
513 PublisherRule _publisher_rule;
514 bool _has_publisher_rules =
false;
This is implemented as a singleton.
Definition: uORBManager.hpp:64
uORB::DeviceMaster * get_device_master()
Get the DeviceMaster.
Definition: uORBManager.cpp:81
int orb_unadvertise(orb_advert_t handle)
Unadvertise a topic.
Definition: uORBManager.cpp:230
int orb_set_interval(int handle, unsigned interval)
Set the minimum interval between which updates are seen for a subscription.
Definition: uORBManager.cpp:307
int orb_unsubscribe(int handle)
Unsubscribe from a topic.
Definition: uORBManager.cpp:254
__BEGIN_DECLS typedef void * orb_advert_t
ORB topic advertiser handle.
Definition: uORB.h:134
Definition: uORBFastRpcChannel.hpp:44
Definition: ORBSet.hpp:36
Master control device for ObjDev.
Definition: uORBDeviceMaster.hpp:59
int orb_priority(int handle, int32_t *priority)
Return the priority of the topic.
Definition: uORBManager.cpp:302
int orb_copy(const struct orb_metadata *meta, int handle, void *buffer)
Fetch data from a topic.
Definition: uORBManager.cpp:272
orb_advert_t orb_advertise(const struct orb_metadata *meta, const void *data, unsigned int queue_size=1)
Advertise as the publisher of a topic.
Definition: uORBManager.hpp:119
Interface to enable remote subscriptions.
Definition: uORBCommunicator.hpp:51
Class passed to the communication link implement to provide callback for received messages over a cha...
Definition: uORBCommunicator.hpp:153
int orb_publish(const struct orb_metadata *meta, orb_advert_t handle, const void *data)
Publish new data to a topic.
Definition: uORBManager.cpp:259
int orb_subscribe(const struct orb_metadata *meta)
Subscribe to a topic.
Definition: uORBManager.cpp:243
int orb_stat(int handle, uint64_t *time)
Return the last time that the topic was updated.
Definition: uORBManager.cpp:297
orb_advert_t orb_advertise_multi(const struct orb_metadata *meta, const void *data, int *instance, int priority, unsigned int queue_size=1)
Advertise as the publisher of a topic.
Definition: uORBManager.cpp:159
Definition: video_device.h:50
int orb_subscribe_multi(const struct orb_metadata *meta, unsigned instance)
Subscribe to a multi-instance of a topic.
Definition: uORBManager.cpp:248
static uORB::Manager * get_instance()
Method to get the singleton instance for the uORB::Manager.
Definition: uORBManager.hpp:83
int orb_check(int handle, bool *updated)
Check whether a topic has been published to since the last orb_copy.
Definition: uORBManager.cpp:290
static bool initialize()
Initialize the singleton.
Definition: uORBManager.cpp:49
int orb_exists(const struct orb_metadata *meta, int instance)
Check if a topic has already been created and published (advertised)
Definition: uORBManager.cpp:95
int orb_get_interval(int handle, unsigned *interval)
Get the minimum interval between which updates are seen for a subscription.
Definition: uORBManager.cpp:312