time_utils.cpp
Go to the documentation of this file.
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 
18  const ros::Duration &timeout)
19 {
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