Add starting_up_state parameter to Updater#354
Conversation
|
Hi! Can I get an update on this one? If it wasn't merged because of this test case failing, can I get some help understanding the error? I'm sure a few minutes of someone who already understands these template-based tests can save me hours of trial and error. |
|
Hi @redvinaa.
On the other hand, I also would not like my system starting in an error state. Your issue could also be solved by additional state, such as proposed in ros2/common_interfaces#268. What is your opinion about that? |
|
Hi! Sorry for the long delay. It's possible that it would make sense to add new states, but that's a huge change and it appears to be moving very slowly. This PR on the other hand is not breaking, and I think is still useful until the new states get added. |
692fd7c to
687c0c4
Compare
|
I think the xmllint failure is not coming from this PR (no xml was modified). Otherwise, all requested changes have been addressed. |
…ros#551) The previous implementation is using a callback that is invoked for all the parameter events of all ROS 2 nodes and it filters by node name. It could lead to race conditions when setting parameters depending on the depth size of the callback. With this new approach, the callback is only triggered when setting parameters for the analyzers node, avoiding possible race conditions when setting the parameters. Co-authored-by: Christian Henkel <christian.henkel2@de.bosch.com>
Signed-off-by: mini-1235 <mauricepurnawan@gmail.com>
* Add starting_up_state parameter to Updater * Lint * Change to unsigned char * Remove condition * Fix example relative path (#550) * Implement onParametersSet for handling only analyzers node parameters (#551) The previous implementation is using a callback that is invoked for all the parameter events of all ROS 2 nodes and it filters by node name. It could lead to race conditions when setting parameters depending on the depth size of the callback. With this new approach, the callback is only triggered when setting parameters for the analyzers node, avoiding possible race conditions when setting the parameters. * Get rid of deprecated rclcpp::spin_some() (#563) * -Wreorder --------- (cherry picked from commit 60232a7) Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Christian Henkel <christian.henkel2@de.bosch.com> Co-authored-by: Vince Reda <60265874+redvinaa@users.noreply.github.com> Co-authored-by: Noel Jiménez García <noel.jimenez.gar@gmail.com> Co-authored-by: Christian Henkel <christian.henkel2@de.bosch.com> Co-authored-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com>
* Add starting_up_state parameter to Updater * Lint * Change to unsigned char * Remove condition * Fix example relative path (#550) * Implement onParametersSet for handling only analyzers node parameters (#551) The previous implementation is using a callback that is invoked for all the parameter events of all ROS 2 nodes and it filters by node name. It could lead to race conditions when setting parameters depending on the depth size of the callback. With this new approach, the callback is only triggered when setting parameters for the analyzers node, avoiding possible race conditions when setting the parameters. * Get rid of deprecated rclcpp::spin_some() (#563) * -Wreorder --------- (cherry picked from commit 60232a7) Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Christian Henkel <christian.henkel2@de.bosch.com> Co-authored-by: Vince Reda <60265874+redvinaa@users.noreply.github.com> Co-authored-by: Noel Jiménez García <noel.jimenez.gar@gmail.com> Co-authored-by: Christian Henkel <christian.henkel2@de.bosch.com> Co-authored-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com>
* Add starting_up_state parameter to Updater * Lint * Change to unsigned char * Remove condition * Fix example relative path (#550) * Implement onParametersSet for handling only analyzers node parameters (#551) The previous implementation is using a callback that is invoked for all the parameter events of all ROS 2 nodes and it filters by node name. It could lead to race conditions when setting parameters depending on the depth size of the callback. With this new approach, the callback is only triggered when setting parameters for the analyzers node, avoiding possible race conditions when setting the parameters. * Get rid of deprecated rclcpp::spin_some() (#563) * -Wreorder --------- (cherry picked from commit 60232a7) Signed-off-by: mini-1235 <mauricepurnawan@gmail.com> Signed-off-by: Christian Henkel <christian.henkel2@de.bosch.com> Co-authored-by: Vince Reda <60265874+redvinaa@users.noreply.github.com> Co-authored-by: Noel Jiménez García <noel.jimenez.gar@gmail.com> Co-authored-by: Christian Henkel <christian.henkel2@de.bosch.com> Co-authored-by: Maurice Alexander Purnawan <mauricepurnawan@gmail.com>
In the current implementation, when the Updater object is constructed, it sends off an "OK" signal. This could be problematic if we consider "Everything is running as expected" (definition of "OK" status as per REP107), that running is already initialized.
The default behavior doesn't change with this PR, so it wouldn't break anything.
Also, in the python implementation, None can be passed to skip "Node starting up" status publishing altogether.