commonlib
softsyncalgorithm.h
Go to the documentation of this file.
1 
23 #pragma once
24 
25 #include <mutex>
26 #include "synchronization.h"
27 #include "softsyncbase.h"
28 
29 BEGIN_NAMESPACE_SYNCHRONIZATION
30 
32 {
33 public:
34  static constexpr int clkNoClock = -1;
35 
37  ~SoftSyncAlgorithm() override = default;
38 
42  void initiate() override;
43 
47  void deInit() override;
48 
52  void reset() override;
53 
59  void synchronizeClocks(double masterTime, double slaveTime) override;
60 
67  void setDeviceTime(double masterClock, double slaveClock);
68 
74  double masterTimeAt(double slaveTime) const override;
75 
81  double slaveTimeAt(double masterTime) const override;
82 
88  double readSystemTimeD(double slaveClock);
89 
90 protected:
91  double timeScale;
92  double timeOffset;
93  int numberOfSyncs;
94  void resetRegression();
95 
96 private:
97  long long int ern{};
98  double en{};
99  double ex{};
100  double ey{};
101  double exy{};
102  double exx{};
103  double internalDecay{};
104 
105  bool deviceStarted(double masterClock, double slaveClock);
106  bool validTimeStamp(double masterClock, double slaveClock);
107 };
108 
109 END_NAMESPACE_SYNCHRONIZATION
double masterTimeAt(double slaveTime) const override
masterTimeAt transforms slave clock to master clock time domain
double readSystemTimeD(double slaveClock)
readSystemTimeD (deprecated, use masterTimeAt instead) transforms slave clock to master clock time do...
Definition: softsyncalgorithm.h:31
void reset() override
reset function resets all internal parameters which are used for calculation.
double slaveTimeAt(double masterTime) const override
slaveTimeAt transforms master clock to slave clock time domain
void synchronizeClocks(double masterTime, double slaveTime) override
synchronizeClocks calculates parameters needed for transformation of slave clock to master clock time...
void initiate() override
initate sets value of starting parameters needed for calculation.
Definition: softsyncbase.h:18
SoftSyncBase is abstract class. You can create his descendant if you want to implement your own soft ...
void deInit() override
deInit prepares closer aproximation of starting parameters from current data.
void setDeviceTime(double masterClock, double slaveClock)
setDeviceTime (deprecated, use synchronizeClocks) calculates parameters needed for transformation of ...