Skip to content

Commit e835e0f

Browse files
zulfaqar-azmi-t4KhalilSelyan
authored and
KhalilSelyan
committed
feat(operation_mode_transition_manager): use polling subscriber (#7328)
RT1-6698 use polling subscriber Signed-off-by: Muhammad Zulfaqar Azmi <zulfaqar.azmi@tier4.jp>
1 parent 986f7e4 commit e835e0f

File tree

2 files changed

+8
-11
lines changed

2 files changed

+8
-11
lines changed

control/operation_mode_transition_manager/src/node.cpp

+3-8
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,6 @@ namespace operation_mode_transition_manager
2222
OperationModeTransitionManager::OperationModeTransitionManager(const rclcpp::NodeOptions & options)
2323
: Node("operation_mode_transition_manager", options), compatibility_(this)
2424
{
25-
sub_control_mode_report_ = create_subscription<ControlModeReport>(
26-
"control_mode_report", 1,
27-
[this](const ControlModeReport::SharedPtr msg) { control_mode_report_ = *msg; });
28-
29-
sub_gate_operation_mode_ = create_subscription<OperationModeState>(
30-
"gate_operation_mode", 1,
31-
[this](const OperationModeState::SharedPtr msg) { gate_operation_mode_ = *msg; });
32-
3325
cli_control_mode_ = create_client<ControlModeCommand>("control_mode_request");
3426
pub_debug_info_ = create_publisher<ModeChangeBase::DebugInfo>("~/debug_info", 1);
3527

@@ -214,6 +206,9 @@ void OperationModeTransitionManager::processTransition()
214206

215207
void OperationModeTransitionManager::onTimer()
216208
{
209+
control_mode_report_ = *sub_control_mode_report_.takeData();
210+
gate_operation_mode_ = *sub_gate_operation_mode_.takeData();
211+
217212
for (const auto & [type, mode] : modes_) {
218213
mode->update(current_mode_ == type && transition_);
219214
}

control/operation_mode_transition_manager/src/node.hpp

+5-3
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
#include <component_interface_specs/system.hpp>
2222
#include <component_interface_utils/rclcpp.hpp>
2323
#include <rclcpp/rclcpp.hpp>
24+
#include <tier4_autoware_utils/ros/polling_subscriber.hpp>
2425

2526
#include <memory>
2627
#include <unordered_map>
27-
#include <utility>
2828

2929
namespace operation_mode_transition_manager
3030
{
@@ -49,8 +49,10 @@ class OperationModeTransitionManager : public rclcpp::Node
4949
const ChangeOperationModeAPI::Service::Response::SharedPtr response);
5050

5151
using ControlModeCommandType = ControlModeCommand::Request::_mode_type;
52-
rclcpp::Subscription<ControlModeReport>::SharedPtr sub_control_mode_report_;
53-
rclcpp::Subscription<OperationModeState>::SharedPtr sub_gate_operation_mode_;
52+
tier4_autoware_utils::InterProcessPollingSubscriber<ControlModeReport> sub_control_mode_report_{
53+
this, "control_mode_report"};
54+
tier4_autoware_utils::InterProcessPollingSubscriber<OperationModeState> sub_gate_operation_mode_{
55+
this, "gate_operation_mode"};
5456
rclcpp::Client<ControlModeCommand>::SharedPtr cli_control_mode_;
5557
rclcpp::Publisher<ModeChangeBase::DebugInfo>::SharedPtr pub_debug_info_;
5658
rclcpp::TimerBase::SharedPtr timer_;

0 commit comments

Comments
 (0)