Class real_time_tools::RealTimeCheck¶
-
class real_time_tools::RealTimeCheck¶
super simple class for checking if thread ever lost realtime.
simply measure frequency between two calls to the tick function.
Public Functions
-
RealTimeCheck(double target_frequency, double switch_frequency)¶
Construct a new RealTimeCheck object.
- Parameters
target_frequency – is the loop frequency.
switch_frequency – is the admissible frequency.
-
void tick()¶
inform the instance of this class that an iteration passed
-
bool was_realtime_lost() const¶
true if realtime was lost at least once (frequency between two ticks was below target frequencies)
-
bool get_statistics(int &ticks, int &switchs, double &target_frequency, double &switch_frequency, double &average_frequency, double ¤t_frequency, double &worse_frequency)¶
return true if statistics are available, false otherwise (false is returned is tick has never been called or if ticks reached maximum integer value) switchs in the number of time realtime was lost.
-
double get_average_frequency()¶
return the averaged observed frequency if statistics are available, -1 otherwise (false is returned is tick has never been called or if ticks reached maximum integer value).
-
double get_current_frequency() const¶
returns observed frequency after last call to tick
-
void print()¶
Display the results of the frequency measurement.
Private Members
-
bool started¶
true if tick has been called once
-
std::chrono::high_resolution_clock::time_point start_time¶
time at which tick was called first
-
std::chrono::high_resolution_clock::time_point last_tick¶
last time system was ticked
-
double target_frequency¶
frequency at which ticks are expected
-
double epsilon¶
small quantity
-
uint ticks¶
number of iterations
-
uint switchs¶
number of time realtime was lost (target frequency not respected between two ticks)
-
double average_frequency¶
average frequency
-
double worse_frequency¶
worse frequency ever experienced
-
double switch_frequency¶
nb of switches will increase by 1 each time measured frequency below this value
-
double current_frequency¶
latest frequency that was measured
-
std::mutex mutex¶
multithreading safety
-
RealTimeCheck(double target_frequency, double switch_frequency)¶