ifw-ccf  2.0.0
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_
ccf::stdpub::PubRtms::SETUP_KEY_PKT_SEND_DELAY
const std::string SETUP_KEY_PKT_SEND_DELAY
Definition: pubRtms.hpp:27
ccf::stdpub::PubRtms
Standard RTMS Publisher.
Definition: pubRtms.hpp:19
ccf::stdpub::PubRtms::PubRtms
PubRtms()
Definition: pubRtms.cpp:29
ccf::stdpub::PubRtms::CreateObjectUser
virtual void CreateObjectUser(const std::string &proc_thread_name, const std::string &pub_thread_name, PubBase **new_object)
Definition: pubRtms.cpp:143
config.hpp
ccf::stdpub::PubRtms::SETUP_KEY_BPP
const std::string SETUP_KEY_BPP
Definition: pubRtms.hpp:24
pubBase.hpp
ccf::stdpub::PubRtms::SETUP_KEY_TOPIC_ID
const std::string SETUP_KEY_TOPIC_ID
Definition: pubRtms.hpp:25
ccf::stdpub::PubRtms::_SetSimulation
static void _SetSimulation()
Definition: pubRtms.cpp:13
ccf::common::PubBase::PubBase
PubBase()
Definition: pubBase.cpp:414
ccf::stdpub::PubRtms::SETUP_KEY_SAMPLE_ID
const std::string SETUP_KEY_SAMPLE_ID
Definition: pubRtms.hpp:26
ccf::common::PubBase
Class for implementing CCF Data Publishers.
Definition: pubBase.hpp:114
ccf::stdpub::PubRtms::~PubRtms
virtual ~PubRtms()
Definition: pubRtms.cpp:34
mudpiCreator.hpp
ccf::stdpub::PubRtms::InitialiseUser
virtual void InitialiseUser()
Definition: pubRtms.cpp:38
ccf::stdpub::PubRtms::PublishUser
virtual void PublishUser(ccf::common::DataFrame &frame)
Definition: pubRtms.cpp:77
ccf::stdpub
MudpiCreator source file.
Definition: mudpiCreator.hpp:22
ccf::common::DataFrame
Frame class used to store the data and metadata for one frames received from the camera.
Definition: dataFrame.hpp:17
ccf::stdpub::PubRtms::DismantleUser
virtual void DismantleUser()
Definition: pubRtms.cpp:132