feat(lifecycle): added core functions with beginner test to lifecycle_manager

This commit is contained in:
2025-10-28 19:18:55 +01:00
committed by Vincent Winter
parent d5937c540d
commit 8696eee197
3 changed files with 37 additions and 6 deletions

View File

@@ -24,6 +24,7 @@ find_package(std_msgs REQUIRED)
find_package(sensor_msgs REQUIRED)
find_package(rclcpp_lifecycle REQUIRED)
find_package(nlohmann_json REQUIRED)
find_package(rclcpp_lifecycle REQUIRED)
add_executable(g2_2025_imu_database_writer_node
src/g2_2025_imu_database_writer_node/Main.cpp
@@ -44,8 +45,8 @@ target_link_libraries(g2_2025_imu_database_writer_node pqxx pq tomlplusplus::tom
add_executable(g2_2025_lifecycle_node
src/g2_2025_lifecycle_node/main.cpp
src/g2_2025_lifecycle_node/nodes/HardwareInterface.cpp
src/g2_2025_lifecycle_node/nodes/LifecycleManager.cpp
src/g2_2025_lifecycle_node/nodes/hardware_interface.cpp
src/g2_2025_lifecycle_node/nodes/lifecycle_manager.cpp
src/config/serialib.cpp
)

View File

@@ -13,16 +13,43 @@ LifecycleManager::LifecycleManager() : rclcpp_lifecycle::LifecycleNode("lifecycl
}
void LifecycleManager::publish_imu_data(const std::string & data) {
void LifecycleManager::publish_imu_data(const std::string & data) { // placeholderrrrr
auto message = std_msgs::msg::String();
message.data = data;
imu_publisher->publish(message);
RCLCPP_INFO(this->get_logger(), "Published IMU data: %s", data.c_str());
}
/*
void LifecycleManager::Unconfigured() {
RCLCPP_INFO(this->get_logger(), "Managing lifecycle...");
*in terminal commands to manage lifecycle:
*ros2 lifecycle list /lifecycle_manager ## for status checking
*ros2 lifecycle set /lifecycle_manager configure
*ros2 lifecycle set /lifecycle_manager activate
*ros2 lifecycle set /lifecycle_manager deactivate
*ros2 lifecycle set /lifecycle_manager shutdown
*/
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
LifecycleManager::on_configure(const rclcpp_lifecycle::State&) {
RCLCPP_INFO(this->get_logger(), "configuring lifecycle...");
return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;
}
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
LifecycleManager::on_activate(const rclcpp_lifecycle::State&) {
RCLCPP_INFO(this->get_logger(), "activating lifecycle...");
return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;
}
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
LifecycleManager::on_deactivate(const rclcpp_lifecycle::State&) {
RCLCPP_INFO(this->get_logger(), "deactivating lifecycle...");
return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;
}
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn
LifecycleManager::on_shutdown(const rclcpp_lifecycle::State&) {
RCLCPP_INFO(this->get_logger(), "shutting down lifecycle...");
return rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn::SUCCESS;
}
} // namespace assignments::two::g2_2025_lifecycle_node

View File

@@ -27,7 +27,10 @@ public:
private:
rclcpp::Publisher<std_msgs::msg::String>::SharedPtr imu_publisher;
void publish_imu_data(const std::string & data);
void Unconfigured();
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_configure(const rclcpp_lifecycle::State&);
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_activate(const rclcpp_lifecycle::State&);
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_deactivate(const rclcpp_lifecycle::State&);
rclcpp_lifecycle::node_interfaces::LifecycleNodeInterface::CallbackReturn on_shutdown(const rclcpp_lifecycle::State&);
};
} // namespace assignments::two::g2_2025_lifecycle_node