You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
868 B
29 lines
868 B
/* |
|
timestamp jitter correction class |
|
*/ |
|
|
|
#pragma once |
|
|
|
class JitterCorrection { |
|
public: |
|
// constructor |
|
JitterCorrection(uint16_t max_lag_ms=500, uint16_t convergence_loops=100); |
|
|
|
// correct an offboard timestamp to a jitter-free local |
|
// timestamp. See JitterCorrection.cpp for details |
|
uint64_t correct_offboard_timestamp_usec(uint64_t offboard_usec, uint64_t local_usec); |
|
|
|
// correct an offboard timestamp to a jitter-free local |
|
// timestamp. See JitterCorrection.cpp for details |
|
uint32_t correct_offboard_timestamp_msec(uint32_t offboard_ms, uint32_t local_ms); |
|
|
|
int64_t get_link_offset_usec(void) const { return link_offset_usec; } |
|
|
|
private: |
|
const uint16_t max_lag_ms; |
|
const uint16_t convergence_loops; |
|
int64_t link_offset_usec; |
|
int64_t min_sample_us; |
|
bool initialised; |
|
uint16_t min_sample_counter; |
|
};
|
|
|