File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed
example_cmake_python/cmake_generate_parameter_module_example
generate_parameter_library_py/generate_parameter_library_py/jinja_templates/python Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -42,6 +42,7 @@ def __init__(self):
42
42
43
43
self .param_listener = admittance_controller .ParamListener (self )
44
44
self .params = self .param_listener .get_params ()
45
+ self .param_listener .set_user_callback (self .reconfigure_callback )
45
46
self .get_logger ().info (
46
47
"Initial control frame parameter is: '%s'" % self .params .control .frame .id
47
48
)
@@ -64,6 +65,15 @@ def timer_callback(self):
64
65
for d in self .params .fixed_array :
65
66
self .get_logger ().info ("value: '%s'" % str (d ))
66
67
68
+ def reconfigure_callback (self , parameters ):
69
+ self .get_logger ().info ('Reconfigure callback fired!' )
70
+ self .get_logger ().info (
71
+ "New control frame parameter is: '%s'" % parameters .control .frame .id
72
+ )
73
+ self .get_logger ().info ("fixed string is: '%s'" % parameters .fixed_string )
74
+ for d in parameters .fixed_array :
75
+ self .get_logger ().info ("value: '%s'" % str (d ))
76
+
67
77
68
78
def main (args = None ):
69
79
rclpy .init (args = args )
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ stamp_ = Time()
41
41
self.declare_params()
42
42
43
43
self.node_.add_on_set_parameters_callback(self.update)
44
+ self.user_callback = None
44
45
self.clock_ = Clock()
45
46
46
47
def get_params(self):
@@ -79,6 +80,12 @@ stamp_ = Time()
79
80
params_to_set = self.unpack_parameter_dict('', param_dict)
80
81
self.update(params_to_set)
81
82
83
+ def set_user_callback(self, callback):
84
+ self.user_callback = callback
85
+
86
+ def clear_user_callback(self):
87
+ self.user_callback = None
88
+
82
89
def refresh_dynamic_parameters(self):
83
90
updated_params = self.get_params()
84
91
# TODO remove any destroyed dynamic parameters
@@ -109,6 +116,8 @@ for param in parameters:
109
116
110
117
updated_params.stamp_ = self.clock_.now()
111
118
self.update_internal_params(updated_params)
119
+ if self.user_callback:
120
+ self.user_callback(self.get_params())
112
121
return SetParametersResult(successful=True)
113
122
114
123
def update_internal_params(self, updated_params):
You can’t perform that action at this time.
0 commit comments