ifw-ccf  3.0.0-pre2
pubRtms.hpp
Go to the documentation of this file.
1 
5 #ifndef CCF_STDPUB_PUB_RTMS_HPP_H_
6 #define CCF_STDPUB_PUB_RTMS_HPP_H_
7 
8 #define BOOST_BIND_NO_PLACEHOLDERS
9 
10 #include <mudpiif/MudpiSender.hpp>
11 
12 #include <ccf/common/config.hpp>
13 #include <ccf/common/pubBase.hpp>
15 
16 namespace ccf::stdpub {
17 
19  class PubRtms: public ccf::common::PubBase {
20  public:
21 
22  static void _SetSimulation(); // Warning: Don't use this.
23 
24  const std::string SETUP_KEY_BPP = "bpp";
25  const std::string SETUP_KEY_TOPIC_ID = "topic_id";
26  const std::string SETUP_KEY_SAMPLE_ID = "sample_id";
27  const std::string SETUP_KEY_PKT_SEND_DELAY = "pkt_send_delay";
28 
29  PubRtms(const std::string& proc_thread_name,
30  const std::string& pub_thread_name);
31 
32  PubRtms();
33 
34  virtual ~PubRtms();
35 
36  virtual void InitialiseUser();
37 
38  virtual void PublishUser(ccf::common::DataFrame& frame);
39 
40  virtual void DismantleUser();
41 
42  // virtual void CreateObjectUser(const std::string& proc_thread_name,
43  // const std::string& pub_thread_name,
44  // std::shared_ptr<PubBase>& new_object);
45 
46  virtual void CreateObjectUser(const std::string& proc_thread_name,
47  const std::string& pub_thread_name,
48  PubBase** new_object);
49 
50  protected:
51 
52  private:
53  static bool s_simulation;
54  double m_min_period;
55  double m_time_last_publishing;
56  double m_packet_send_delay;
57  int m_bpp{2};
58  std::string m_address{"127.0.0.1"};
59  int m_port{59000};
60  // Basic MUDPI configuration
61  int m_topicid{10};
62  int m_sampleid{500};
63  std::unique_ptr<ccf::stdpub::MudpiCreator> m_mudpi_creator;
64  std::unique_ptr<mudpiif::mudpiSenderJumbo> m_mudpi_sender;
65  boost::asio::io_context m_ioc;
66  };
67 
68 }
69 
70 #endif // CCF_STDPUB_PUB_RTMS_HPP_H_
Frame class used to store the data and metadata for one frames received from the camera.
Definition: dataFrame.hpp:17
Class for implementing CCF Data Publishers.
Definition: pubBase.hpp:114
PubBase()
Definition: pubBase.cpp:390
Standard RTMS Publisher.
Definition: pubRtms.hpp:19
virtual ~PubRtms()
Definition: pubRtms.cpp:34
static void _SetSimulation()
Definition: pubRtms.cpp:13
const std::string SETUP_KEY_TOPIC_ID
Definition: pubRtms.hpp:25
virtual void InitialiseUser()
Definition: pubRtms.cpp:38
virtual void DismantleUser()
Definition: pubRtms.cpp:132
PubRtms()
Definition: pubRtms.cpp:29
const std::string SETUP_KEY_SAMPLE_ID
Definition: pubRtms.hpp:26
virtual void PublishUser(ccf::common::DataFrame &frame)
Definition: pubRtms.cpp:77
virtual void CreateObjectUser(const std::string &proc_thread_name, const std::string &pub_thread_name, PubBase **new_object)
Definition: pubRtms.cpp:143
const std::string SETUP_KEY_PKT_SEND_DELAY
Definition: pubRtms.hpp:27
const std::string SETUP_KEY_BPP
Definition: pubRtms.hpp:24
MudpiCreator source file.
Definition: mudpiCreator.hpp:22