msg: urtps: change the topic Data Type name to match expected on ROS2

This commit is contained in:
TSC21 2020-01-10 09:55:05 +00:00 committed by Julian Kent
parent 23e17aec42
commit 722f287281
4 changed files with 27 additions and 12 deletions

View File

@ -95,13 +95,20 @@ bool @(topic)_Publisher::init()
if(mp_participant == nullptr)
return false;
@[if ros2_distro and (ros2_distro == "dashing" or ros2_distro == "eloquent")]@
// Type name should match the expected type name on ROS2
// Note: the change is being done here since the 'fastrtpsgen' example
// generator does not allow to change the type naming on the template
@(topic)DataType.setName("@(package)::msg::dds_::@(topic)_");
@[end if]@
// Register the type
Domain::registerType(mp_participant, static_cast<TopicDataType*>(&myType));
Domain::registerType(mp_participant, static_cast<TopicDataType*>(&@(topic)DataType));
// Create Publisher
PublisherAttributes Wparam;
Wparam.topic.topicKind = NO_KEY;
Wparam.topic.topicDataType = myType.getName(); //This type MUST be registered
Wparam.topic.topicDataType = @(topic)DataType.getName();
@[if ros2_distro]@
@[ if ros2_distro == "ardent"]@
Wparam.qos.m_partition.push_back("rt");

View File

@ -111,15 +111,15 @@ private:
} m_listener;
@[if 1.5 <= fastrtpsgen_version <= 1.7]@
@[ if ros2_distro]@
@(package)::msg::dds_::@(topic)_PubSubType myType;
@(package)::msg::dds_::@(topic)_PubSubType @(topic)DataType;
@[ else]@
@(topic)_PubSubType myType;
@(topic)_PubSubType @(topic)DataType;
@[ end if]@
@[else]@
@[ if ros2_distro]@
@(package)::msg::@(topic)PubSubType myType;
@(package)::msg::@(topic)PubSubType @(topic)DataType;
@[ else]@
@(topic)PubSubType myType;
@(topic)PubSubType @(topic)DataType;
@[ end if]@
@[end if]@
};

View File

@ -94,13 +94,21 @@ bool @(topic)_Subscriber::init(uint8_t topic_ID, std::condition_variable* t_send
if(mp_participant == nullptr)
return false;
@[if ros2_distro and (ros2_distro == "dashing" or ros2_distro == "eloquent")]@
// Type name should match the expected type name on ROS2
// Note: the change is being done here since the 'fastrtpsgen' example
// generator does not allow to change the type naming on the template of
// "*PubSubTypes.cpp" file
@(topic)DataType.setName("@(package)::msg::dds_::@(topic)_");
@[end if]@
//Register the type
Domain::registerType(mp_participant, static_cast<TopicDataType*>(&myType));
Domain::registerType(mp_participant, static_cast<TopicDataType*>(&@(topic)DataType));
// Create Subscriber
SubscriberAttributes Rparam;
Rparam.topic.topicKind = NO_KEY;
Rparam.topic.topicDataType = myType.getName(); //Must be registered before the creation of the subscriber
Rparam.topic.topicDataType = @(topic)DataType.getName();
@[if ros2_distro]@
@[ if ros2_distro == "ardent"]@
Rparam.qos.m_partition.push_back("rt");

View File

@ -142,15 +142,15 @@ private:
} m_listener;
@[if 1.5 <= fastrtpsgen_version <= 1.7]@
@[ if ros2_distro]@
@(package)::msg::dds_::@(topic)_PubSubType myType;
@(package)::msg::dds_::@(topic)_PubSubType @(topic)DataType;
@[ else]@
@(topic)_PubSubType myType;
@(topic)_PubSubType @(topic)DataType;
@[ end if]@
@[else]@
@[ if ros2_distro]@
@(package)::msg::@(topic)PubSubType myType;
@(package)::msg::@(topic)PubSubType @(topic)DataType;
@[ else]@
@(topic)PubSubType myType;
@(topic)PubSubType @(topic)DataType;
@[ end if]@
@[end if]@
};