From b0320cdfa121c118fcc940d2d081e50c51aa7ea1 Mon Sep 17 00:00:00 2001 From: "Takagi, Isamu" Date: Wed, 15 May 2024 15:14:20 +0900 Subject: [PATCH] feat(component_interface_tools): componentize node Signed-off-by: Takagi, Isamu --- common/component_interface_tools/CMakeLists.txt | 11 ++++++++++- .../launch/service_log_checker.launch.xml | 2 +- common/component_interface_tools/package.xml | 1 + .../src/service_log_checker.cpp | 15 ++++----------- .../src/service_log_checker.hpp | 2 +- 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/common/component_interface_tools/CMakeLists.txt b/common/component_interface_tools/CMakeLists.txt index a5ebc29463bec..2b896a951b8ed 100644 --- a/common/component_interface_tools/CMakeLists.txt +++ b/common/component_interface_tools/CMakeLists.txt @@ -3,5 +3,14 @@ project(component_interface_tools) find_package(autoware_cmake REQUIRED) autoware_package() -ament_auto_add_executable(service_log_checker src/service_log_checker.cpp) + +ament_auto_add_library(${PROJECT_NAME} SHARED + src/service_log_checker.cpp +) + +rclcpp_components_register_node(${PROJECT_NAME} + PLUGIN "ServiceLogChecker" + EXECUTABLE service_log_checker_node +) + ament_auto_package(INSTALL_TO_SHARE launch) diff --git a/common/component_interface_tools/launch/service_log_checker.launch.xml b/common/component_interface_tools/launch/service_log_checker.launch.xml index f3099b3238096..c7845198955c1 100644 --- a/common/component_interface_tools/launch/service_log_checker.launch.xml +++ b/common/component_interface_tools/launch/service_log_checker.launch.xml @@ -1,3 +1,3 @@ - + diff --git a/common/component_interface_tools/package.xml b/common/component_interface_tools/package.xml index cff1829473e86..6df07af8729ff 100644 --- a/common/component_interface_tools/package.xml +++ b/common/component_interface_tools/package.xml @@ -13,6 +13,7 @@ diagnostic_updater fmt rclcpp + rclcpp_components tier4_system_msgs yaml_cpp_vendor diff --git a/common/component_interface_tools/src/service_log_checker.cpp b/common/component_interface_tools/src/service_log_checker.cpp index ce89573356412..18f90af5737d2 100644 --- a/common/component_interface_tools/src/service_log_checker.cpp +++ b/common/component_interface_tools/src/service_log_checker.cpp @@ -22,7 +22,8 @@ #define FMT_HEADER_ONLY #include -ServiceLogChecker::ServiceLogChecker() : Node("service_log_checker"), diagnostics_(this) +ServiceLogChecker::ServiceLogChecker(const rclcpp::NodeOptions & options) +: Node("service_log_checker", options), diagnostics_(this) { sub_ = create_subscription( "/service_log", 50, std::bind(&ServiceLogChecker::on_service_log, this, std::placeholders::_1)); @@ -98,13 +99,5 @@ void ServiceLogChecker::update_diagnostics(diagnostic_updater::DiagnosticStatusW } } -int main(int argc, char ** argv) -{ - rclcpp::init(argc, argv); - rclcpp::executors::SingleThreadedExecutor executor; - auto node = std::make_shared(); - executor.add_node(node); - executor.spin(); - executor.remove_node(node); - rclcpp::shutdown(); -} +#include +RCLCPP_COMPONENTS_REGISTER_NODE(ServiceLogChecker) diff --git a/common/component_interface_tools/src/service_log_checker.hpp b/common/component_interface_tools/src/service_log_checker.hpp index 32c7f02e757c6..9579753dfd900 100644 --- a/common/component_interface_tools/src/service_log_checker.hpp +++ b/common/component_interface_tools/src/service_log_checker.hpp @@ -26,7 +26,7 @@ class ServiceLogChecker : public rclcpp::Node { public: - ServiceLogChecker(); + explicit ServiceLogChecker(const rclcpp::NodeOptions & options); private: using ServiceLog = tier4_system_msgs::msg::ServiceLog;