12#ifndef UTILITIES_INCLUDE_UTILITIES_TIMESTAMPESTIMATORTIMESYNC_HPP_
13#define UTILITIES_INCLUDE_UTILITIES_TIMESTAMPESTIMATORTIMESYNC_HPP_
60 std::chrono::time_point<std::chrono::steady_clock>
system_time;
TimestampEstimatorBase is the base class for timestamp-based logic in test systems where the current ...
static constexpr uint64_t s_invalid_ts
TimestampEstimatorTimeSync is an implementation of TimestampEstimatorBase that uses TimeSync messages...
void timesync_callback(const T &tsync)
uint64_t m_most_recent_daq_time
void add_timestamp_datapoint(uint64_t daq_time, uint64_t system_time)
uint64_t m_clock_frequency_hz
uint64_t get_timestamp_estimate() const override
Returns the current timestamp estimate or a special value if no valid timestamp is available.
std::chrono::microseconds get_wait_estimate(uint64_t ts) const override
std::atomic< uint64_t > m_received_timesync_count
uint64_t get_received_timesync_count() const
uint32_t m_current_process_id
std::mutex m_datapoint_mutex
virtual ~TimestampEstimatorTimeSync()
std::atomic< TimeSyncPoint > m_current_timestamp_estimate
TimestampEstimatorTimeSync(uint32_t run_number, uint64_t clock_frequency_hz)
uint64_t m_most_recent_system_time
@ TLVL_TIME_SYNC_PROPERTIES
@ TLVL_TIME_SYNC_NEW_ESTIMATE
PDS Frame with unphysical timestamp detected with ts
std::chrono::time_point< std::chrono::steady_clock > system_time