diff --git a/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_node.hpp b/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_node.hpp index 9913a92..a83cb03 100644 --- a/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_node.hpp +++ b/rclcpp_lifecycle/include/rclcpp_lifecycle/lifecycle_node.hpp @@ -371,21 +371,46 @@ public: const State & trigger_transition(uint8_t transition_id); + RCLCPP_LIFECYCLE_PUBLIC + const State & + configure(); + + RCLCPP_LIFECYCLE_PUBLIC + const State & + cleanup(); + + RCLCPP_LIFECYCLE_PUBLIC + const State & + activate(); + + RCLCPP_LIFECYCLE_PUBLIC + const State & + deactivate(); + + RCLCPP_LIFECYCLE_PUBLIC + const State & + shutdown(); + RCLCPP_LIFECYCLE_PUBLIC bool register_on_configure(std::function fcn); + RCLCPP_LIFECYCLE_PUBLIC bool register_on_cleanup(std::function fcn); + RCLCPP_LIFECYCLE_PUBLIC bool register_on_shutdown(std::function fcn); + RCLCPP_LIFECYCLE_PUBLIC bool register_on_activate(std::function fcn); + RCLCPP_LIFECYCLE_PUBLIC bool register_on_deactivate(std::function fcn); + RCLCPP_LIFECYCLE_PUBLIC bool register_on_error(std::function fcn); diff --git a/rclcpp_lifecycle/src/lifecycle_node.cpp b/rclcpp_lifecycle/src/lifecycle_node.cpp index 7ee3e34..88e2524 100644 --- a/rclcpp_lifecycle/src/lifecycle_node.cpp +++ b/rclcpp_lifecycle/src/lifecycle_node.cpp @@ -305,6 +305,41 @@ LifecycleNode::trigger_transition(uint8_t transition_id) return impl_->trigger_transition(transition_id); } +const State & +LifecycleNode::configure() +{ + return impl_->trigger_transition( + lifecycle_msgs::msg::Transition::TRANSITION_CONFIGURE); +} + +const State & +LifecycleNode::cleanup() +{ + return impl_->trigger_transition( + lifecycle_msgs::msg::Transition::TRANSITION_CLEANUP); +} + +const State & +LifecycleNode::activate() +{ + return impl_->trigger_transition( + lifecycle_msgs::msg::Transition::TRANSITION_ACTIVATE); +} + +const State & +LifecycleNode::deactivate() +{ + return impl_->trigger_transition( + lifecycle_msgs::msg::Transition::TRANSITION_DEACTIVATE); +} + +const State & +LifecycleNode::shutdown() +{ + return impl_->trigger_transition( + lifecycle_msgs::msg::Transition::TRANSITION_SHUTDOWN); +} + void LifecycleNode::add_publisher_handle( std::shared_ptr pub)