Skip to content

Commit 1e0af0a

Browse files
committed
Resolving issued with explicit QoS for the ros2mqtt ros subscribers
1 parent 74d64ee commit 1e0af0a

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

mqtt_client/src/MqttClient.ros2.cpp

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ void MqttClient::loadParameters() {
452452
ros2mqtt.ros.queue_size = queue_size_param.as_int();
453453

454454
rclcpp::Parameter durability_param;
455-
if (get_parameter(fmt::format("bridge.ros2mqtt.{}.advanced.ros.qos.durability", mqtt_topic), durability_param)) {
455+
if (get_parameter(fmt::format("bridge.ros2mqtt.{}.advanced.ros.qos.durability", ros_topic), durability_param)) {
456456
const auto p = durability_param.as_string();
457457
if (p == "system_default") {
458458
ros2mqtt.ros.qos.durability = rclcpp::DurabilityPolicy::SystemDefault;
@@ -469,7 +469,7 @@ void MqttClient::loadParameters() {
469469
}
470470

471471
rclcpp::Parameter reliability_param;
472-
if (get_parameter(fmt::format("bridge.ros2mqtt.{}.advanced.ros.qos.reliability", mqtt_topic), reliability_param)) {
472+
if (get_parameter(fmt::format("bridge.ros2mqtt.{}.advanced.ros.qos.reliability", ros_topic), reliability_param)) {
473473
const auto p = reliability_param.as_string();
474474
if (p == "system_default") {
475475
ros2mqtt.ros.qos.reliability = rclcpp::ReliabilityPolicy::SystemDefault;
@@ -778,8 +778,12 @@ void MqttClient::setupSubscriptions() {
778778
if (ros2mqtt.ros.subscriber)
779779
continue;
780780

781+
auto const qos = rclcpp::QoS(ros2mqtt.ros.queue_size)
782+
.reliability(*ros2mqtt.ros.qos.reliability)
783+
.durability(*ros2mqtt.ros.qos.durability);
784+
781785
ros2mqtt.ros.subscriber = create_generic_subscription(
782-
ros_topic, ros2mqtt.ros.msg_type, ros2mqtt.ros.queue_size, bound_callback_func);
786+
ros_topic, ros2mqtt.ros.msg_type, qos, bound_callback_func);
783787
ros2mqtt.ros.is_stale = false;
784788
RCLCPP_INFO(get_logger(), "Subscribed ROS topic '%s' of type '%s'",
785789
ros_topic.c_str(), ros2mqtt.ros.msg_type.c_str());

0 commit comments

Comments
 (0)