EEROS  1.0.0.0
API for the EEROS Real-Time Robotics Framework
PeriodicCounter.hpp
Go to the documentation of this file.
1 #ifndef ORG_EEROS_CORE_PERIODICCOUNTER_HPP_
2 #define ORG_EEROS_CORE_PERIODICCOUNTER_HPP_
3 
4 #include <chrono>
5 #include <vector>
6 #include <functional>
7 
11 
12 namespace eeros {
13 
15  using clk = std::chrono::steady_clock;
16  using time_point = clk::time_point;
17 
18  public:
20  using MonitorFunc = std::function<void(PeriodicCounter&, Logger&)>;
21 
22  PeriodicCounter(double period = 0, unsigned logger_category = 0);
23 
24  void setPeriod(double period);
25  void setResetTime(double sec);
26  void addDefaultMonitor(double tolerance = 0.05);
27 
28  void tick();
29  void tock();
30  void reset();
31 
34 
38 
39  std::vector<MonitorFunc> monitors;
40 
41  static void addDefaultMonitor(std::vector<MonitorFunc> &monitors, double period, double tolerance = 0.05);
42 
43  private:
44  double counter_period;
45  double reset_after;
46  bool first;
47  int reset_counter;
48  time_point start;
49  time_point last;
50  Logger log;
51  };
52 }
53 
54 #endif // ORG_EEROS_CORE_PERIODICCOUNTER_HPP_
void tock()
Definition: PeriodicCounter.cpp:31
Definition: Logger.hpp:15
void addDefaultMonitor(double tolerance=0.05)
Definition: PeriodicCounter.cpp:22
void setResetTime(double sec)
Definition: PeriodicCounter.cpp:18
Definition: PeriodicCounter.hpp:14
std::function< void(PeriodicCounter &, Logger &)> MonitorFunc
Definition: PeriodicCounter.hpp:20
std::vector< MonitorFunc > monitors
Definition: PeriodicCounter.hpp:39
PeriodicCounter(double period=0, unsigned logger_category=0)
Definition: PeriodicCounter.cpp:5
Definition: Config.hpp:14
Statistics jitter
Definition: PeriodicCounter.hpp:36
Definition: LogEntry.hpp:8
Definition: Statistics.hpp:6
void reset()
Definition: PeriodicCounter.cpp:58
void operator>>(eeros::logger::LogEntry &event)
Definition: PeriodicCounter.cpp:65
Statistics run
Definition: PeriodicCounter.hpp:37
void setPeriod(double period)
Definition: PeriodicCounter.cpp:13
Statistics period
Definition: PeriodicCounter.hpp:35
void tick()
Definition: PeriodicCounter.cpp:26