Skip to content

Commit a19ad21

Browse files
authored
Adding QoS to subscription options (ros2#2323)
* Adding QoS to subscription options Signed-off-by: CursedRock17 <[email protected]>
1 parent 26f6efa commit a19ad21

File tree

3 files changed

+8
-1
lines changed

3 files changed

+8
-1
lines changed

rclcpp/include/rclcpp/create_subscription.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ create_subscription(
8888
node_parameters,
8989
node_topics_interface,
9090
options.topic_stats_options.publish_topic,
91-
qos);
91+
options.topic_stats_options.qos);
9292

9393
subscription_topic_stats =
9494
std::make_shared<rclcpp::topic_statistics::SubscriptionTopicStatistics>(

rclcpp/include/rclcpp/subscription_options.hpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,10 @@ struct SubscriptionOptionsBase
7777
// Topic statistics publication period in ms. Defaults to one second.
7878
// Only values greater than zero are allowed.
7979
std::chrono::milliseconds publish_period{std::chrono::seconds(1)};
80+
81+
// An optional QoS which can provide topic_statistics with a stable QoS separate from
82+
// the subscription's current QoS settings which could be unstable.
83+
rclcpp::QoS qos = SystemDefaultsQoS();
8084
};
8185

8286
TopicStatisticsOptions topic_stats_options;

rclcpp/test/rclcpp/test_subscription_options.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,17 @@ TEST_F(TestSubscriptionOptions, topic_statistics_options_default_and_set) {
6060
EXPECT_EQ(options.topic_stats_options.state, rclcpp::TopicStatisticsState::NodeDefault);
6161
EXPECT_EQ(options.topic_stats_options.publish_topic, defaultPublishTopic);
6262
EXPECT_EQ(options.topic_stats_options.publish_period, 1s);
63+
EXPECT_EQ(options.topic_stats_options.qos, rclcpp::SystemDefaultsQoS());
6364

6465
options.topic_stats_options.state = rclcpp::TopicStatisticsState::Enable;
6566
options.topic_stats_options.publish_topic = "topic_statistics";
6667
options.topic_stats_options.publish_period = 5min;
68+
options.topic_stats_options.qos = rclcpp::BestAvailableQoS();
6769

6870
EXPECT_EQ(options.topic_stats_options.state, rclcpp::TopicStatisticsState::Enable);
6971
EXPECT_EQ(options.topic_stats_options.publish_topic, "topic_statistics");
7072
EXPECT_EQ(options.topic_stats_options.publish_period, 5min);
73+
EXPECT_EQ(options.topic_stats_options.qos, rclcpp::BestAvailableQoS());
7174
}
7275

7376
TEST_F(TestSubscriptionOptions, topic_statistics_options_node_default_mode) {

0 commit comments

Comments
 (0)