uORB add ORB_COMMUNICATOR define to enable remote uORB

This commit is contained in:
Daniel Agar
2018-07-01 11:32:07 -04:00
committed by Lorenz Meier
parent 6579b7254a
commit 8599495082
15 changed files with 81 additions and 91 deletions
+2
View File
@@ -17,6 +17,8 @@ else()
set(QC_SOC_TARGET "APQ8074") set(QC_SOC_TARGET "APQ8074")
endif() endif()
add_definitions(-DORB_COMMUNICATOR)
set(config_module_list set(config_module_list
drivers/linux_sbus drivers/linux_sbus
+1
View File
@@ -4,6 +4,7 @@ set(CMAKE_TOOLCHAIN_FILE ${PX4_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolcha
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${PX4_SOURCE_DIR}/cmake/cmake_hexagon")
set(DISABLE_PARAMS_MODULE_SCOPING TRUE) set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
add_definitions(-DORB_COMMUNICATOR)
# Get $QC_SOC_TARGET from environment if existing. # Get $QC_SOC_TARGET from environment if existing.
if (DEFINED ENV{QC_SOC_TARGET}) if (DEFINED ENV{QC_SOC_TARGET})
@@ -28,6 +28,7 @@ else()
endif() endif()
set(CONFIG_SHMEM "1") set(CONFIG_SHMEM "1")
add_definitions(-DORB_COMMUNICATOR)
set(config_module_list set(config_module_list
drivers/blinkm drivers/blinkm
+1 -1
View File
@@ -19,7 +19,7 @@ else()
endif() endif()
set(CONFIG_SHMEM "1") set(CONFIG_SHMEM "1")
add_definitions(-DORB_COMMUNICATOR)
set(config_module_list set(config_module_list
drivers/blinkm drivers/blinkm
-1
View File
@@ -55,7 +55,6 @@ set(config_module_list
platforms/posix/tests/hello platforms/posix/tests/hello
platforms/posix/tests/hrt_test platforms/posix/tests/hrt_test
platforms/posix/tests/muorb
platforms/posix/tests/vcdev_test platforms/posix/tests/vcdev_test
# #
+1
View File
@@ -6,6 +6,7 @@ else()
endif() endif()
set(DISABLE_PARAMS_MODULE_SCOPING TRUE) set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
add_definitions(-DORB_COMMUNICATOR)
# Get $QC_SOC_TARGET from environment if existing. # Get $QC_SOC_TARGET from environment if existing.
if (DEFINED ENV{QC_SOC_TARGET}) if (DEFINED ENV{QC_SOC_TARGET})
+1
View File
@@ -6,6 +6,7 @@ else()
endif() endif()
set(DISABLE_PARAMS_MODULE_SCOPING TRUE) set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
add_definitions(-DORB_COMMUNICATOR)
# Get $QC_SOC_TARGET from environment if existing. # Get $QC_SOC_TARGET from environment if existing.
if (DEFINED ENV{QC_SOC_TARGET}) if (DEFINED ENV{QC_SOC_TARGET})
+1
View File
@@ -11,6 +11,7 @@ else()
endif() endif()
set(DISABLE_PARAMS_MODULE_SCOPING TRUE) set(DISABLE_PARAMS_MODULE_SCOPING TRUE)
add_definitions(-DORB_COMMUNICATOR)
# Get $QC_SOC_TARGET from environment if existing. # Get $QC_SOC_TARGET from environment if existing.
if (DEFINED ENV{QC_SOC_TARGET}) if (DEFINED ENV{QC_SOC_TARGET})
@@ -9,6 +9,7 @@ else()
endif() endif()
set(CONFIG_SHMEM "1") set(CONFIG_SHMEM "1")
add_definitions(-DORB_COMMUNICATOR)
# Get $QC_SOC_TARGET from environment if existing. # Get $QC_SOC_TARGET from environment if existing.
if (DEFINED ENV{QC_SOC_TARGET}) if (DEFINED ENV{QC_SOC_TARGET})
+1
View File
@@ -9,6 +9,7 @@ else()
endif() endif()
set(CONFIG_SHMEM "1") set(CONFIG_SHMEM "1")
add_definitions(-DORB_COMMUNICATOR)
# Get $QC_SOC_TARGET from environment if existing. # Get $QC_SOC_TARGET from environment if existing.
if (DEFINED ENV{QC_SOC_TARGET}) if (DEFINED ENV{QC_SOC_TARGET})
-1
View File
@@ -67,7 +67,6 @@ endforeach()
set(test_cmds set(test_cmds
hello hello
hrt_test hrt_test
muorb_test
vcdev_test vcdev_test
wqueue_test wqueue_test
) )
+33 -40
View File
@@ -63,7 +63,11 @@
#include "uORBDevices.hpp" #include "uORBDevices.hpp"
#include "uORBUtils.hpp" #include "uORBUtils.hpp"
#include "uORBManager.hpp" #include "uORBManager.hpp"
#ifdef ORB_COMMUNICATOR
#include "uORBCommunicator.hpp" #include "uORBCommunicator.hpp"
#endif /* ORB_COMMUNICATOR */
#include <px4_sem.hpp> #include <px4_sem.hpp>
#include <stdlib.h> #include <stdlib.h>
@@ -85,14 +89,8 @@ uORB::DeviceNode::DeviceNode(const struct orb_metadata *meta, const char *name,
int priority, unsigned int queue_size) : int priority, unsigned int queue_size) :
CDev(name, path), CDev(name, path),
_meta(meta), _meta(meta),
_data(nullptr),
_last_update(0),
_generation(0),
_priority((uint8_t)priority), _priority((uint8_t)priority),
_published(false), _queue_size(queue_size)
_queue_size(queue_size),
_subscriber_count(0),
_publisher(0)
{ {
} }
@@ -163,7 +161,9 @@ uORB::DeviceNode::open(device::file_t *filp)
ret = CDev::open(filp); ret = CDev::open(filp);
#ifdef ORB_COMMUNICATOR
add_internal_subscriber(); add_internal_subscriber();
#endif /* ORB_COMMUNICATOR */
if (ret != PX4_OK) { if (ret != PX4_OK) {
PX4_ERR("CDev::open failed"); PX4_ERR("CDev::open failed");
@@ -196,7 +196,10 @@ uORB::DeviceNode::close(device::file_t *filp)
hrt_cancel(&sd->update_interval->update_call); hrt_cancel(&sd->update_interval->update_call);
} }
#ifdef ORB_COMMUNICATOR
remove_internal_subscriber(); remove_internal_subscriber();
#endif /* ORB_COMMUNICATOR */
delete sd; delete sd;
sd = nullptr; sd = nullptr;
} }
@@ -454,6 +457,7 @@ uORB::DeviceNode::publish(const orb_metadata *meta, orb_advert_t handle, const v
return PX4_ERROR; return PX4_ERROR;
} }
#ifdef ORB_COMMUNICATOR
/* /*
* if the write is successful, send the data over the Multi-ORB link * if the write is successful, send the data over the Multi-ORB link
*/ */
@@ -466,6 +470,8 @@ uORB::DeviceNode::publish(const orb_metadata *meta, orb_advert_t handle, const v
} }
} }
#endif /* ORB_COMMUNICATOR */
return PX4_OK; return PX4_OK;
} }
@@ -493,6 +499,7 @@ int uORB::DeviceNode::unadvertise(orb_advert_t handle)
return PX4_OK; return PX4_OK;
} }
#ifdef ORB_COMMUNICATOR
int16_t uORB::DeviceNode::topic_advertised(const orb_metadata *meta, int priority) int16_t uORB::DeviceNode::topic_advertised(const orb_metadata *meta, int priority)
{ {
uORBCommunicator::IChannel *ch = uORB::Manager::get_instance()->get_uorb_communicator(); uORBCommunicator::IChannel *ch = uORB::Manager::get_instance()->get_uorb_communicator();
@@ -503,6 +510,7 @@ int16_t uORB::DeviceNode::topic_advertised(const orb_metadata *meta, int priorit
return -1; return -1;
} }
/* /*
//TODO: Check if we need this since we only unadvertise when things all shutdown and it doesn't actually remove the device //TODO: Check if we need this since we only unadvertise when things all shutdown and it doesn't actually remove the device
int16_t uORB::DeviceNode::topic_unadvertised(const orb_metadata *meta, int priority) int16_t uORB::DeviceNode::topic_unadvertised(const orb_metadata *meta, int priority)
@@ -514,6 +522,7 @@ int16_t uORB::DeviceNode::topic_unadvertised(const orb_metadata *meta, int prior
return -1; return -1;
} }
*/ */
#endif /* ORB_COMMUNICATOR */
pollevent_t pollevent_t
uORB::DeviceNode::poll_state(device::file_t *filp) uORB::DeviceNode::poll_state(device::file_t *filp)
@@ -728,8 +737,7 @@ uORB::DeviceNode::print_statistics(bool reset)
return true; return true;
} }
//----------------------------------------------------------------------------- #ifdef ORB_COMMUNICATOR
//-----------------------------------------------------------------------------
void uORB::DeviceNode::add_internal_subscriber() void uORB::DeviceNode::add_internal_subscriber()
{ {
uORBCommunicator::IChannel *ch = uORB::Manager::get_instance()->get_uorb_communicator(); uORBCommunicator::IChannel *ch = uORB::Manager::get_instance()->get_uorb_communicator();
@@ -746,8 +754,6 @@ void uORB::DeviceNode::add_internal_subscriber()
} }
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void uORB::DeviceNode::remove_internal_subscriber() void uORB::DeviceNode::remove_internal_subscriber()
{ {
uORBCommunicator::IChannel *ch = uORB::Manager::get_instance()->get_uorb_communicator(); uORBCommunicator::IChannel *ch = uORB::Manager::get_instance()->get_uorb_communicator();
@@ -764,31 +770,6 @@ void uORB::DeviceNode::remove_internal_subscriber()
} }
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
bool uORB::DeviceNode::is_published()
{
return _published;
}
int uORB::DeviceNode::update_queue_size(unsigned int queue_size)
{
if (_queue_size == queue_size) {
return PX4_OK;
}
//queue size is limited to 255 for the single reason that we use uint8 to store it
if (_data || _queue_size > queue_size || queue_size > 255) {
return PX4_ERROR;
}
_queue_size = queue_size;
return PX4_OK;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int16_t uORB::DeviceNode::process_add_subscription(int32_t rateInHz) int16_t uORB::DeviceNode::process_add_subscription(int32_t rateInHz)
{ {
// if there is already data in the node, send this out to // if there is already data in the node, send this out to
@@ -803,15 +784,11 @@ int16_t uORB::DeviceNode::process_add_subscription(int32_t rateInHz)
return PX4_OK; return PX4_OK;
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int16_t uORB::DeviceNode::process_remove_subscription() int16_t uORB::DeviceNode::process_remove_subscription()
{ {
return PX4_OK; return PX4_OK;
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int16_t uORB::DeviceNode::process_received_message(int32_t length, uint8_t *data) int16_t uORB::DeviceNode::process_received_message(int32_t length, uint8_t *data)
{ {
int16_t ret = -1; int16_t ret = -1;
@@ -835,6 +812,22 @@ int16_t uORB::DeviceNode::process_received_message(int32_t length, uint8_t *data
return PX4_OK; return PX4_OK;
} }
#endif /* ORB_COMMUNICATOR */
int uORB::DeviceNode::update_queue_size(unsigned int queue_size)
{
if (_queue_size == queue_size) {
return PX4_OK;
}
//queue size is limited to 255 for the single reason that we use uint8 to store it
if (_data || _queue_size > queue_size || queue_size > 255) {
return PX4_ERROR;
}
_queue_size = queue_size;
return PX4_OK;
}
uORB::DeviceMaster::DeviceMaster() : uORB::DeviceMaster::DeviceMaster() :
CDev("obj_master", TOPIC_MASTER_DEVICE_PATH) CDev("obj_master", TOPIC_MASTER_DEVICE_PATH)
+8 -6
View File
@@ -116,6 +116,7 @@ public:
static int unadvertise(orb_advert_t handle); static int unadvertise(orb_advert_t handle);
#ifdef ORB_COMMUNICATOR
static int16_t topic_advertised(const orb_metadata *meta, int priority); static int16_t topic_advertised(const orb_metadata *meta, int priority);
//static int16_t topic_unadvertised(const orb_metadata *meta, int priority); //static int16_t topic_unadvertised(const orb_metadata *meta, int priority);
@@ -155,13 +156,14 @@ public:
* the Subscriber to be removed. * the Subscriber to be removed.
*/ */
void remove_internal_subscriber(); void remove_internal_subscriber();
#endif /* ORB_COMMUNICATOR */
/** /**
* Return true if this topic has been published. * Return true if this topic has been published.
* *
* This is used in the case of multi_pub/sub to check if it's valid to advertise * This is used in the case of multi_pub/sub to check if it's valid to advertise
* and publish to this node or if another node should be tried. */ * and publish to this node or if another node should be tried. */
bool is_published(); bool is_published() const { return _published; }
/** /**
* Try to change the size of the queue. This can only be done as long as nobody published yet. * Try to change the size of the queue. This can only be done as long as nobody published yet.
@@ -214,13 +216,13 @@ private:
}; };
const struct orb_metadata *_meta; /**< object metadata information */ const struct orb_metadata *_meta; /**< object metadata information */
uint8_t *_data; /**< allocated object buffer */ uint8_t *_data{nullptr}; /**< allocated object buffer */
hrt_abstime _last_update; /**< time the object was last updated */ hrt_abstime _last_update{0}; /**< time the object was last updated */
volatile unsigned _generation; /**< object generation count */ volatile unsigned _generation{0}; /**< object generation count */
uint8_t _priority; /**< priority of the topic */ uint8_t _priority; /**< priority of the topic */
bool _published; /**< has ever data been published */ bool _published{false}; /**< has ever data been published */
uint8_t _queue_size; /**< maximum number of elements in the queue */ uint8_t _queue_size; /**< maximum number of elements in the queue */
int16_t _subscriber_count; int16_t _subscriber_count{0};
inline static SubscriberData *filp_to_sd(device::file_t *filp); inline static SubscriberData *filp_to_sd(device::file_t *filp);
+12 -23
View File
@@ -36,12 +36,13 @@
#include <stdarg.h> #include <stdarg.h>
#include <fcntl.h> #include <fcntl.h>
#include <errno.h> #include <errno.h>
#include <px4_config.h> #include <px4_config.h>
#include <px4_posix.h> #include <px4_posix.h>
#include <px4_tasks.h> #include <px4_tasks.h>
#include "uORBUtils.hpp" #include "uORBUtils.hpp"
#include "uORBManager.hpp" #include "uORBManager.hpp"
#include "px4_config.h"
#include "uORBDevices.hpp" #include "uORBDevices.hpp"
@@ -62,10 +63,7 @@ bool uORB::Manager::initialize()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
uORB::Manager::Manager() uORB::Manager::Manager()
: _comm_channel(nullptr)
{ {
_device_master = nullptr;
#ifdef ORB_USE_PUBLISHER_RULES #ifdef ORB_USE_PUBLISHER_RULES
const char *file_name = "./rootfs/orb_publisher.rules"; const char *file_name = "./rootfs/orb_publisher.rules";
int ret = readPublisherRulesFromFile(file_name, _publisher_rule); int ret = readPublisherRulesFromFile(file_name, _publisher_rule);
@@ -131,10 +129,14 @@ int uORB::Manager::orb_exists(const struct orb_metadata *meta, int instance)
#else #else
ret = px4_access(path, F_OK); ret = px4_access(path, F_OK);
#ifdef ORB_COMMUNICATOR
if (ret == -1 && meta != nullptr && !_remote_topics.empty()) { if (ret == -1 && meta != nullptr && !_remote_topics.empty()) {
ret = (_remote_topics.find(meta->o_name) != _remote_topics.end()) ? OK : PX4_ERROR; ret = (_remote_topics.find(meta->o_name) != _remote_topics.end()) ? OK : PX4_ERROR;
} }
#endif /* ORB_COMMUNICATOR */
#endif #endif
if (ret == 0) { if (ret == 0) {
@@ -215,8 +217,10 @@ orb_advert_t uORB::Manager::orb_advertise_multi(const struct orb_metadata *meta,
return nullptr; return nullptr;
} }
//For remote systems call over and inform them #ifdef ORB_COMMUNICATOR
// For remote systems call over and inform them
uORB::DeviceNode::topic_advertised(meta, priority); uORB::DeviceNode::topic_advertised(meta, priority);
#endif /* ORB_COMMUNICATOR */
/* the advertiser must perform an initial publish to initialise the object */ /* the advertiser must perform an initial publish to initialise the object */
result = orb_publish(meta, advertiser, data); result = orb_publish(meta, advertiser, data);
@@ -318,13 +322,7 @@ int uORB::Manager::orb_get_interval(int handle, unsigned *interval)
return ret; return ret;
} }
int uORB::Manager::node_advertise(const struct orb_metadata *meta, int *instance, int priority)
int uORB::Manager::node_advertise
(
const struct orb_metadata *meta,
int *instance,
int priority
)
{ {
int fd = -1; int fd = -1;
int ret = PX4_ERROR; int ret = PX4_ERROR;
@@ -441,8 +439,7 @@ int uORB::Manager::node_open(const struct orb_metadata *meta, const void *data,
return fd; return fd;
} }
//----------------------------------------------------------------------------- #ifdef ORB_COMMUNICATOR
//-----------------------------------------------------------------------------
void uORB::Manager::set_uorb_communicator(uORBCommunicator::IChannel *channel) void uORB::Manager::set_uorb_communicator(uORBCommunicator::IChannel *channel)
{ {
_comm_channel = channel; _comm_channel = channel;
@@ -457,8 +454,6 @@ uORBCommunicator::IChannel *uORB::Manager::get_uorb_communicator()
return _comm_channel; return _comm_channel;
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int16_t uORB::Manager::process_remote_topic(const char *topic_name, bool isAdvertisement) int16_t uORB::Manager::process_remote_topic(const char *topic_name, bool isAdvertisement)
{ {
int16_t rc = 0; int16_t rc = 0;
@@ -473,8 +468,6 @@ int16_t uORB::Manager::process_remote_topic(const char *topic_name, bool isAdver
return rc; return rc;
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int16_t uORB::Manager::process_add_subscription(const char *messageName, int32_t msgRateInHz) int16_t uORB::Manager::process_add_subscription(const char *messageName, int32_t msgRateInHz)
{ {
PX4_DEBUG("entering Manager_process_add_subscription: name: %s", messageName); PX4_DEBUG("entering Manager_process_add_subscription: name: %s", messageName);
@@ -503,8 +496,6 @@ int16_t uORB::Manager::process_add_subscription(const char *messageName, int32_t
return rc; return rc;
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int16_t uORB::Manager::process_remove_subscription(const char *messageName) int16_t uORB::Manager::process_remove_subscription(const char *messageName)
{ {
int16_t rc = -1; int16_t rc = -1;
@@ -531,8 +522,6 @@ int16_t uORB::Manager::process_remove_subscription(const char *messageName)
return rc; return rc;
} }
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int16_t uORB::Manager::process_received_message(const char *messageName, int32_t length, uint8_t *data) int16_t uORB::Manager::process_received_message(const char *messageName, int32_t length, uint8_t *data)
{ {
int16_t rc = -1; int16_t rc = -1;
@@ -565,7 +554,7 @@ bool uORB::Manager::is_remote_subscriber_present(const char *messageName)
return (_remote_subscriber_topics.find(messageName) != _remote_subscriber_topics.end()); return (_remote_subscriber_topics.find(messageName) != _remote_subscriber_topics.end());
#endif #endif
} }
#endif /* ORB_COMMUNICATOR */
#ifdef ORB_USE_PUBLISHER_RULES #ifdef ORB_USE_PUBLISHER_RULES
+18 -19
View File
@@ -45,7 +45,9 @@
#define ORBSet std::set<std::string> #define ORBSet std::set<std::string>
#endif #endif
#ifdef ORB_COMMUNICATOR
#include "uORBCommunicator.hpp" #include "uORBCommunicator.hpp"
#endif /* ORB_COMMUNICATOR */
namespace uORB namespace uORB
{ {
@@ -57,7 +59,10 @@ class Manager;
* uORB nodes for each uORB topics and also implements the behavor of the * uORB nodes for each uORB topics and also implements the behavor of the
* uORB Api's. * uORB Api's.
*/ */
class uORB::Manager : public uORBCommunicator::IChannelRxHandler class uORB::Manager
#ifdef ORB_COMMUNICATOR
: public uORBCommunicator::IChannelRxHandler
#endif /* ORB_COMMUNICATOR */
{ {
public: public:
// public interfaces for this class. // public interfaces for this class.
@@ -73,10 +78,7 @@ public:
* Make sure initialize() is called first. * Make sure initialize() is called first.
* @return uORB::Manager* * @return uORB::Manager*
*/ */
static uORB::Manager *get_instance() static uORB::Manager *get_instance() { return _Instance; }
{
return _Instance;
}
/** /**
* Get the DeviceMaster. If it does not exist, * Get the DeviceMaster. If it does not exist,
@@ -154,7 +156,6 @@ public:
orb_advert_t orb_advertise_multi(const struct orb_metadata *meta, const void *data, int *instance, orb_advert_t orb_advertise_multi(const struct orb_metadata *meta, const void *data, int *instance,
int priority, unsigned int queue_size = 1); int priority, unsigned int queue_size = 1);
/** /**
* Unadvertise a topic. * Unadvertise a topic.
* *
@@ -350,6 +351,7 @@ public:
*/ */
int orb_get_interval(int handle, unsigned *interval); int orb_get_interval(int handle, unsigned *interval);
#ifdef ORB_COMMUNICATOR
/** /**
* Method to set the uORBCommunicator::IChannel instance. * Method to set the uORBCommunicator::IChannel instance.
* @param comm_channel * @param comm_channel
@@ -370,6 +372,7 @@ public:
* for a given topic * for a given topic
*/ */
bool is_remote_subscriber_present(const char *messageName); bool is_remote_subscriber_present(const char *messageName);
#endif /* ORB_COMMUNICATOR */
private: // class methods private: // class methods
/** /**
@@ -379,13 +382,7 @@ private: // class methods
* @todo verify that the existing node is the same as the one * @todo verify that the existing node is the same as the one
* we tried to advertise. * we tried to advertise.
*/ */
int int node_advertise(const struct orb_metadata *meta, int *instance = nullptr, int priority = ORB_PRIO_DEFAULT);
node_advertise
(
const struct orb_metadata *meta,
int *instance = nullptr,
int priority = ORB_PRIO_DEFAULT
);
/** /**
* Common implementation for orb_advertise and orb_subscribe. * Common implementation for orb_advertise and orb_subscribe.
@@ -398,11 +395,14 @@ private: // class methods
private: // data members private: // data members
static Manager *_Instance; static Manager *_Instance;
#ifdef ORB_COMMUNICATOR
// the communicator channel instance. // the communicator channel instance.
uORBCommunicator::IChannel *_comm_channel; uORBCommunicator::IChannel *_comm_channel{nullptr};
ORBSet _remote_subscriber_topics; ORBSet _remote_subscriber_topics;
ORBSet _remote_topics; ORBSet _remote_topics;
#endif /* ORB_COMMUNICATOR */
DeviceMaster *_device_master{nullptr}; DeviceMaster *_device_master{nullptr};
@@ -410,6 +410,7 @@ private: //class methods
Manager(); Manager();
~Manager(); ~Manager();
#ifdef ORB_COMMUNICATOR
/** /**
* Interface to process a received topic from remote. * Interface to process a received topic from remote.
* @param topic_name * @param topic_name
@@ -436,8 +437,7 @@ private: //class methods
* handler. * handler.
* otherwise = failure. * otherwise = failure.
*/ */
virtual int16_t process_add_subscription(const char *messageName, virtual int16_t process_add_subscription(const char *messageName, int32_t msgRateInHz);
int32_t msgRateInHz);
/** /**
* Interface to process a received control msg to remove subscription * Interface to process a received control msg to remove subscription
@@ -465,9 +465,8 @@ private: //class methods
* handler. * handler.
* otherwise = failure. * otherwise = failure.
*/ */
virtual int16_t process_received_message(const char *messageName, virtual int16_t process_received_message(const char *messageName, int32_t length, uint8_t *data);
int32_t length, uint8_t *data); #endif /* ORB_COMMUNICATOR */
#ifdef ORB_USE_PUBLISHER_RULES #ifdef ORB_USE_PUBLISHER_RULES