@@ -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