From 948cf6a0dcae10bc07279162e26d84e4a7f5816d Mon Sep 17 00:00:00 2001 From: yomole Date: Thu, 18 Apr 2024 16:48:57 -0400 Subject: [PATCH] Migrate ros_alarms_msgs --- mil_common/ros_alarms_msgs/CMakeLists.txt | 235 ++------------------ mil_common/ros_alarms_msgs/msg/Alarms.msg | 2 +- mil_common/ros_alarms_msgs/package.xml | 33 +-- mil_common/ros_alarms_msgs/srv/AlarmGet.srv | 2 +- 4 files changed, 44 insertions(+), 228 deletions(-) diff --git a/mil_common/ros_alarms_msgs/CMakeLists.txt b/mil_common/ros_alarms_msgs/CMakeLists.txt index e8b6c572f..64d56bbf7 100644 --- a/mil_common/ros_alarms_msgs/CMakeLists.txt +++ b/mil_common/ros_alarms_msgs/CMakeLists.txt @@ -1,219 +1,32 @@ -cmake_minimum_required(VERSION 3.0.2) -project(ros_alarms_msgs) - -## Compile as C++11, supported in ROS Kinetic and newer -# add_compile_options(-std=c++11) - -## Find catkin macros and libraries -## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz) -## is used, also find other catkin packages -find_package(catkin REQUIRED COMPONENTS - message_generation - message_runtime - roscpp - rospy - std_msgs -) - -## System dependencies are found with CMake's conventions -# find_package(Boost REQUIRED COMPONENTS system) - - -## Uncomment this if the package has a setup.py. This macro ensures -## modules and global scripts declared therein get installed -## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html -# catkin_python_setup() - -################################################ -## Declare ROS messages, services and actions ## -################################################ +#File updated for MIL ROS2 Conversion (Spring 2024) +#Referencing: +# - https://docs.ros.org/en/humble/Tutorials/Beginner-Client-Libraries/Custom-ROS2-Interfaces.html +# - https://docs.ros.org/en/humble/How-To-Guides/Migrating-from-ROS1 -## To declare and build messages, services or actions from within this -## package, follow these steps: -## * Let MSG_DEP_SET be the set of packages whose message types you use in -## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...). -## * In the file package.xml: -## * add a build_depend tag for "message_generation" -## * add a build_depend and a exec_depend tag for each package in MSG_DEP_SET -## * If MSG_DEP_SET isn't empty the following dependency has been pulled in -## but can be declared for certainty nonetheless: -## * add a exec_depend tag for "message_runtime" -## * In this file (CMakeLists.txt): -## * add "message_generation" and every package in MSG_DEP_SET to -## find_package(catkin REQUIRED COMPONENTS ...) -## * add "message_runtime" and every package in MSG_DEP_SET to -## catkin_package(CATKIN_DEPENDS ...) -## * uncomment the add_*_files sections below as needed -## and list every .msg/.srv/.action file to be processed -## * uncomment the generate_messages entry below -## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...) - -## Generate messages in the 'msg' folder -# add_message_files( -# FILES -# Message1.msg -# Message2.msg -# ) - -add_message_files( - FILES - Alarm.msg - Alarms.msg -) - -## Generate services in the 'srv' folder - add_service_files( - FILES - AlarmSet.srv - AlarmGet.srv - ) - -## Generate actions in the 'action' folder -# add_action_files( -# FILES -# Action1.action -# Action2.action -# ) - -## Generate added messages and services with any dependencies listed here - generate_messages( - DEPENDENCIES - std_msgs # Or other packages containing msgs - ) - -################################################ -## Declare ROS dynamic reconfigure parameters ## -################################################ +cmake_minimum_required(VERSION 3.5) +project(ros_alarms_msgs) -## To declare and build dynamic reconfigure parameters within this -## package, follow these steps: -## * In the file package.xml: -## * add a build_depend and a exec_depend tag for "dynamic_reconfigure" -## * In this file (CMakeLists.txt): -## * add "dynamic_reconfigure" to -## find_package(catkin REQUIRED COMPONENTS ...) -## * uncomment the "generate_dynamic_reconfigure_options" section below -## and list every .cfg file to be processed +# If no C++ standard is provided, compile as C++17 (supported in ROS2 Humble and newer). +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 17) +endif() -## Generate dynamic reconfigure parameters in the 'cfg' folder -# generate_dynamic_reconfigure_options( -# cfg/DynReconf1.cfg -# cfg/DynReconf2.cfg -# ) +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() -################################### -## catkin specific configuration ## -################################### -## The catkin_package macro generates cmake config files for your package -## Declare things to be passed to dependent projects -## INCLUDE_DIRS: uncomment this if your package contains header files -## LIBRARIES: libraries you create in this project that dependent projects also need -## CATKIN_DEPENDS: catkin_packages dependent projects also need -## DEPENDS: system dependencies of this project that dependent projects also need -catkin_package( -# INCLUDE_DIRS -# include -# LIBRARIES -# ros_alarms - CATKIN_DEPENDS - roscpp - rospy - message_generation - message_runtime -) +find_package(ament_cmake REQUIRED) +find_package(rosidl_default_generators REQUIRED) -########### -## Build ## -########### +find_package(rclcpp REQUIRED) +find_package(std_msgs REQUIRED) -## Specify additional locations of header files -## Your package locations should be listed before other locations -include_directories( -# include - ${catkin_INCLUDE_DIRS} +rosidl_generate_interfaces(${PROJECT_NAME} + "msg/Alarm.msg" + "msg/Alarms.msg" + "srv/AlarmGet.srv" + "srv/AlarmSet.srv" + DEPENDENCIES std_msgs ) -## Declare a C++ library -# add_library(${PROJECT_NAME} -# src/${PROJECT_NAME}/ros_alarms_msg.cpp -# ) - -## Add cmake target dependencies of the library -## as an example, code may need to be generated before libraries -## either from message generation or dynamic reconfigure -# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Declare a C++ executable -## With catkin_make all packages are built within a single CMake context -## The recommended prefix ensures that target names across packages don't collide -# add_executable(${PROJECT_NAME}_node src/ros_alarms_msg_node.cpp) - -## Rename C++ executable without prefix -## The above recommended prefix causes long target names, the following renames the -## target back to the shorter version for ease of user use -## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node" -# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "") - -## Add cmake target dependencies of the executable -## same as for the library above -# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) - -## Specify libraries to link a library or executable target against -# target_link_libraries(${PROJECT_NAME}_node -# ${catkin_LIBRARIES} -# ) - -############# -## Install ## -############# - -# all install targets should use catkin DESTINATION variables -# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html - -## Mark executable scripts (Python etc.) for installation -## in contrast to setup.py, you can choose the destination -# catkin_install_python(PROGRAMS -# scripts/my_python_script -# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark executables for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_executables.html -# install(TARGETS ${PROJECT_NAME}_node -# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} -# ) - -## Mark libraries for installation -## See http://docs.ros.org/melodic/api/catkin/html/howto/format1/building_libraries.html -# install(TARGETS ${PROJECT_NAME} -# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION} -# RUNTIME DESTINATION ${CATKIN_GLOBAL_BIN_DESTINATION} -# ) - -## Mark cpp header files for installation -# install(DIRECTORY include/${PROJECT_NAME}/ -# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION} -# FILES_MATCHING PATTERN "*.h" -# PATTERN ".svn" EXCLUDE -# ) - -## Mark other files for installation (e.g. launch and bag files, etc.) -# install(FILES -# # myfile1 -# # myfile2 -# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION} -# ) - -############# -## Testing ## -############# - -## Add gtest based cpp test target and link libraries -# catkin_add_gtest(${PROJECT_NAME}-test test/test_ros_alarms_msg.cpp) -# if(TARGET ${PROJECT_NAME}-test) -# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME}) -# endif() - -## Add folders to be run by python nosetests -# catkin_add_nosetests(test) +ament_package() diff --git a/mil_common/ros_alarms_msgs/msg/Alarms.msg b/mil_common/ros_alarms_msgs/msg/Alarms.msg index d8792a460..68c65ba21 100644 --- a/mil_common/ros_alarms_msgs/msg/Alarms.msg +++ b/mil_common/ros_alarms_msgs/msg/Alarms.msg @@ -1,2 +1,2 @@ -Header header +std_msgs/Header header Alarm[] alarms diff --git a/mil_common/ros_alarms_msgs/package.xml b/mil_common/ros_alarms_msgs/package.xml index 72584fa85..98eb8531a 100644 --- a/mil_common/ros_alarms_msgs/package.xml +++ b/mil_common/ros_alarms_msgs/package.xml @@ -1,23 +1,26 @@ - + ros_alarms_msgs 1.0.0 The ros_alarms_msgs package Matt Langford David Soto MIT - catkin - message_generation - message_runtime - roscpp - rospy - std_msg - roscpp - rospy - std_msg - message_generation - message_runtime - roscpp - rospy - std_msg + + ament_cmake + rosidl_default_generators + rosidl_default_runtime + + message_generation + message_runtime + rclcpp + rospy + std_msgs + + rosidl_interface_packages + + + ament_cmake + + diff --git a/mil_common/ros_alarms_msgs/srv/AlarmGet.srv b/mil_common/ros_alarms_msgs/srv/AlarmGet.srv index 806aa19ba..f62aeb717 100644 --- a/mil_common/ros_alarms_msgs/srv/AlarmGet.srv +++ b/mil_common/ros_alarms_msgs/srv/AlarmGet.srv @@ -1,4 +1,4 @@ string alarm_name # Name of the target alarm. --- -Header header # Stamp when alarm was raised/cleared. +std_msgs/Header header # Stamp when alarm was raised/cleared. Alarm alarm # Alarm of interest