From dff36c2f67f7192f95f493c8b9b3b68574e6b255 Mon Sep 17 00:00:00 2001 From: Scott K Logan Date: Mon, 24 Jun 2019 15:55:15 -0700 Subject: [PATCH] Use params from node '/**' from parameter YAML file (#762) The short-term goal of this change is to enable the creation of a parameter YAML file which is applied to each node, regardless of node name or namespace. Future work is to support all wildcard syntax in node names in parameter YAML files. Signed-off-by: Scott K Logan --- .../rclcpp/node_interfaces/node_parameters.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp b/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp index df05954..9c951c3 100644 --- a/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp +++ b/rclcpp/src/rclcpp/node_interfaces/node_parameters.cpp @@ -144,15 +144,16 @@ NodeParameters::NodeParameters( rclcpp::ParameterMap initial_map = rclcpp::parameter_map_from(yaml_params); rcl_yaml_node_struct_fini(yaml_params); - auto iter = initial_map.find(combined_name_); - if (initial_map.end() == iter) { - continue; - } - // Combine parameter yaml files, overwriting values in older ones - for (auto & param : iter->second) { - parameter_overrides_[param.get_name()] = - rclcpp::ParameterValue(param.get_value_message()); + for (auto iter = initial_map.begin(); initial_map.end() != iter; iter++) { + // TODO(cottsay) implement further wildcard matching + if (iter->first == "/**" || iter->first == combined_name_) { + // Combine parameter yaml files, overwriting values in older ones + for (auto & param : iter->second) { + parameter_overrides_[param.get_name()] = + rclcpp::ParameterValue(param.get_value_message()); + } + } } }