Skip to content

Commit 2f0efc6

Browse files
committed
Compatiblity with 'Populate Transitions' ros2/rcl#1269
Signed-off-by: SuperJappie08 <[email protected]>
1 parent 715a983 commit 2f0efc6

File tree

3 files changed

+14
-4
lines changed

3 files changed

+14
-4
lines changed

rclcpp_lifecycle/src/lifecycle_node.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ LifecycleNode::LifecycleNode(
122122
)),
123123
node_waitables_(new rclcpp::node_interfaces::NodeWaitables(node_base_.get())),
124124
node_options_(options),
125-
impl_(new LifecycleNodeInterfaceImpl(node_base_, node_services_, node_logging_))
125+
impl_(new LifecycleNodeInterfaceImpl(node_base_, node_services_, node_logging_, node_clock_))
126126
{
127127
impl_->init(enable_communication_interface);
128128

rclcpp_lifecycle/src/lifecycle_node_interface_impl.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
#include "rclcpp/node_interfaces/node_base_interface.hpp"
3232
#include "rclcpp/node_interfaces/node_logging_interface.hpp"
3333
#include "rclcpp/node_interfaces/node_services_interface.hpp"
34+
#include "rclcpp/node_interfaces/node_clock_interface.hpp"
3435

3536
#include "rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp"
3637

@@ -52,10 +53,12 @@ namespace rclcpp_lifecycle
5253
LifecycleNode::LifecycleNodeInterfaceImpl::LifecycleNodeInterfaceImpl(
5354
std::shared_ptr<rclcpp::node_interfaces::NodeBaseInterface> node_base_interface,
5455
std::shared_ptr<rclcpp::node_interfaces::NodeServicesInterface> node_services_interface,
55-
std::shared_ptr<rclcpp::node_interfaces::NodeLoggingInterface> node_logging_interface)
56+
std::shared_ptr<rclcpp::node_interfaces::NodeLoggingInterface> node_logging_interface,
57+
std::shared_ptr<rclcpp::node_interfaces::NodeClockInterface> node_clock_interface)
5658
: node_base_interface_(node_base_interface),
5759
node_services_interface_(node_services_interface),
58-
node_logging_interface_(node_logging_interface)
60+
node_logging_interface_(node_logging_interface),
61+
node_clock_interface_(node_clock_interface)
5962
{
6063
}
6164

@@ -86,6 +89,8 @@ LifecycleNode::LifecycleNodeInterfaceImpl::init(bool enable_communication_interf
8689
state_machine_options.enable_com_interface = enable_communication_interface;
8790
state_machine_options.allocator = node_options->allocator;
8891

92+
rcl_clock_t * clock = node_clock_interface_->get_clock()->get_clock_handle();
93+
8994
// The call to initialize the state machine takes
9095
// currently five different typesupports for all publishers/services
9196
// created within the RCL_LIFECYCLE structure.
@@ -97,6 +102,7 @@ LifecycleNode::LifecycleNodeInterfaceImpl::init(bool enable_communication_interf
97102
rcl_ret_t ret = rcl_lifecycle_state_machine_init(
98103
&state_machine_,
99104
node_handle,
105+
clock,
100106
ROSIDL_GET_MSG_TYPE_SUPPORT(lifecycle_msgs, msg, TransitionEvent),
101107
rosidl_typesupport_cpp::get_service_type_support_handle<ChangeStateSrv>(),
102108
rosidl_typesupport_cpp::get_service_type_support_handle<GetStateSrv>(),

rclcpp_lifecycle/src/lifecycle_node_interface_impl.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "rclcpp/node_interfaces/node_base_interface.hpp"
3535
#include "rclcpp/node_interfaces/node_logging_interface.hpp"
3636
#include "rclcpp/node_interfaces/node_services_interface.hpp"
37+
#include "rclcpp/node_interfaces/node_clock_interface.hpp"
3738

3839
#include "rclcpp_lifecycle/node_interfaces/lifecycle_node_interface.hpp"
3940

@@ -54,7 +55,8 @@ class LifecycleNode::LifecycleNodeInterfaceImpl final
5455
LifecycleNodeInterfaceImpl(
5556
std::shared_ptr<rclcpp::node_interfaces::NodeBaseInterface> node_base_interface,
5657
std::shared_ptr<rclcpp::node_interfaces::NodeServicesInterface> node_services_interface,
57-
std::shared_ptr<rclcpp::node_interfaces::NodeLoggingInterface> node_logging_interface);
58+
std::shared_ptr<rclcpp::node_interfaces::NodeLoggingInterface> node_logging_interface,
59+
std::shared_ptr<rclcpp::node_interfaces::NodeClockInterface> node_clock_interface);
5860

5961
~LifecycleNodeInterfaceImpl();
6062

@@ -155,6 +157,7 @@ class LifecycleNode::LifecycleNodeInterfaceImpl final
155157
using NodeBasePtr = std::shared_ptr<rclcpp::node_interfaces::NodeBaseInterface>;
156158
using NodeServicesPtr = std::shared_ptr<rclcpp::node_interfaces::NodeServicesInterface>;
157159
using NodeLoggingPtr = std::shared_ptr<rclcpp::node_interfaces::NodeLoggingInterface>;
160+
using NodeClockPtr = std::shared_ptr<rclcpp::node_interfaces::NodeClockInterface>;
158161
using ChangeStateSrvPtr = std::shared_ptr<rclcpp::Service<ChangeStateSrv>>;
159162
using GetStateSrvPtr = std::shared_ptr<rclcpp::Service<GetStateSrv>>;
160163
using GetAvailableStatesSrvPtr =
@@ -167,6 +170,7 @@ class LifecycleNode::LifecycleNodeInterfaceImpl final
167170
NodeBasePtr node_base_interface_;
168171
NodeServicesPtr node_services_interface_;
169172
NodeLoggingPtr node_logging_interface_;
173+
NodeClockPtr node_clock_interface_;
170174
ChangeStateSrvPtr srv_change_state_;
171175
GetStateSrvPtr srv_get_state_;
172176
GetAvailableStatesSrvPtr srv_get_available_states_;

0 commit comments

Comments
 (0)