From 8a82145cc3e6d79b933eaaccab49c310780830f7 Mon Sep 17 00:00:00 2001 From: Sanjeev Kumar Date: Thu, 19 Dec 2024 21:38:14 +0100 Subject: [PATCH 1/3] Refactor: Moved TriggerType enum to dedicated file to avoid repetition across classes --- .../hardware_interface/actuator_interface.hpp | 6 +--- .../hardware_interface/system_interface.hpp | 6 +--- .../types/hardware_interface_trigger_type.hpp | 28 +++++++++++++++++++ 3 files changed, 30 insertions(+), 10 deletions(-) create mode 100644 hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp diff --git a/hardware_interface/include/hardware_interface/actuator_interface.hpp b/hardware_interface/include/hardware_interface/actuator_interface.hpp index 6ca478231f..1f96744f7d 100644 --- a/hardware_interface/include/hardware_interface/actuator_interface.hpp +++ b/hardware_interface/include/hardware_interface/actuator_interface.hpp @@ -26,6 +26,7 @@ #include "hardware_interface/handle.hpp" #include "hardware_interface/hardware_info.hpp" #include "hardware_interface/types/hardware_interface_return_values.hpp" +#include "hardware_interface/types/hardware_interface_trigger_type.hpp" #include "hardware_interface/types/lifecycle_state_names.hpp" #include "lifecycle_msgs/msg/state.hpp" #include "rclcpp/duration.hpp" @@ -546,11 +547,6 @@ class ActuatorInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNod // interface names to Handle accessed through getters/setters std::unordered_map actuator_states_; std::unordered_map actuator_commands_; - enum class TriggerType - { - READ, - WRITE - }; std::atomic next_trigger_ = TriggerType::READ; }; diff --git a/hardware_interface/include/hardware_interface/system_interface.hpp b/hardware_interface/include/hardware_interface/system_interface.hpp index ec649b0225..a8c34e5a06 100644 --- a/hardware_interface/include/hardware_interface/system_interface.hpp +++ b/hardware_interface/include/hardware_interface/system_interface.hpp @@ -26,6 +26,7 @@ #include "hardware_interface/handle.hpp" #include "hardware_interface/hardware_info.hpp" #include "hardware_interface/types/hardware_interface_return_values.hpp" +#include "hardware_interface/types/hardware_interface_trigger_type.hpp" #include "hardware_interface/types/hardware_interface_type_values.hpp" #include "hardware_interface/types/lifecycle_state_names.hpp" #include "lifecycle_msgs/msg/state.hpp" @@ -585,11 +586,6 @@ class SystemInterface : public rclcpp_lifecycle::node_interfaces::LifecycleNodeI // interface names to Handle accessed through getters/setters std::unordered_map system_states_; std::unordered_map system_commands_; - enum class TriggerType - { - READ, - WRITE - }; std::atomic next_trigger_ = TriggerType::READ; }; diff --git a/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp b/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp new file mode 100644 index 0000000000..fa764d2c28 --- /dev/null +++ b/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp @@ -0,0 +1,28 @@ +// Copyright 2017 Open Source Robotics Foundation, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ +#define HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ + +namespace hardware_interface +{ +enum class TriggerType +{ + READ, + WRITE +}; + +} // namespace hardware_interface + +#endif // HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ \ No newline at end of file From 3b5bc2d81e247d785b6d457d5f16987f1ad9c587 Mon Sep 17 00:00:00 2001 From: Sanjeev Kumar Date: Thu, 19 Dec 2024 22:03:09 +0100 Subject: [PATCH 2/3] Fix: pre-commit checks --- .../types/hardware_interface_trigger_type.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp b/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp index fa764d2c28..c4a9684c74 100644 --- a/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp +++ b/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp @@ -25,4 +25,4 @@ enum class TriggerType } // namespace hardware_interface -#endif // HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ \ No newline at end of file +#endif // HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ From ae56c987475bdaa86f28c96814d21a01b4ed66a1 Mon Sep 17 00:00:00 2001 From: Sanjeev Kumar Date: Fri, 20 Dec 2024 11:22:28 +0100 Subject: [PATCH 3/3] Modify file name from hardware_interface_trigger_type.hpp to trigger_type.hpp --- .../include/hardware_interface/actuator_interface.hpp | 2 +- .../include/hardware_interface/system_interface.hpp | 2 +- ...rdware_interface_trigger_type.hpp => trigger_type.hpp} | 8 ++++---- 3 files changed, 6 insertions(+), 6 deletions(-) rename hardware_interface/include/hardware_interface/types/{hardware_interface_trigger_type.hpp => trigger_type.hpp} (70%) diff --git a/hardware_interface/include/hardware_interface/actuator_interface.hpp b/hardware_interface/include/hardware_interface/actuator_interface.hpp index 1f96744f7d..6f4dfa4402 100644 --- a/hardware_interface/include/hardware_interface/actuator_interface.hpp +++ b/hardware_interface/include/hardware_interface/actuator_interface.hpp @@ -26,8 +26,8 @@ #include "hardware_interface/handle.hpp" #include "hardware_interface/hardware_info.hpp" #include "hardware_interface/types/hardware_interface_return_values.hpp" -#include "hardware_interface/types/hardware_interface_trigger_type.hpp" #include "hardware_interface/types/lifecycle_state_names.hpp" +#include "hardware_interface/types/trigger_type.hpp" #include "lifecycle_msgs/msg/state.hpp" #include "rclcpp/duration.hpp" #include "rclcpp/logger.hpp" diff --git a/hardware_interface/include/hardware_interface/system_interface.hpp b/hardware_interface/include/hardware_interface/system_interface.hpp index a8c34e5a06..e145deae5b 100644 --- a/hardware_interface/include/hardware_interface/system_interface.hpp +++ b/hardware_interface/include/hardware_interface/system_interface.hpp @@ -26,9 +26,9 @@ #include "hardware_interface/handle.hpp" #include "hardware_interface/hardware_info.hpp" #include "hardware_interface/types/hardware_interface_return_values.hpp" -#include "hardware_interface/types/hardware_interface_trigger_type.hpp" #include "hardware_interface/types/hardware_interface_type_values.hpp" #include "hardware_interface/types/lifecycle_state_names.hpp" +#include "hardware_interface/types/trigger_type.hpp" #include "lifecycle_msgs/msg/state.hpp" #include "rclcpp/duration.hpp" #include "rclcpp/logger.hpp" diff --git a/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp b/hardware_interface/include/hardware_interface/types/trigger_type.hpp similarity index 70% rename from hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp rename to hardware_interface/include/hardware_interface/types/trigger_type.hpp index c4a9684c74..63970bc0f0 100644 --- a/hardware_interface/include/hardware_interface/types/hardware_interface_trigger_type.hpp +++ b/hardware_interface/include/hardware_interface/types/trigger_type.hpp @@ -1,4 +1,4 @@ -// Copyright 2017 Open Source Robotics Foundation, Inc. +// Copyright 2024 ros2_control Development Team // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -#ifndef HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ -#define HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ +#ifndef HARDWARE_INTERFACE__TYPES__TRIGGER_TYPE_HPP_ +#define HARDWARE_INTERFACE__TYPES__TRIGGER_TYPE_HPP_ namespace hardware_interface { @@ -25,4 +25,4 @@ enum class TriggerType } // namespace hardware_interface -#endif // HARDWARE_INTERFACE__TYPES__HARDWARE_INTERFACE_TRIGGER_TYPE_HPP_ +#endif // HARDWARE_INTERFACE__TYPES__TRIGGER_TYPE_HPP_