Lightweight and fast frequency monitor. More...
#include <frequency.hpp>
Public Member Functions | |
const FrequencyDiagnostics & | analyse () |
Analyse the recent updates to generate monitoring statistics. More... | |
const FrequencyDiagnostics & | diagnostics () const |
Diagnostics getter function. More... | |
FrequencyMonitor (const float &window_period=2.0, const bool &use_realtime_clock=false) | |
Setup the frequency monitor. More... | |
void | update () |
Let the diagnostics know that new data has arrived. More... | |
Protected Attributes | |
FrequencyDiagnostics | current_diagnostics |
unsigned int | incoming_counter |
ecl::TimeStamp | last_anyalsed |
ecl::TimeStamp | last_incoming |
ecl::TimeStamp | maximum_interval |
ecl::TimeStamp | minimum_interval |
ecl::TimeStamp | period |
bool | use_realtime_clock |
Lightweight and fast frequency monitor.
This class doesn't dynamically update over a window, nor does it collect and store data to compute characteristics like standard deviations. It is however, suitable for most use case scenarios where you are simply interested in the hz/minimum_interval/maximum_interval of data over a fixed period.
Usage:
Definition at line 89 of file frequency.hpp.
ecl::FrequencyMonitor::FrequencyMonitor | ( | const float & | window_period = 2.0 , |
const bool & | use_realtime_clock = false |
||
) |
Setup the frequency monitor.
window_period | : time interval over which updates are analysed. |
use_realtime_clock | : better to use the monotonic clock, but sometimes (e.g. ros), realtime is required. |
Definition at line 24 of file lib/frequency.cpp.
const FrequencyDiagnostics & ecl::FrequencyMonitor::analyse | ( | ) |
Analyse the recent updates to generate monitoring statistics.
Right now this just uses a fixed window (not moving) that only updates the information if the period since the last analyse() request was made has been exceeded.
every two seconds, we update the status as follows
Definition at line 61 of file lib/frequency.cpp.
|
inline |
Diagnostics getter function.
Definition at line 119 of file frequency.hpp.
void ecl::FrequencyMonitor::update | ( | ) |
Let the diagnostics know that new data has arrived.
This updates the internal counter, with a timestamp.
Definition at line 43 of file lib/frequency.cpp.
|
protected |
Definition at line 119 of file frequency.hpp.
|
protected |
Definition at line 123 of file frequency.hpp.
|
protected |
Definition at line 124 of file frequency.hpp.
|
protected |
Definition at line 129 of file frequency.hpp.
|
protected |
Definition at line 127 of file frequency.hpp.
|
protected |
Definition at line 126 of file frequency.hpp.
|
protected |
Definition at line 125 of file frequency.hpp.
|
protected |
Definition at line 128 of file frequency.hpp.