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):
4242
4343 self .param_listener = admittance_controller .ParamListener (self )
4444 self .params = self .param_listener .get_params ()
45+ self .param_listener .set_user_callback (self .reconfigure_callback )
4546 self .get_logger ().info (
4647 "Initial control frame parameter is: '%s'" % self .params .control .frame .id
4748 )
@@ -64,6 +65,15 @@ def timer_callback(self):
6465 for d in self .params .fixed_array :
6566 self .get_logger ().info ("value: '%s'" % str (d ))
6667
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+
6777
6878def main (args = None ):
6979 rclpy .init (args = args )
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ stamp_ = Time()
4141 self.declare_params()
4242
4343 self.node_.add_on_set_parameters_callback(self.update)
44+ self.user_callback = None
4445 self.clock_ = Clock()
4546
4647 def get_params(self):
@@ -79,6 +80,12 @@ stamp_ = Time()
7980 params_to_set = self.unpack_parameter_dict('', param_dict)
8081 self.update(params_to_set)
8182
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+
8289 def refresh_dynamic_parameters(self):
8390 updated_params = self.get_params()
8491 # TODO remove any destroyed dynamic parameters
@@ -109,6 +116,8 @@ for param in parameters:
109116
110117 updated_params.stamp_ = self.clock_.now()
111118 self.update_internal_params(updated_params)
119+ if self.user_callback:
120+ self.user_callback(self.get_params())
112121 return SetParametersResult(successful=True)
113122
114123 def update_internal_params(self, updated_params):
You can’t perform that action at this time.
0 commit comments