From 14afcf65e81819abbcfddab7f18fbd9380a49d05 Mon Sep 17 00:00:00 2001 From: Emerson Knapp <537409+emersonknapp@users.noreply.github.com> Date: Mon, 12 Apr 2021 14:07:30 -0700 Subject: [PATCH] Add rosbag2_interfaces package with playback service definitions (#728) * Add new package rosbag2_interfaces with control services to be used for controlling playback Signed-off-by: Emerson Knapp --- rosbag2_interfaces/CMakeLists.txt | 34 +++++++++++++++++++++++++ rosbag2_interfaces/package.xml | 29 +++++++++++++++++++++ rosbag2_interfaces/srv/GetRate.srv | 2 ++ rosbag2_interfaces/srv/IsPaused.srv | 2 ++ rosbag2_interfaces/srv/Pause.srv | 1 + rosbag2_interfaces/srv/PlayNext.srv | 2 ++ rosbag2_interfaces/srv/Resume.srv | 1 + rosbag2_interfaces/srv/Seek.srv | 3 +++ rosbag2_interfaces/srv/SetRate.srv | 3 +++ rosbag2_interfaces/srv/TogglePaused.srv | 1 + 10 files changed, 78 insertions(+) create mode 100644 rosbag2_interfaces/CMakeLists.txt create mode 100644 rosbag2_interfaces/package.xml create mode 100644 rosbag2_interfaces/srv/GetRate.srv create mode 100644 rosbag2_interfaces/srv/IsPaused.srv create mode 100644 rosbag2_interfaces/srv/Pause.srv create mode 100644 rosbag2_interfaces/srv/PlayNext.srv create mode 100644 rosbag2_interfaces/srv/Resume.srv create mode 100644 rosbag2_interfaces/srv/Seek.srv create mode 100644 rosbag2_interfaces/srv/SetRate.srv create mode 100644 rosbag2_interfaces/srv/TogglePaused.srv diff --git a/rosbag2_interfaces/CMakeLists.txt b/rosbag2_interfaces/CMakeLists.txt new file mode 100644 index 0000000000..1d016684a2 --- /dev/null +++ b/rosbag2_interfaces/CMakeLists.txt @@ -0,0 +1,34 @@ +cmake_minimum_required(VERSION 3.8) +project(rosbag2_interfaces) + +if(NOT CMAKE_CXX_STANDARD) + set(CMAKE_CXX_STANDARD 14) +endif() +if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang") + add_compile_options(-Wall -Wextra -Wpedantic) +endif() + +find_package(ament_cmake REQUIRED) +find_package(builtin_interfaces REQUIRED) +find_package(rosidl_default_generators REQUIRED) + +rosidl_generate_interfaces(${PROJECT_NAME} + "srv/GetRate.srv" + "srv/IsPaused.srv" + "srv/Pause.srv" + "srv/PlayNext.srv" + "srv/Resume.srv" + "srv/Seek.srv" + "srv/SetRate.srv" + "srv/TogglePaused.srv" + DEPENDENCIES builtin_interfaces + ADD_LINTER_TESTS +) +ament_export_dependencies(rosidl_default_runtime) + +if(BUILD_TESTING) + find_package(ament_lint_auto REQUIRED) + ament_lint_auto_find_test_dependencies() +endif() + +ament_package() diff --git a/rosbag2_interfaces/package.xml b/rosbag2_interfaces/package.xml new file mode 100644 index 0000000000..204347740f --- /dev/null +++ b/rosbag2_interfaces/package.xml @@ -0,0 +1,29 @@ + + + + rosbag2_interfaces + 0.7.0 + Interface definitions for controlling rosbag2 + Karsten Knese + Michael Jeronimo + Emerson Knapp + ROS Tooling Working Group + Apache License 2.0 + + ament_cmake + rosidl_default_generators + + builtin_interfaces + + builtin_interfaces + rosidl_default_runtime + + ament_lint_auto + ament_lint_common + + rosidl_interface_packages + + + ament_cmake + + diff --git a/rosbag2_interfaces/srv/GetRate.srv b/rosbag2_interfaces/srv/GetRate.srv new file mode 100644 index 0000000000..6ac9d3252d --- /dev/null +++ b/rosbag2_interfaces/srv/GetRate.srv @@ -0,0 +1,2 @@ +--- +float64 rate diff --git a/rosbag2_interfaces/srv/IsPaused.srv b/rosbag2_interfaces/srv/IsPaused.srv new file mode 100644 index 0000000000..0375d4a5d9 --- /dev/null +++ b/rosbag2_interfaces/srv/IsPaused.srv @@ -0,0 +1,2 @@ +--- +bool paused diff --git a/rosbag2_interfaces/srv/Pause.srv b/rosbag2_interfaces/srv/Pause.srv new file mode 100644 index 0000000000..ed97d539c0 --- /dev/null +++ b/rosbag2_interfaces/srv/Pause.srv @@ -0,0 +1 @@ +--- diff --git a/rosbag2_interfaces/srv/PlayNext.srv b/rosbag2_interfaces/srv/PlayNext.srv new file mode 100644 index 0000000000..59e31f9ba9 --- /dev/null +++ b/rosbag2_interfaces/srv/PlayNext.srv @@ -0,0 +1,2 @@ +--- +bool success # can only play-next while playback is paused diff --git a/rosbag2_interfaces/srv/Resume.srv b/rosbag2_interfaces/srv/Resume.srv new file mode 100644 index 0000000000..ed97d539c0 --- /dev/null +++ b/rosbag2_interfaces/srv/Resume.srv @@ -0,0 +1 @@ +--- diff --git a/rosbag2_interfaces/srv/Seek.srv b/rosbag2_interfaces/srv/Seek.srv new file mode 100644 index 0000000000..5f85ddb098 --- /dev/null +++ b/rosbag2_interfaces/srv/Seek.srv @@ -0,0 +1,3 @@ +builtin_interfaces/Time time +--- +bool success # return true if valid time in bag duration, and successful seek diff --git a/rosbag2_interfaces/srv/SetRate.srv b/rosbag2_interfaces/srv/SetRate.srv new file mode 100644 index 0000000000..ee61440709 --- /dev/null +++ b/rosbag2_interfaces/srv/SetRate.srv @@ -0,0 +1,3 @@ +float64 rate +--- +bool success # true if valid rate (> 0) was set diff --git a/rosbag2_interfaces/srv/TogglePaused.srv b/rosbag2_interfaces/srv/TogglePaused.srv new file mode 100644 index 0000000000..ed97d539c0 --- /dev/null +++ b/rosbag2_interfaces/srv/TogglePaused.srv @@ -0,0 +1 @@ +---