ifw-ccf  3.0.0-pre2
monitorThread.hpp
Go to the documentation of this file.
1 
5 #ifndef IFW_CCF_CTL_MONITOR_THREAD_HPP_
6 #define IFW_CCF_CTL_MONITOR_THREAD_HPP_
7 
8 #include <boost/exception/diagnostic_information.hpp>
9 
10 #include <ccf/common/base.hpp>
11 #include <ccf/common/utilities.hpp>
12 
13 namespace ccf::control {
14 
19  public:
20 
22  MonitorThread(const std::string& thread_name,
23  ccf::mptk::MessageBus& message_bus,
24  const double period = 0.1);
25 
26  virtual ~MonitorThread();
27 
29  void Initialise();
30 
32  virtual void UserLogic();
33 
34  private:
35  void _CollectData();
36  void _ComputePublishStatistics();
37  void _CheckMessageBus();
38  void _HandleNewSetup(ccf::Status status,
39  std::string& diagnostics);
40  void _UpdateRecordingStatus();
41 
42  void _ComputeStatistics(const std::vector<double>& data_set,
43  uint16_t& samples_in_set,
44  double& mean,
45  double& min,
46  double& max,
47  double& stddev,
48  double& jitter,
49  const double theoretic_periodicty = INT_MIN);
50 
51  std::list<std::string> m_thread_names;
52  std::map<std::string, ccf::common::FrameStatistics> m_thr_name_to_frame_stat;
53  std::map<std::string, double> m_thread_drift;
54  std::map<uint64_t, double> m_thread_drift_window;
55  uint64_t m_drift_count;
56  double m_mon_last_rec_wait_clean_up;
57  };
58 
59 }
60 
61 #endif // IFW_CCF_CTL_MONITOR_THREAD_HPP_
Monitor Thread MPTK class.
Definition: monitorThread.hpp:18
virtual void UserLogic()
Monitor Thread user logic.
Definition: monitorThread.cpp:29
void Initialise()
Initialise the thread. This is invoked after creation.
Definition: monitorThread.cpp:25
virtual ~MonitorThread()
Definition: monitorThread.cpp:21
MonitorThread(const std::string &thread_name, ccf::mptk::MessageBus &message_bus, const double period=0.1)
See ccf::mptk::Thread.
Definition: monitorThread.cpp:12
IFW CTD Multiprocessing Toolkit Message Bus.
Definition: messageBus.hpp:91
IFW CTD Multiprocessing Toolkit Thread base class.
Definition: thread.hpp:29
Definition: acqThread.cpp:10
Status
General status variable.
Definition: base.hpp:201