Inheritance diagram
Collaboration diagram
LifecycleNodeInterface
namespace rclcpp_lifecycle
{
namespace node_interfaces
{
class LifecycleNodeInterface
{
protected:
RCLCPP_LIFECYCLE_PUBLIC
LifecycleNodeInterface() {}
public:
enum class CallbackReturn : uint8_t
{
SUCCESS = lifecycle_msgs::msg::Transition::TRANSITION_CALLBACK_SUCCESS,
FAILURE = lifecycle_msgs::msg::Transition::TRANSITION_CALLBACK_FAILURE,
ERROR = lifecycle_msgs::msg::Transition::TRANSITION_CALLBACK_ERROR
};
/// Callback function for activate transition
/*
* \return true by default
*/
RCLCPP_LIFECYCLE_PUBLIC
virtual CallbackReturn
on_activate(const State & previous_state);
}
}
}
ControllerInterfaceBase
// controller_interface\include\controller_interface\controller_interface_base.hpp
namespace controller_interface
{
class ControllerInterfaceBase : public rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface
{
public:
CONTROLLER_INTERFACE_PUBLIC
ControllerInterfaceBase() = default;
CONTROLLER_INTERFACE_PUBLIC
virtual ~ControllerInterfaceBase() = default;
CONTROLLER_INTERFACE_PUBLIC
virtual InterfaceConfiguration command_interface_configuration() const = 0;
CONTROLLER_INTERFACE_PUBLIC
virtual InterfaceConfiguration state_interface_configuration() const = 0;
}
}
controller_interface
// controller_interface\include\controller_interface\controller_interface.hpp
namespace controller_interface
{
class ControllerInterface : public controller_interface::ControllerInterfaceBase
{
public:
CONTROLLER_INTERFACE_PUBLIC
ControllerInterface();
}
}
GPIOController
// example_10\controllers\include\ros2_control_demo_example_10\gpio_controller.hpp
namespace ros2_control_demo_example_10
{
class GPIOController : public controller_interface::ControllerInterface
{
}
}
// example_10\controllers\gpio_controller.cpp
PLUGINLIB_EXPORT_CLASS(
ros2_control_demo_example_10::GPIOController, controller_interface::ControllerInterface)