From a62330850541b80fdfb22fba40508eec7e1f3934 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Fri, 2 Jul 2021 09:44:20 +0200 Subject: [PATCH 1/5] Fix graph manager node namespaces (#72) --- .../src/agent/graph_manager/graph_manager.cpp | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp index ba61daa..e7904ef 100644 --- a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp +++ b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp @@ -309,8 +309,36 @@ void GraphManager::add_participant( if (node_name != enclave) // Do not add root node { + // Split node name in domain and node name + std::istringstream iss(node_name); + std::vector result; + std::string token; + + while(std::getline(iss, token, '/')) + { + result.push_back(token); + } + + std::string isolated_node_name = ""; + std::string isolated_namespace = ""; + + if (result.size() > 1) + { + isolated_namespace = result[0]; + for (size_t i = 1; i < result.size(); i++) + { + isolated_node_name.append(result[i] + "/"); + } + isolated_node_name.pop_back(); + } + else + { + isolated_node_name = node_name; + isolated_namespace = ""; + } + rmw_dds_common::msg::ParticipantEntitiesInfo info = - graphCache_.add_node(gid, node_name, enclave_); + graphCache_.add_node(gid, isolated_node_name, isolated_namespace); ros_discovery_datawriter_->write(static_cast(&info)); } } @@ -587,7 +615,7 @@ static eprosima::fastdds::dds::DataReaderQos reader_qos_conversion( const eprosima::fastdds::dds::ReaderQos& reader_qos) { eprosima::fastdds::dds::DataReaderQos datareader_qos; - + datareader_qos.durability(reader_qos.m_durability); datareader_qos.deadline(reader_qos.m_deadline); datareader_qos.latency_budget(reader_qos.m_latencyBudget); From f6a2aa3b6040978916cad116dcf3d72fecfc3109 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Fri, 2 Jul 2021 13:28:22 +0200 Subject: [PATCH 2/5] Fix graph manager node namespaces (#75) * Fix graph manager node namespaces * Update --- .../agent/graph_manager/graph_manager.hpp | 12 +++ .../src/agent/graph_manager/graph_manager.cpp | 76 ++++++++++++------- 2 files changed, 59 insertions(+), 29 deletions(-) diff --git a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp index 377bf82..1ef6e41 100644 --- a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp +++ b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp @@ -262,6 +262,18 @@ private: */ void update_node_entities_info(); + /** + * @brief Retrieves node name and namespace from + * participant. + * @param participant_name DDS participant name. + * @param node_name ROS2 Node name. + * @param namespace ROS2 Node namespace. + */ + void get_name_and_namespace( + std::string participant_name, + std::string& node_name, + std::string& node_namespace); + eprosima::fastdds::dds::DomainId_t domain_id_; bool graph_changed_; bool display_on_change_; diff --git a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp index e7904ef..78d35bb 100644 --- a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp +++ b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp @@ -37,6 +37,8 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) , microros_graph_info_typesupport_(std::make_unique< eprosima::fastdds::dds::TypeSupport>(new graph_manager::MicrorosGraphInfoTypeSupport())) { + eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->load_profiles(); + // Create DomainParticipant eprosima::fastdds::dds::DomainParticipantQos participant_qos = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->get_default_participant_qos(); @@ -309,33 +311,8 @@ void GraphManager::add_participant( if (node_name != enclave) // Do not add root node { - // Split node name in domain and node name - std::istringstream iss(node_name); - std::vector result; - std::string token; - - while(std::getline(iss, token, '/')) - { - result.push_back(token); - } - - std::string isolated_node_name = ""; - std::string isolated_namespace = ""; - - if (result.size() > 1) - { - isolated_namespace = result[0]; - for (size_t i = 1; i < result.size(); i++) - { - isolated_node_name.append(result[i] + "/"); - } - isolated_node_name.pop_back(); - } - else - { - isolated_node_name = node_name; - isolated_namespace = ""; - } + std::string isolated_node_name, isolated_namespace; + get_name_and_namespace(node_name, isolated_node_name, isolated_namespace); rmw_dds_common::msg::ParticipantEntitiesInfo info = graphCache_.add_node(gid, isolated_node_name, isolated_namespace); @@ -441,14 +418,18 @@ void GraphManager::associate_entity( { case dds::xrce::OBJK_DATAWRITER: { + std::string isolated_node_name, isolated_namespace; + get_name_and_namespace(qos.name().c_str(), isolated_node_name, isolated_namespace); info = graphCache_.associate_writer( - entity_gid, participant_gid, qos.name().c_str(), enclave_); + entity_gid, participant_gid, isolated_node_name, isolated_namespace); break; } case dds::xrce::OBJK_DATAREADER: { + std::string isolated_node_name, isolated_namespace; + get_name_and_namespace(qos.name().c_str(), isolated_node_name, isolated_namespace); info = graphCache_.associate_reader( - entity_gid, participant_gid, qos.name().c_str(), enclave_); + entity_gid, participant_gid, isolated_node_name, isolated_namespace); break; } default: @@ -548,6 +529,43 @@ void GraphManager::update_node_entities_info() } } +void GraphManager::get_name_and_namespace( + std::string participant_name, + std::string& node_name, + std::string& node_namespace) +{ + // Remove first / if exists + if (participant_name.rfind("/", 0) == 0) + { + participant_name.erase(participant_name.begin()); + } + + // Split node name in domain and node name + std::istringstream iss(participant_name); + std::vector result; + std::string token; + + while(std::getline(iss, token, '/')) + { + result.push_back(token); + } + + if (result.size() > 1) + { + node_namespace = "/" + result[0]; + for (size_t i = 1; i < result.size(); i++) + { + node_name.append(result[i] + "/"); + } + node_name.pop_back(); + } + else + { + node_name = participant_name; + node_namespace = "/"; + } +} + GraphManager::ParticipantListener::ParticipantListener( GraphManager* graph_manager) : eprosima::fastdds::dds::DomainParticipantListener() From 69f17c28a8d257893517ce1dfc50efd8972ef834 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Mon, 5 Jul 2021 10:49:11 +0200 Subject: [PATCH 3/5] Fix agent launch (#78) Co-authored-by: Your Name --- micro_ros_agent/launch/micro_ros_agent_launch.py | 2 +- micro_ros_agent/src/main.cpp | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/micro_ros_agent/launch/micro_ros_agent_launch.py b/micro_ros_agent/launch/micro_ros_agent_launch.py index d9071f0..4c564bd 100644 --- a/micro_ros_agent/launch/micro_ros_agent_launch.py +++ b/micro_ros_agent/launch/micro_ros_agent_launch.py @@ -7,6 +7,6 @@ def generate_launch_description(): package='micro_ros_agent', executable='micro_ros_agent', name='micro_ros_agent', - arguments={'udp4 --port 8888 -v6'} + arguments={"udp4", "-p", "8888", "-v6"} ) ]) diff --git a/micro_ros_agent/src/main.cpp b/micro_ros_agent/src/main.cpp index c9333ab..d5b29bf 100644 --- a/micro_ros_agent/src/main.cpp +++ b/micro_ros_agent/src/main.cpp @@ -27,6 +27,11 @@ int main(int argc, char** argv) std::vector params; for (int i = 0; i < argc; ++i) { + if(strcmp("--ros-args", argv[i]) == 0) + { + argc = i; + break; + } params.emplace_back(std::string(argv[i])); } From 95fecd77ae5fbd7cb007d06d1bc31b3387408b13 Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Thu, 8 Jul 2021 15:21:01 +0200 Subject: [PATCH 4/5] Graph manager: Fix participant mask for listener callbacks (#81) --- micro_ros_agent/src/agent/graph_manager/graph_manager.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp index 78d35bb..c5106b0 100644 --- a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp +++ b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp @@ -54,8 +54,9 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) participant_qos.wire_protocol().builtin.writerHistoryMemoryPolicy = eprosima::fastrtps::rtps::PREALLOCATED_WITH_REALLOC_MEMORY_MODE; + eprosima::fastdds::dds::StatusMask par_mask = eprosima::fastdds::dds::StatusMask::none(); participant_.reset(eprosima::fastdds::dds::DomainParticipantFactory::get_instance()-> - create_participant(domain_id_, participant_qos, participant_listener_.get())); + create_participant(domain_id_, participant_qos, participant_listener_.get(), par_mask)); // Register participant within typesupport participant_->register_type(*participant_info_typesupport_); From 646ca52aab4e03620938562086896d05c2c950ee Mon Sep 17 00:00:00 2001 From: Pablo Garrido Date: Fri, 9 Jul 2021 13:36:31 +0200 Subject: [PATCH 5/5] Fix graph manager datawriters behaviour (#84) * Fix graph manager datawriters Fixes Fix Fix destruction * Revert "Fix graph manager datawriters" This reverts commit 2847a2ebc3bdc0760837c3b86f2ff4f48e86592d. * Initial --- .../agent/graph_manager/graph_manager.hpp | 32 +++---- micro_ros_agent/src/agent/Agent.cpp | 48 +++------- .../src/agent/graph_manager/graph_manager.cpp | 89 +++++++++++-------- 3 files changed, 78 insertions(+), 91 deletions(-) diff --git a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp index 1ef6e41..f0d94d2 100644 --- a/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp +++ b/micro_ros_agent/include/agent/graph_manager/graph_manager.hpp @@ -89,28 +89,22 @@ public: /** * @brief Adds a DDS participant to the graph tree. - * @param participant Pointer to the participant to be added to the graph. - */ - void add_participant( - const eprosima::fastdds::dds::DomainParticipant* participant); - - /** - * @brief Adds a DDS participant to the graph tree. - * @param guid rtps::GUID_t of the participant to be added. - * @param node_name Name of the ROS 2 node associated to the given participant. + * @param participant eprosima::fastdds::dds::DomainParticipant to be added. + * @param from_microros if this participant has been added from micro-ROS. * @param enclave ROS 2 enclave. */ void add_participant( - const eprosima::fastrtps::rtps::GUID_t& guid, - const std::string& node_name, - const std::string& enclave); + const eprosima::fastdds::dds::DomainParticipant* participant, + bool from_microros = true, + const std::string& enclave = "/"); /** * @brief Removes a DDS participant from the graph tree. - * @param guid rtps::GUID_t of the participant to be removed. + * @param participant eprosima::fastdds::dds::DomainParticipant to be removed. */ void remove_participant( - const eprosima::fastrtps::rtps::GUID_t& guid); + const eprosima::fastdds::dds::DomainParticipant* participant, + bool from_microros = true); /** * @brief Adds a DDS datawriter to the graph tree. @@ -277,11 +271,12 @@ private: eprosima::fastdds::dds::DomainId_t domain_id_; bool graph_changed_; bool display_on_change_; - const char * enclave_; std::thread microros_graph_publisher_; std::mutex mtx_; std::condition_variable cv_; + eprosima::fastdds::dds::DataWriterQos datawriter_qos_; + rmw_dds_common::GraphCache graphCache_; std::unique_ptr participant_listener_; std::unique_ptr datareader_listener_; @@ -293,9 +288,14 @@ private: std::unique_ptr subscriber_; std::unique_ptr ros_discovery_topic_; std::unique_ptr ros_to_microros_graph_topic_; - std::unique_ptr ros_discovery_datawriter_; std::unique_ptr ros_to_microros_graph_datawriter_; std::unique_ptr ros_discovery_datareader_; + + // Store a auxiliary publishers and datawriter for each participant created in micro-ROS + std::map< + const eprosima::fastdds::dds::DomainParticipant*, + std::unique_ptr + > micro_ros_graph_datawriters_; }; } // namespace graph_manager diff --git a/micro_ros_agent/src/agent/Agent.cpp b/micro_ros_agent/src/agent/Agent.cpp index 72c4508..87ef3cf 100644 --- a/micro_ros_agent/src/agent/Agent.cpp +++ b/micro_ros_agent/src/agent/Agent.cpp @@ -40,12 +40,7 @@ bool Agent::create( ([&]( const eprosima::fastdds::dds::DomainParticipant* participant) -> void { - auto graph_manager_ = - find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t( - participant->get_domain_id() - ) - ); - + auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id()); graph_manager_->add_participant(participant); }); xrce_dds_agent_instance_.add_middleware_callback( @@ -61,13 +56,8 @@ bool Agent::create( ([&]( const eprosima::fastdds::dds::DomainParticipant* participant) -> void { - auto graph_manager_ = - find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t( - participant->get_domain_id() - ) - ); - - graph_manager_->remove_participant(participant->guid()); + auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id()); + graph_manager_->remove_participant(participant); }); xrce_dds_agent_instance_.add_middleware_callback( eprosima::uxr::Middleware::Kind::FASTDDS, @@ -84,11 +74,7 @@ bool Agent::create( const eprosima::fastdds::dds::DomainParticipant* participant, const eprosima::fastdds::dds::DataWriter* datawriter) -> void { - auto graph_manager_ = - find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t( - participant->get_domain_id() - ) - ); + auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id()); // TODO(jamoralp): Workaround for Fast-DDS bug #9977. Remove when fixed const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle = @@ -115,11 +101,7 @@ bool Agent::create( const eprosima::fastdds::dds::DataWriter* datawriter) -> void { - auto graph_manager_ = - find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t( - participant->get_domain_id() - ) - ); + auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id()); // TODO(jamoralp): Workaround for Fast-DDS bug #9977. Remove when fixed const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle = @@ -144,11 +126,7 @@ bool Agent::create( const eprosima::fastdds::dds::DomainParticipant* participant, const eprosima::fastdds::dds::DataReader* datareader) -> void { - auto graph_manager_ = - find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t( - participant->get_domain_id() - ) - ); + auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id()); // TODO(jamoralp): Workaround for Fast-DDS bug #9977. Remove when fixed const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle = @@ -174,11 +152,7 @@ bool Agent::create( const eprosima::fastdds::dds::DomainParticipant* participant, const eprosima::fastdds::dds::DataReader* datareader) -> void { - auto graph_manager_ = - find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t( - participant->get_domain_id() - ) - ); + auto graph_manager_ = find_or_create_graph_manager(participant->get_domain_id()); // TODO(jamoralp): Workaround for Fast-DDS bug #9977. Remove when fixed const eprosima::fastrtps::rtps::InstanceHandle_t instance_handle = @@ -204,16 +178,14 @@ void Agent::run() std::shared_ptr Agent::find_or_create_graph_manager(eprosima::fastdds::dds::DomainId_t domain_id) { - auto it = graph_manager_map_.find(domain_id); + +auto it = graph_manager_map_.find(domain_id); if (it != graph_manager_map_.end()) { return it->second; }else{ return graph_manager_map_.insert( - std::pair< - eprosima::fastdds::dds::DomainId_t, - std::shared_ptr - >( + std::make_pair( domain_id, std::make_shared(domain_id) ) diff --git a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp index c5106b0..9badffc 100644 --- a/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp +++ b/micro_ros_agent/src/agent/graph_manager/graph_manager.cpp @@ -22,11 +22,9 @@ namespace agent { namespace graph_manager { GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) - // : eprosima::fastrtps::ParticipantListener() : domain_id_(domain_id) , graph_changed_(false) , display_on_change_(false) - , enclave_("/") , mtx_() , cv_() , graphCache_() @@ -43,12 +41,13 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) eprosima::fastdds::dds::DomainParticipantQos participant_qos = eprosima::fastdds::dds::DomainParticipantFactory::get_instance()->get_default_participant_qos(); - size_t length = snprintf(nullptr, 0, "enclave=%s;", enclave_) + 1; + const char * enclave = "/"; + size_t length = snprintf(nullptr, 0, "enclave=%s;", enclave) + 1; participant_qos.user_data().resize(length); snprintf(reinterpret_cast(participant_qos.user_data().data_vec().data()), - length, "enclave=%s;", enclave_); + length, "enclave=%s;", enclave); - participant_qos.name(enclave_); + participant_qos.name(enclave); participant_qos.wire_protocol().builtin.readerHistoryMemoryPolicy = eprosima::fastrtps::rtps::PREALLOCATED_WITH_REALLOC_MEMORY_MODE; participant_qos.wire_protocol().builtin.writerHistoryMemoryPolicy = @@ -80,28 +79,26 @@ GraphManager::GraphManager(eprosima::fastdds::dds::DomainId_t domain_id) eprosima::fastdds::dds::TOPIC_QOS_DEFAULT)); // Create datawriters - eprosima::fastdds::dds::DataWriterQos datawriter_qos = + datawriter_qos_ = eprosima::fastdds::dds::DATAWRITER_QOS_DEFAULT; - datawriter_qos.history().kind = + datawriter_qos_.history().kind = eprosima::fastdds::dds::HistoryQosPolicyKind::KEEP_LAST_HISTORY_QOS; - datawriter_qos.history().depth = 1; - datawriter_qos.endpoint().history_memory_policy = + datawriter_qos_.history().depth = 1; + datawriter_qos_.endpoint().history_memory_policy = eprosima::fastrtps::rtps::MemoryManagementPolicy::PREALLOCATED_WITH_REALLOC_MEMORY_MODE; - datawriter_qos.publish_mode().kind = + datawriter_qos_.publish_mode().kind = eprosima::fastdds::dds::PublishModeQosPolicyKind::ASYNCHRONOUS_PUBLISH_MODE; - datawriter_qos.reliability().kind = + datawriter_qos_.reliability().kind = eprosima::fastdds::dds::ReliabilityQosPolicyKind::RELIABLE_RELIABILITY_QOS; - datawriter_qos.durability().kind = + datawriter_qos_.durability().kind = eprosima::fastdds::dds::DurabilityQosPolicyKind::TRANSIENT_LOCAL_DURABILITY_QOS; - ros_discovery_datawriter_.reset( - publisher_->create_datawriter(ros_discovery_topic_.get(), datawriter_qos)); - - datawriter_qos.history().kind = + eprosima::fastdds::dds::DataWriterQos ros_to_microros_datawriter_qos_ = datawriter_qos_; + ros_to_microros_datawriter_qos_.history().kind = eprosima::fastdds::dds::HistoryQosPolicyKind::KEEP_ALL_HISTORY_QOS; ros_to_microros_graph_datawriter_.reset( - publisher_->create_datawriter(ros_to_microros_graph_topic_.get(), datawriter_qos)); + publisher_->create_datawriter(ros_to_microros_graph_topic_.get(), ros_to_microros_datawriter_qos_)); // Create datareaders @@ -295,37 +292,55 @@ inline void GraphManager::publish_microros_graph() } void GraphManager::add_participant( - const eprosima::fastdds::dds::DomainParticipant* participant) -{ - const eprosima::fastdds::dds::DomainParticipantQos qos = participant->get_qos(); - this->add_participant(participant->guid(), qos.name().to_string(), enclave_); -} - -void GraphManager::add_participant( - const eprosima::fastrtps::rtps::GUID_t& guid, - const std::string& node_name, + const eprosima::fastdds::dds::DomainParticipant* participant, + bool from_microros, const std::string& enclave) { - const rmw_gid_t gid = rmw_fastrtps_shared_cpp::create_rmw_gid("rmw_fastrtps_cpp", guid); + const eprosima::fastdds::dds::DomainParticipantQos qos = participant->get_qos(); + const rmw_gid_t gid = rmw_fastrtps_shared_cpp::create_rmw_gid("rmw_fastrtps_cpp", participant->guid()); graphCache_.add_participant(gid, enclave); - if (node_name != enclave) // Do not add root node + // Do not add root node and + // do not announce non-micro-ROS participants + if (qos.name().to_string() != "/" && from_microros) { std::string isolated_node_name, isolated_namespace; - get_name_and_namespace(node_name, isolated_node_name, isolated_namespace); + get_name_and_namespace(qos.name().to_string(), isolated_node_name, isolated_namespace); rmw_dds_common::msg::ParticipantEntitiesInfo info = graphCache_.add_node(gid, isolated_node_name, isolated_namespace); - ros_discovery_datawriter_->write(static_cast(&info)); + + auto it = micro_ros_graph_datawriters_.find(participant); + if (it == micro_ros_graph_datawriters_.end()) + { + // Create datawriter + std::unique_ptr datawriter; + datawriter.reset(publisher_->create_datawriter(ros_discovery_topic_.get(), datawriter_qos_)); + + it = micro_ros_graph_datawriters_.insert( + std::make_pair(participant, std::move(datawriter))).first; + } + + it->second->write(static_cast(&info)); } } void GraphManager::remove_participant( - const eprosima::fastrtps::rtps::GUID_t& guid) + const eprosima::fastdds::dds::DomainParticipant* participant, + bool from_microros) { - const rmw_gid_t gid = rmw_fastrtps_shared_cpp::create_rmw_gid("rmw_fastrtps_cpp", guid); + const rmw_gid_t gid = rmw_fastrtps_shared_cpp::create_rmw_gid("rmw_fastrtps_cpp", participant->guid()); graphCache_.remove_participant(gid); + + if (from_microros) + { + rmw_dds_common::msg::ParticipantEntitiesInfo info; + rmw_dds_common::convert_gid_to_msg(&gid, &info.gid); + auto it = micro_ros_graph_datawriters_.find(participant); + it->second->write(static_cast(&info)); + } + micro_ros_graph_datawriters_.erase(participant); } void GraphManager::add_datawriter( @@ -438,7 +453,9 @@ void GraphManager::associate_entity( break; } } - ros_discovery_datawriter_->write(static_cast(&info)); + + auto it = micro_ros_graph_datawriters_.find(participant); + it->second->write(static_cast(&info)); } @@ -592,13 +609,13 @@ void GraphManager::ParticipantListener::on_participant_discovery( const std::string enclave = std::string(name_found->second.begin(), name_found->second.end()); - graphManager_from_->add_participant(participant->guid(), info.info.m_participantName.to_string(), enclave); + graphManager_from_->add_participant(participant, false, enclave); break; } case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::REMOVED_PARTICIPANT: case eprosima::fastrtps::rtps::ParticipantDiscoveryInfo::DROPPED_PARTICIPANT: { - graphManager_from_->remove_participant(info.info.m_guid); + graphManager_from_->remove_participant(participant, false); break; } default: @@ -713,7 +730,6 @@ void GraphManager::ParticipantListener::on_subscriber_discovery( eprosima::fastrtps::rtps::ReaderDiscoveryInfo&& info) { process_discovery_info(info); - // graphManager_from_->associate_entity(info.info.guid(), participant, dds::xrce::OBJK_DATAREADER); } void GraphManager::ParticipantListener::on_publisher_discovery( @@ -721,7 +737,6 @@ void GraphManager::ParticipantListener::on_publisher_discovery( eprosima::fastrtps::rtps::WriterDiscoveryInfo&& info) { process_discovery_info(info); - // graphManager_from_->associate_entity(info.info.guid(), participant, dds::xrce::OBJK_DATAWRITER); } GraphManager::DatareaderListener::DatareaderListener(