Skip to content

Commit 61692da

Browse files
committed
Fix nested maps with no struct name
1 parent 4c5f526 commit 61692da

File tree

8 files changed

+29
-21
lines changed

8 files changed

+29
-21
lines changed

example/config/implementation.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ admittance_controller:
1212
"happy"
1313

1414
elbow_joint:
15-
weight: 2.0
15+
x:
16+
weight: 2.0
1617

1718
pid:
1819
shoulder_pan_joint:

example/src/parameters.yaml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,15 @@ admittance_controller:
2525
}
2626

2727
__map_joints:
28-
weight: {
29-
type: double,
30-
default_value: 1.0,
31-
description: "map parameter without struct name",
32-
validation: {
33-
gt<>: [0.0],
28+
__map_dof_names:
29+
weight: {
30+
type: double,
31+
default_value: 1.0,
32+
description: "map parameter without struct name",
33+
validation: {
34+
gt<>: [0.0],
35+
}
3436
}
35-
}
3637

3738
nested_dynamic:
3839
__map_joints:

example_python/config/implementation.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ admittance_controller:
1212
"happy"
1313

1414
elbow_joint:
15-
weight: 2.0
15+
x:
16+
weight: 2.0
1617

1718
pid:
1819
shoulder_pan_joint:

example_python/generate_parameter_module_example/parameters.yaml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,15 @@ admittance_controller:
3333
}
3434

3535
__map_joints:
36-
weight: {
37-
type: double,
38-
default_value: 1.0,
39-
description: "map parameter without struct name",
40-
validation: {
41-
gt<>: [0.0],
36+
__map_dof_names:
37+
weight: {
38+
type: double,
39+
default_value: 1.0,
40+
description: "map parameter without struct name",
41+
validation: {
42+
gt<>: [0.0],
43+
}
4244
}
43-
}
4445

4546
nested_dynamic:
4647
__map_joints:

generate_parameter_library_py/generate_parameter_library_py/jinja_templates/cpp/declare_runtime_parameter

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ for (const auto & value_{{loop.index}} : updated_params.{{mapped_param}}) {
55
{% if struct_name != "" %}
66
auto& entry = {{param_struct_instance}}.{{struct_name}}{% for map in parameter_map%}.{{map}}[value_{{loop.index}}]{% endfor %};
77
{% else %}
8-
auto& entry = {{param_struct_instance}}.{% for map in parameter_map%}{{map}}[value_{{loop.index}}]{% endfor %};
8+
auto& entry = {{param_struct_instance}}{% for map in parameter_map%}.{{map}}[value_{{loop.index}}]{% endfor %};
99
{% endif -%}
1010
std::string value = fmt::format("{%- for mapped_param in mapped_params -%}{% if loop.index == 1 %}{}{% else %}.{}{% endif -%} {%- endfor -%}",
1111
{%- for mapped_param in mapped_params -%}{% if loop.index == 1 %} value_{{loop.index}}{% else %}, value_{{loop.index}}{% endif -%} {%- endfor %});

generate_parameter_library_py/generate_parameter_library_py/jinja_templates/cpp/update_runtime_parameter

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ if (param.get_name() == param_name) {
1717
{% if struct_name != "" %}
1818
updated_params.{{struct_name}}{% for map in parameter_map%}.{{map}}[value_{{loop.index}}]{% endfor %}.{{parameter_field}} = param.{{parameter_as_function}};
1919
{% else %}
20-
updated_params.{% for map in parameter_map%}{{map}}[value_{{loop.index}}]{% endfor %}.{{parameter_field}} = param.{{parameter_as_function}};
20+
updated_params{% for map in parameter_map%}.{{map}}[value_{{loop.index}}]{% endfor %}.{{parameter_field}} = param.{{parameter_as_function}};
2121
{% endif -%}
2222
RCLCPP_DEBUG_STREAM(logger_, param.get_name() << ": " << param.get_type_name() << " = " << param.value_to_string());
2323
{% endfilter -%}

generate_parameter_library_py/generate_parameter_library_py/jinja_templates/python/declare_runtime_parameter

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ for value_{{loop.index}} in updated_params.{{mapped_param}}:
77
{% if struct_name != "" %}
88
{{param_struct_instance}}.{{struct_name}}{% for map in parameter_map%}.add_entry(value_{{loop.index}}){% endfor %}
99
entry = {{param_struct_instance}}.{{struct_name}}{% for map in parameter_map%}.get_entry(value_{{loop.index}}){% endfor %}
10-
param_name = f"{self.prefix_}{{struct_name}}{% for map in parameter_map%}.{value_{{loop.index}}}{% endfor %}.{{parameter_field}}"
10+
param_name = f"{self.prefix_}{{struct_name}}.{% for map in parameter_map%}{value_{{loop.index}}}.{% endfor %}{{parameter_field}}"
1111
{% else %}
1212
{{param_struct_instance}}{% for map in parameter_map%}.add_entry(value_{{loop.index}}){% endfor %}
1313
entry = {{param_struct_instance}}{% for map in parameter_map%}.get_entry(value_{{loop.index}}){% endfor %}
14-
param_name = f"{self.prefix_}{% for map in parameter_map%}{value_{{loop.index}}}{% endfor %}.{{parameter_field}}"
14+
param_name = f"{self.prefix_}{% for map in parameter_map%}{value_{{loop.index}}}.{% endfor %}{{parameter_field}}"
1515
{% endif -%}
1616
if not self.node_.has_parameter(self.prefix_ + param_name):
1717
{%- filter indent(width=4) %}

generate_parameter_library_py/generate_parameter_library_py/jinja_templates/python/update_runtime_parameter

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,11 @@ for value_{{loop.index}} in updated_params.{{mapped_param}}:
44
{%- endfilter -%}
55
{% endfor -%}
66
{%- filter indent(width=4*(1+mapped_params|length)) %}
7-
param_name = f"{self.prefix_}{{struct_name}}{% for map in parameter_map%}.{value_{{loop.index}}}{% endfor %}.{{parameter_field}}"
7+
{% if struct_name != "" %}
8+
param_name = f"{self.prefix_}{{struct_name}}{% for map in parameter_map%}{value_{{loop.index}}}.{% endfor %}{{parameter_field}}"
9+
{% else %}
10+
param_name = f"{self.prefix_}{% for map in parameter_map%}{value_{{loop.index}}}.{% endfor %}{{parameter_field}}"
11+
{% endif -%}
812
if param.name == param_name:
913
{%- filter indent(width=4) %}
1014
{% if parameter_validations|length -%}

0 commit comments

Comments
 (0)