5 #pragma warning(disable : 4996) 17 #include <boost/cstdint.hpp> 32 bool pushIntoFifo(
double curTimeStamp, uint32_t curtick);
37 bool getDemoFileData(std::string fileName, std::vector<uint32_t> &tickVec, std::vector<uint32_t> &secVec,
38 std::vector<uint32_t> &nanoSecVec);
78 bool updatePLL(uint32_t sec, uint32_t nanoSec, uint32_t curtick);
bool getDemoFileData(std::string fileName, std::vector< uint32_t > &tickVec, std::vector< uint32_t > &secVec, std::vector< uint32_t > &nanoSecVec)
double dClockDiffFeedBack
class SoftwarePLL implements synchronisation between ticks and timestamp. See https://github.com/michael1309/SoftwarePLL/blob/master/README.md for details.
static SoftwarePLL & instance()
uint32_t extrapolationDivergenceCounter
void AllowedTimeDeviation(double val)
double extraPolateRelativeTimeStamp(uint32_t tick)
double mostRecentTimeStamp
void InterpolationSlope(double val)
void FirstTimeStamp(double val)
double allowedTimeDeviation
bool getCorrectedTimeStamp(uint32_t &sec, uint32_t &nanoSec, uint32_t tick)
bool pushIntoFifo(double curTimeStamp, uint32_t curtick)
double clockFifo[fifoSize]
uint32_t ExtrapolationDivergenceCounter() const
uint32_t tickFifo[fifoSize]
void ExtrapolationDivergenceCounter(uint32_t val)
bool IsInitialized() const
uint32_t mostRecentNanoSec
double AllowedTimeDeviation() const
SoftwarePLL & operator=(const SoftwarePLL &)
double InterpolationSlope() const
double FirstTimeStamp() const
static const uint32_t MaxExtrapolationCounter
double lastValidTimeStamp
static const double MaxAllowedTimeDeviation
bool nearSameTimeStamp(double relTimeStamp1, double relTimeStamp2)
uint64_t FirstTick() const
double interpolationSlope
void FirstTick(uint64_t val)
int findDiffInFifo(double diff, double tol)
bool updateInterpolationSlope()
static const int fifoSize
bool updatePLL(uint32_t sec, uint32_t nanoSec, uint32_t curtick)
Updates PLL internale State should be called only with network send timestamps.
void IsInitialized(bool val)