Skip to content

Commit

Permalink
Fix the tests on cyclonedds by translating qos duration values
Browse files Browse the repository at this point in the history
Signed-off-by: Emerson Knapp <[email protected]>
  • Loading branch information
Emerson Knapp committed Jan 21, 2021
1 parent aeae096 commit 938aeef
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 20 deletions.
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,15 +187,15 @@ Below is an example profile set to the default ROS2 QoS settings.
reliability: reliable
durability: volatile
deadline:
sec: 2147483647 # LONG_MAX
nsec: 4294967295 # ULONG_MAX
sec: 0
nsec: 0
lifespan:
sec: 2147483647
nsec: 4294967295
sec: 0
nsec: 0
liveliness: system_default
liveliness_lease_duration:
sec: 2147483647
nsec: 4294967295
sec: 0
nsec: 0
avoid_ros_namespace_conventions: false
```
Expand Down
4 changes: 2 additions & 2 deletions ros2bag/test/resources/empty_bag/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ rosbag2_bagfile_information:
name: /parameter_events
type: rcl_interfaces/msg/ParameterEvent
serialization_format: cdr
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 2147483647\n nsec: 4294967295\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 0\n nsec: 0\n lifespan:\n sec: 0\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 0\n nsec: 0\n avoid_ros_namespace_conventions: false"
message_count: 0
- topic_metadata:
name: /rosout
type: rcl_interfaces/msg/Log
serialization_format: cdr
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 1\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 10\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 1\n deadline:\n sec: 0\n nsec: 0\n lifespan:\n sec: 10\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 0\n nsec: 0\n avoid_ros_namespace_conventions: false"
message_count: 0
compression_format: ""
compression_mode: ""
2 changes: 1 addition & 1 deletion ros2bag/test/resources/incomplete_qos_duration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
reliability: reliable
durability: volatile
deadline:
sec: 2147483647 # LONG_MAX
sec: 0
12 changes: 6 additions & 6 deletions ros2bag/test/resources/qos_profile.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
reliability: reliable
durability: transient_local
deadline:
sec: 2147483647
nsec: 4294967295
sec: 0
nsec: 0
lifespan:
sec: 2147483647
nsec: 4294967295
sec: 0
nsec: 0
liveliness: automatic
liveliness_lease_duration:
sec: 2147483647
nsec: 4294967295
sec: 0
nsec: 0
avoid_ros_namespace_conventions: false
6 changes: 3 additions & 3 deletions rosbag2_py/resources/talker/metadata.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,19 @@ rosbag2_bagfile_information:
name: /topic
type: std_msgs/msg/String
serialization_format: cdr
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 2147483647\n nsec: 4294967295\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 0\n nsec: 0\n lifespan:\n sec: 0\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 0\n nsec: 0\n avoid_ros_namespace_conventions: false"
message_count: 10
- topic_metadata:
name: /rosout
type: rcl_interfaces/msg/Log
serialization_format: cdr
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 1\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 10\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 1\n deadline:\n sec: 0\n nsec: 0\n lifespan:\n sec: 10\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 0\n nsec: 0\n avoid_ros_namespace_conventions: false"
message_count: 10
- topic_metadata:
name: /parameter_events
type: rcl_interfaces/msg/ParameterEvent
serialization_format: cdr
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 2147483647\n nsec: 4294967295\n lifespan:\n sec: 2147483647\n nsec: 4294967295\n liveliness: 1\n liveliness_lease_duration:\n sec: 2147483647\n nsec: 4294967295\n avoid_ros_namespace_conventions: false"
offered_qos_profiles: "- history: 3\n depth: 0\n reliability: 1\n durability: 2\n deadline:\n sec: 0\n nsec: 0\n lifespan:\n sec: 0\n nsec: 0\n liveliness: 1\n liveliness_lease_duration:\n sec: 0\n nsec: 0\n avoid_ros_namespace_conventions: false"
message_count: 0
compression_format: ""
compression_mode: ""
21 changes: 19 additions & 2 deletions rosbag2_transport/src/rosbag2_transport/qos.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,37 @@

#include "qos.hpp"

namespace
{
// These values are returned as "unspecified" in FastDDS
// 0 is equivalent and is portable to other implementation
static constexpr uint64_t FASTDDS_UNSPECIFIED_SEC = 2147483647;
static constexpr uint64_t FASTDDS_UNSPECIFIED_NSEC = 4294967295;
} // namespace

namespace YAML
{
Node convert<rmw_time_t>::encode(const rmw_time_t & time)
{
Node node;
node["sec"] = time.sec;
node["nsec"] = time.nsec;
if (time.sec == FASTDDS_UNSPECIFIED_SEC && time.nsec == FASTDDS_UNSPECIFIED_NSEC) {
node["sec"] = 0;
node["nsec"] = 0;
} else {
node["sec"] = time.sec;
node["nsec"] = time.nsec;
}
return node;
}

bool convert<rmw_time_t>::decode(const Node & node, rmw_time_t & time)
{
time.sec = node["sec"].as<uint64_t>();
time.nsec = node["nsec"].as<uint64_t>();
if (time.sec == FASTDDS_UNSPECIFIED_SEC && time.nsec == FASTDDS_UNSPECIFIED_NSEC) {
time.sec = 0;
time.nsec = 0;
}
return true;
}

Expand Down

0 comments on commit 938aeef

Please sign in to comment.