src
utils
time_utils.cpp
Go to the documentation of this file.
1
#include "
robot_body_filter/utils/time_utils.hpp
"
2
3
namespace
robot_body_filter
{
4
5
ros::Duration
remainingTime
(
const
ros::Time
&query,
const
double
timeout)
6
{
7
ros::Time::waitForValid
(
ros::WallDuration
().fromSec(timeout));
8
if
(!
ros::Time::isValid
()) {
9
ROS_ERROR
(
"ROS time is not yet initialized"
);
10
return
ros::Duration
(0);
11
}
12
13
const
auto
passed = (
ros::Time::now
() - query).toSec();
14
return
ros::Duration
(std::max(0.0, timeout - passed));
15
}
16
17
ros::Duration
remainingTime
(
const
ros::Time
&query,
18
const
ros::Duration
&timeout)
19
{
20
ros::Time::waitForValid
(
ros::WallDuration
(timeout.
sec
, timeout.
nsec
));
21
if
(!
ros::Time::isValid
()) {
22
ROS_ERROR
(
"ROS time is not yet initialized"
);
23
return
ros::Duration
(0);
24
}
25
26
const
auto
passed =
ros::Time::now
() - query;
27
const
auto
remaining = timeout - passed;
28
return
(remaining.sec >= 0) ? remaining :
ros::Duration
(0);
29
}
30
31
};
robot_body_filter::remainingTime
ros::Duration remainingTime(const ros::Time &query, double timeout)
remainingTime Return remaining time to timeout from the query time.
Definition:
time_utils.cpp:5
DurationBase< Duration >::nsec
int32_t nsec
ros::Time::isValid
static bool isValid()
ROS_ERROR
#define ROS_ERROR(...)
ros::Time
time_utils.hpp
robot_body_filter
Definition:
RayCastingShapeMask.h:15
ros::Time::waitForValid
static bool waitForValid()
ros::WallDuration
ros::Duration
DurationBase< Duration >::sec
int32_t sec
ros::Time::now
static Time now()
robot_body_filter
Author(s): Eitan Marder-Eppstein, Tomas Petricek, Martin Pecka
autogenerated on Mon Feb 5 2024 03:33:49