SMACC2
Loading...
Searching...
No Matches
smacc2_client_library
ros_timer_client
src
ros_timer_client
timer_client.cpp
Go to the documentation of this file.
1
// Copyright 2021 RobosoftAI Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
#include <ros_timer_client/cl_ros_timer.hpp>
16
17
namespace
cl_ros_timer
18
{
19
ClRosTimer::ClRosTimer
(rclcpp::Duration duration,
bool
oneshot)
20
: duration_(duration), oneshot_(oneshot)
21
{
22
}
23
24
ClRosTimer::~ClRosTimer
() {
timer_
->cancel(); }
25
26
void
ClRosTimer::onInitialize
()
27
{
28
auto
clock = this->
getNode
()->get_clock();
29
30
timer_
= rclcpp::create_timer(
31
this->
getNode
(), clock,
duration_
, std::bind(&
ClRosTimer::timerCallback
,
this
));
32
}
33
34
void
ClRosTimer::timerCallback
()
35
{
36
if
(!
onTimerTick_
.empty())
37
{
38
this->
onTimerTick_
();
39
}
40
postTimerEvent_
();
41
42
if
(
oneshot_
)
43
{
44
this->
timer_
->cancel();
45
}
46
}
47
48
}
// namespace cl_ros_timer
cl_ros_timer::ClRosTimer::duration_
rclcpp::Duration duration_
Definition
cl_ros_timer.hpp:62
cl_ros_timer::ClRosTimer::onInitialize
virtual void onInitialize() override
Definition
timer_client.cpp:26
cl_ros_timer::ClRosTimer::~ClRosTimer
virtual ~ClRosTimer()
Definition
timer_client.cpp:24
cl_ros_timer::ClRosTimer::onTimerTick_
smacc2::SmaccSignal< void()> onTimerTick_
Definition
cl_ros_timer.hpp:67
cl_ros_timer::ClRosTimer::oneshot_
bool oneshot_
Definition
cl_ros_timer.hpp:63
cl_ros_timer::ClRosTimer::timerCallback
void timerCallback()
Definition
timer_client.cpp:34
cl_ros_timer::ClRosTimer::timer_
rclcpp::TimerBase::SharedPtr timer_
Definition
cl_ros_timer.hpp:61
cl_ros_timer::ClRosTimer::postTimerEvent_
std::function< void()> postTimerEvent_
Definition
cl_ros_timer.hpp:66
cl_ros_timer::ClRosTimer::ClRosTimer
ClRosTimer(rclcpp::Duration duration, bool oneshot=false)
Definition
timer_client.cpp:19
smacc2::ISmaccClient::getNode
rclcpp::Node::SharedPtr getNode()
Definition
client.cpp:60
cl_ros_timer
Definition
cl_ros_timer.hpp:23
Generated by
1.9.8