28 template <typename T, std::enable_if_t<std::is_integral<T>::value,
int> = 0>
32 !std::is_integral<T>::value,
33 "\n\nCbTimerCountdownOnce no longer accepts a tick count.\n"
34 "Pass a chrono duration literal instead:\n"
35 " configure_orthogonal<OrTimer, CbTimerCountdownOnce>(5s); // 5 seconds\n"
36 " configure_orthogonal<OrTimer, CbTimerCountdownOnce>(500ms); // 500 ms\n"
37 "Migration guide: https://smacc2.robosoft.ai/how-to/how-to-cl-ros2-timer.html\n");
43 auto clock = node->get_clock();
50 postCountDownEvent_();
63 template <
typename TOrthogonal,
typename TSourceObject>
void onStateOrthogonalAllocation()
rclcpp::TimerBase::SharedPtr wallTimer_
CbTimerCountdownOnce(rclcpp::Duration targetDuration)
std::function< void()> postCountDownEvent_
rclcpp::Duration targetDuration_
smacc2::SmaccSignalConnection onTimerTick(void(T::*callback)(), T *object)
smacc2::SmaccSignal< void()> onTimerTick_
virtual rclcpp::Node::SharedPtr getNode() const
ISmaccStateMachine * getStateMachine()
smacc2::SmaccSignalConnection createSignalConnection(TSmaccSignal &signal, TMemberFunctionPrototype callback, TSmaccObjectType *object)
boost::signals2::connection SmaccSignalConnection