diff --git a/src/g2_2025_imu_reader_pkg/CMakeLists.txt b/src/g2_2025_imu_reader_pkg/CMakeLists.txt index ee90b12..d2fe2b3 100644 --- a/src/g2_2025_imu_reader_pkg/CMakeLists.txt +++ b/src/g2_2025_imu_reader_pkg/CMakeLists.txt @@ -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 ) diff --git a/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.cpp b/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.cpp index c155955..c80846e 100644 --- a/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.cpp +++ b/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.cpp @@ -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 diff --git a/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.hpp b/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.hpp index 6a814cc..49f3f95 100644 --- a/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.hpp +++ b/src/g2_2025_imu_reader_pkg/src/g2_2025_lifecycle_node/nodes/lifecycle_manager.hpp @@ -27,7 +27,10 @@ public: private: rclcpp::Publisher::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