Skip to content

Commit e77dca4

Browse files
Bump micro-ROS-Agent to Fast DDS v3.0.1 (#237)
* Bump to Fast DDS v3 Signed-off-by: Carlosespicur <carlosespicur@proton.me> * Fix xrce agent package name and change git tag in SuperBuild.cmake Signed-off-by: Carlosespicur <carlosespicur@proton.me> * Bump XRCE Agent version --------- Signed-off-by: Carlosespicur <carlosespicur@proton.me> Co-authored-by: Pablo Garrido <pablogs9@gmail.com>
1 parent 904d890 commit e77dca4

File tree

8 files changed

+291
-222
lines changed

8 files changed

+291
-222
lines changed

micro_ros_agent/CMakeLists.txt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ else()
3131
endif()
3232

3333
find_package(ament_cmake REQUIRED)
34-
find_package(microxrcedds_agent REQUIRED)
3534
find_package(rosidl_cmake REQUIRED)
3635
find_package(fastcdr REQUIRED)
37-
find_package(fastrtps REQUIRED)
36+
find_package(fastdds REQUIRED)
37+
find_package(microxrcedds_agent REQUIRED)
3838
find_package(fastrtps_cmake_module REQUIRED)
3939
find_package(rmw_dds_common REQUIRED)
4040
find_package(rmw REQUIRED)
@@ -68,7 +68,7 @@ ament_target_dependencies(${PROJECT_NAME}
6868
rosidl_runtime_cpp
6969
rosidl_typesupport_cpp
7070
fastcdr
71-
fastrtps
71+
fastdds
7272
rmw_dds_common
7373
rmw
7474
rmw_fastrtps_shared_cpp
@@ -78,7 +78,7 @@ ament_target_dependencies(${PROJECT_NAME}
7878
target_link_libraries(${PROJECT_NAME}
7979
microxrcedds_agent
8080
fastcdr
81-
fastrtps
81+
fastdds
8282
$<$<BOOL:$<PLATFORM_ID:Linux>>:rt>
8383
$<$<BOOL:$<PLATFORM_ID:Linux>>:dl>
8484
)

micro_ros_agent/cmake/SuperBuild.cmake

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ unset(_deps)
1919
enable_language(C)
2020
enable_language(CXX)
2121

22-
unset(xrceagent_DIR CACHE)
23-
find_package(xrceagent 2 EXACT QUIET)
22+
unset(microxrcedds_agent_DIR CACHE)
23+
find_package(microxrcedds_agent 2 EXACT QUIET)
2424
if(NOT xrceagent_FOUND)
25-
ExternalProject_Add(xrceagent
25+
ExternalProject_Add(microxrcedds_agent
2626
GIT_REPOSITORY
2727
https://github.com/eProsima/Micro-XRCE-DDS-Agent.git
2828
GIT_TAG
29-
v2.4.3
29+
v3.0.0
3030
PREFIX
3131
${PROJECT_BINARY_DIR}/agent
3232
INSTALL_DIR
@@ -64,5 +64,5 @@ ExternalProject_Add(micro_ros_agent
6464
INSTALL_COMMAND
6565
""
6666
DEPENDS
67-
xrceagent
67+
microxrcedds_agent
6868
)

micro_ros_agent/include/agent/graph_manager/graph_manager.hpp

Lines changed: 34 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,28 +15,25 @@
1515
#ifndef _UROS_AGENT_GRAPH_MANAGER_HPP
1616
#define _UROS_AGENT_GRAPH_MANAGER_HPP
1717

18-
#include "fastrtps/Domain.h"
19-
#include <fastrtps/TopicDataType.h>
20-
#include "fastrtps/attributes/ParticipantAttributes.h"
21-
#include "fastrtps/participant/Participant.h"
22-
#include "fastrtps/participant/ParticipantListener.h"
23-
#include "fastrtps/attributes/PublisherAttributes.h"
24-
#include "fastrtps/publisher/Publisher.h"
25-
#include <fastrtps/publisher/PublisherListener.h>
26-
#include <fastrtps/rtps/common/MatchingInfo.h>
27-
18+
#include "fastdds/dds/topic/TopicDataType.hpp"
19+
#include "fastdds/rtps/attributes/RTPSParticipantAttributes.hpp"
20+
#include "fastdds/rtps/participant/RTPSParticipant.hpp"
21+
#include "fastdds/rtps/participant/RTPSParticipantListener.hpp"
22+
#include "fastdds/rtps/RTPSDomain.hpp"
2823
#include <fastdds/dds/domain/DomainParticipant.hpp>
2924
#include <fastdds/dds/domain/DomainParticipantFactory.hpp>
3025
#include <fastdds/dds/domain/DomainParticipantListener.hpp>
3126
#include <fastdds/dds/domain/qos/DomainParticipantQos.hpp>
3227
#include <fastdds/dds/publisher/DataWriter.hpp>
33-
#include <fastdds/dds/publisher/qos/DataWriterQos.hpp>
3428
#include <fastdds/dds/publisher/Publisher.hpp>
29+
#include <fastdds/dds/publisher/PublisherListener.hpp>
30+
#include <fastdds/dds/publisher/qos/DataWriterQos.hpp>
3531
#include <fastdds/dds/subscriber/DataReader.hpp>
32+
#include <fastdds/dds/subscriber/DataReaderListener.hpp>
3633
#include <fastdds/dds/subscriber/qos/DataReaderQos.hpp>
3734
#include <fastdds/dds/subscriber/SampleInfo.hpp>
3835
#include <fastdds/dds/subscriber/Subscriber.hpp>
39-
#include <fastdds/dds/subscriber/DataReaderListener.hpp>
36+
#include <fastdds/rtps/common/MatchingInfo.hpp>
4037

4138
#include "rmw/types.h"
4239
#include "rmw/names_and_types.h"
@@ -125,7 +122,7 @@ class GraphManager
125122
* @param datawriter Pointer to the datawriter to be added.
126123
*/
127124
void add_datawriter(
128-
const eprosima::fastrtps::rtps::GUID_t& datawriter_guid,
125+
const eprosima::fastdds::rtps::GUID_t& datawriter_guid,
129126
const eprosima::fastdds::dds::DomainParticipant* participant,
130127
const eprosima::fastdds::dds::DataWriter* datawriter);
131128

@@ -138,18 +135,18 @@ class GraphManager
138135
* @param writer_qos QOS of the datawriter to be included into the graph tree.
139136
*/
140137
void add_datawriter(
141-
const eprosima::fastrtps::rtps::GUID_t& datawriter_guid,
138+
const eprosima::fastdds::rtps::GUID_t& datawriter_guid,
142139
const std::string& topic_name,
143140
const std::string& type_name,
144-
const eprosima::fastrtps::rtps::GUID_t& participant_guid,
141+
const eprosima::fastdds::rtps::GUID_t& participant_guid,
145142
const eprosima::fastdds::dds::DataWriterQos& writer_qos);
146143

147144
/**
148145
* @brief Removes a DDS datawriter from the graph tree.
149146
* @param datawriter_guid rtps::GUID_t of the datawriter to be removed.
150147
*/
151148
void remove_datawriter(
152-
const eprosima::fastrtps::rtps::GUID_t& datawriter_guid);
149+
const eprosima::fastdds::rtps::GUID_t& datawriter_guid);
153150

154151
/**
155152
* @brief Adds a DDS datareader to the graph tree.
@@ -158,7 +155,7 @@ class GraphManager
158155
* @param datareader Pointer to the datareader to be added.
159156
*/
160157
void add_datareader(
161-
const eprosima::fastrtps::rtps::GUID_t& datareader_guid,
158+
const eprosima::fastdds::rtps::GUID_t& datareader_guid,
162159
const eprosima::fastdds::dds::DomainParticipant* participant,
163160
const eprosima::fastdds::dds::DataReader* datareader);
164161

@@ -168,21 +165,21 @@ class GraphManager
168165
* @param topic_name Name of the topic to which the datareader sends information to.
169166
* @param type_name Type name of the sent topic.
170167
* @param participant_guid rtps::GUID_t of the participant which owns this datareader.
171-
* @param writer_qos QOS of the datareader to be included into the graph tree.
168+
* @param reader_qos QOS of the datareader to be included into the graph tree.
172169
*/
173170
void add_datareader(
174-
const eprosima::fastrtps::rtps::GUID_t& datareader_guid,
171+
const eprosima::fastdds::rtps::GUID_t& datareader_guid,
175172
const std::string& topic_name,
176173
const std::string& type_name,
177-
const eprosima::fastrtps::rtps::GUID_t& participant_guid,
174+
const eprosima::fastdds::rtps::GUID_t& participant_guid,
178175
const eprosima::fastdds::dds::DataReaderQos& reader_qos);
179176

180177
/**
181178
* @brief Removes a DDS datareader from the graph tree.
182179
* @param datareader_guid rtps::GUID_t of the datareader to be removed.
183180
*/
184181
void remove_datareader(
185-
const eprosima::fastrtps::rtps::GUID_t& datareader_guid);
182+
const eprosima::fastdds::rtps::GUID_t& datareader_guid);
186183

187184
/**
188185
* @brief Associates a certain DDS entity with a provided participant.
@@ -191,7 +188,7 @@ class GraphManager
191188
* @param entity_kind Kind of the DDS entity.
192189
*/
193190
void associate_entity(
194-
const eprosima::fastrtps::rtps::GUID_t& entity_guid,
191+
const eprosima::fastdds::rtps::GUID_t& entity_guid,
195192
const eprosima::fastdds::dds::DomainParticipant* participant,
196193
const dds::xrce::ObjectKind& entity_kind);
197194

@@ -212,21 +209,28 @@ class GraphManager
212209
GraphManager* graph_manager);
213210
private:
214211

215-
template <typename Info>
212+
template <typename DiscoveryStatus, typename Info>
216213
void process_discovery_info(
214+
DiscoveryStatus reason,
217215
const Info& proxyData);
218216

219217
void on_participant_discovery(
220218
eprosima::fastdds::dds::DomainParticipant* participant,
221-
eprosima::fastrtps::rtps::ParticipantDiscoveryInfo&& info) override;
219+
eprosima::fastdds::rtps::ParticipantDiscoveryStatus reason,
220+
const eprosima::fastdds::dds::ParticipantBuiltinTopicData& info,
221+
bool& should_be_ignored) override;
222222

223-
void on_subscriber_discovery(
224-
eprosima::fastdds::dds::DomainParticipant* /*participant*/,
225-
eprosima::fastrtps::rtps::ReaderDiscoveryInfo&& info) override;
223+
void on_data_reader_discovery(
224+
eprosima::fastdds::dds::DomainParticipant* participant,
225+
eprosima::fastdds::rtps::ReaderDiscoveryStatus reason,
226+
const eprosima::fastdds::dds::SubscriptionBuiltinTopicData& info,
227+
bool& should_be_ignored) override;
226228

227-
void on_publisher_discovery(
228-
eprosima::fastdds::dds::DomainParticipant* /*participant*/,
229-
eprosima::fastrtps::rtps::WriterDiscoveryInfo&& info) override;
229+
void on_data_writer_discovery(
230+
eprosima::fastdds::dds::DomainParticipant* participant,
231+
eprosima::fastdds::rtps::WriterDiscoveryStatus reason,
232+
const eprosima::fastdds::dds::PublicationBuiltinTopicData& info,
233+
bool& should_be_ignored) override;
230234

231235
GraphManager* graphManager_from_;
232236
};

micro_ros_agent/include/agent/graph_manager/graph_typesupport.hpp

Lines changed: 44 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,18 +15,16 @@
1515
#ifndef UROS_AGENT_GRAPH_PARTICIPANTS_TYPESUPPORT_HPP_
1616
#define UROS_AGENT_GRAPH_PARTICIPANTS_TYPESUPPORT_HPP_
1717

18-
#include "fastrtps/Domain.h"
19-
#include <fastrtps/TopicDataType.h>
20-
#include "fastrtps/attributes/ParticipantAttributes.h"
21-
#include "fastrtps/participant/Participant.h"
22-
#include "fastrtps/participant/ParticipantListener.h"
23-
#include "fastrtps/attributes/PublisherAttributes.h"
24-
#include "fastrtps/publisher/Publisher.h"
25-
#include <fastrtps/publisher/PublisherListener.h>
26-
#include <fastrtps/rtps/common/MatchingInfo.h>
27-
18+
#include "fastdds/dds/publisher/Publisher.hpp"
19+
#include "fastdds/dds/topic/TopicDataType.hpp"
20+
#include "fastdds/rtps/attributes/RTPSParticipantAttributes.hpp"
21+
#include "fastdds/rtps/participant/RTPSParticipant.hpp"
22+
#include "fastdds/rtps/participant/RTPSParticipantListener.hpp"
23+
#include "fastdds/rtps/RTPSDomain.hpp"
2824
#include <fastdds/dds/domain/DomainParticipant.hpp>
2925
#include <fastdds/dds/domain/qos/DomainParticipantQos.hpp>
26+
#include <fastdds/dds/publisher/PublisherListener.hpp>
27+
#include <fastdds/rtps/common/MatchingInfo.hpp>
3028

3129
#include "rmw/types.h"
3230
#include "rmw/impl/cpp/key_value.hpp"
@@ -59,24 +57,31 @@ class ParticipantEntitiesInfoTypeSupport : public eprosima::fastdds::dds::TopicD
5957
ParticipantEntitiesInfoTypeSupport();
6058

6159
virtual bool serialize(
62-
void* data,
63-
eprosima::fastrtps::rtps::SerializedPayload_t* payload) override;
60+
const void* const data,
61+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
62+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override;
6463

6564
virtual bool deserialize(
66-
eprosima::fastrtps::rtps::SerializedPayload_t* payload,
65+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
6766
void* data) override;
6867

69-
virtual std::function<uint32_t()> getSerializedSizeProvider(
70-
void* data) override;
68+
virtual uint32_t calculate_serialized_size(
69+
const void* const data,
70+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override;
71+
72+
virtual void* create_data() override;
7173

72-
virtual void* createData() override;
74+
virtual void delete_data(void* data) override;
7375

74-
virtual void deleteData(void* data) override;
76+
virtual bool compute_key(
77+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
78+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
79+
bool force_md5 = false) override;
7580

76-
virtual bool getKey(
77-
void* data,
78-
eprosima::fastrtps::rtps::InstanceHandle_t* handle,
79-
bool force_md5) override;
81+
virtual bool compute_key(
82+
const void* const data,
83+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
84+
bool force_md5 = false) override;
8085

8186
private:
8287

@@ -95,24 +100,31 @@ class MicrorosGraphInfoTypeSupport : public eprosima::fastdds::dds::TopicDataTyp
95100
MicrorosGraphInfoTypeSupport();
96101

97102
virtual bool serialize(
98-
void* data,
99-
eprosima::fastrtps::rtps::SerializedPayload_t* payload) override;
103+
const void* const data,
104+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
105+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override;
100106

101107
virtual bool deserialize(
102-
eprosima::fastrtps::rtps::SerializedPayload_t* payload,
108+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
103109
void* data) override;
104110

105-
virtual std::function<uint32_t()> getSerializedSizeProvider(
106-
void* data) override;
111+
virtual uint32_t calculate_serialized_size(
112+
const void* const data,
113+
eprosima::fastdds::dds::DataRepresentationId_t data_representation) override;
114+
115+
virtual void* create_data() override;
107116

108-
virtual void* createData() override;
117+
virtual void delete_data(void* data) override;
109118

110-
virtual void deleteData(void* data) override;
119+
virtual bool compute_key(
120+
eprosima::fastdds::rtps::SerializedPayload_t& payload,
121+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
122+
bool force_md5 = false) override;
111123

112-
virtual bool getKey(
113-
void* data,
114-
eprosima::fastrtps::rtps::InstanceHandle_t* handle,
115-
bool force_md5) override;
124+
virtual bool compute_key(
125+
const void* const data,
126+
eprosima::fastdds::rtps::InstanceHandle_t& ihandle,
127+
bool force_md5 = false) override;
116128

117129
private:
118130

micro_ros_agent/package.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<depend>rmw_fastrtps_shared_cpp</depend>
2121
<depend>rmw_dds_common</depend>
2222
<depend>micro_ros_msgs</depend>
23+
<depend>microxrcedds_agent</depend>
2324

2425
<test_depend>rosidl_typesupport_fastrtps_cpp</test_depend>
2526
<test_depend>ament_cmake_gtest</test_depend>

0 commit comments

Comments
 (0)