18 now = ACE_OS::gettimeofday();
20 struct timezone *tz =
nullptr;
21 gettimeofday(&
now, tz);
28 now.tv_sec = lround(
t);
29 now.tv_usec = lround((
t-
now.tv_sec)*1e6);
37 std::this_thread::sleep_for(std::chrono::duration<double>(
toDouble(sleep_period)));
48 val.tv_usec += add.tv_usec;
49 int over = val.tv_usec % 1000000;
50 if (over != val.tv_usec) {
54 val.tv_sec += add.tv_sec;
63 if (val.tv_usec > subtract.tv_usec) {
64 val.tv_usec -= subtract.tv_usec;
65 val.tv_sec -= subtract.tv_sec;
68 int over = 1000000 + val.tv_usec - subtract.tv_usec;
71 val.tv_sec -= subtract.tv_sec;
78 return double(v.sec()) + v.usec() * 1e-6;
80 return double(v.tv_sec) + v.tv_usec * 1e-6;
87 v.msec(lround(x*1000/unit+0.5));
89 v.tv_usec = lround(x*1000000/unit+0.5) % 1000000;
90 v.tv_sec = lround(x/unit);
double now()
Return the current time in seconds, relative to an arbitrary starting point.
void delay(double seconds)
Wait for a certain number of seconds.
bool isSystemClock()
Check if YARP is providing system time.
void addTime(YARP_timeval &val, const YARP_timeval &add)
void getTime(YARP_timeval &now)
double toDouble(const YARP_timeval &v)
struct timeval YARP_timeval
void subtractTime(YARP_timeval &val, const YARP_timeval &subtract)
void sleepThread(YARP_timeval &sleep_period)
void fromDouble(YARP_timeval &v, double x, int unit=1)