31 return static_cast<Real
>(ts.tv_sec) +
static_cast<Real
>(ts.tv_nsec) * 1e-9;
113 timespec m_step_req = {};
115 timespec m_init = {};
117 timespec m_init_realtime = {};
119 timespec m_step_size = {};
Periodic timer.
Definition fsb_timing.h:77
TimingError step(TimeData &nominal_time, TimeData &actual_time)
Wait for next step.
Definition fsb_timing.cpp:142
TimingError initialize(const timespec &step_size)
Initialize periodic timer.
Definition fsb_timing.cpp:90
TimingError start()
Start timer.
Definition fsb_timing.cpp:124
@ SUCCESS
Successful operation.
constexpr long kMinimumStepSizeNs
Minimum step size in nanoseconds.
Definition fsb_timing.h:21
TimingError
Timing error codes.
Definition fsb_timing.h:38
Real timespec_to_seconds(const timespec &ts)
Convert timespec to seconds as a Real value.
Definition fsb_timing.h:29
@ SLEEP_FAILED
Failed nanosleep.
@ STEP_SIZE_LESS_THAN_MINIMUM
Step size must be specified greater than minimum.
@ MONOTONIC_CLOCK_FAILED
Failed to get monotonic clock time.
@ REALTIME_CLOCK_FAILED
Failed to get realtime clock time.
@ STEP_SIZE_BELOW_CLOCK_RESOLUTION
Step size must be specified above clock resolution.
Definition fsb_timing.h:66
struct timespec monotonic
Monotonic elapsed time.
Definition fsb_timing.h:68
struct timespec realtime
Epoch time.
Definition fsb_timing.h:70