ifw-rtmstools 3.0.0
Loading...
Searching...
No Matches
rtms2DdtGateway.hpp
Go to the documentation of this file.
1
8#ifndef RTMSTOOL_DDT_GATEWAY_HPP_
9#define RTMSTOOL_DDT_GATEWAY_HPP_
10
11#define BOOST_BIND_NO_PLACEHOLDERS
12
13//#include <ifw/rtmstools/rtmslib_llnetio/dataType.hpp>
14#include <ifw/fnd/defs/dataType.hpp>
15
18
20
21 constexpr auto RTMSTOOLS_DDT_NB_SAMPLE = 5;
22
23 inline uint32_t GetDdtDataType(ifw::fnd::datatype::DataType data_type) {
24 switch (data_type) {
25 case ifw::fnd::datatype::DataType::INT16:
26 case ifw::fnd::datatype::DataType::UINT16:
27 return ddt::SINT16;
28 case ifw::fnd::datatype::DataType::INT32:
29 break;
30 case ifw::fnd::datatype::DataType::FLOAT:
31 break;
32 case ifw::fnd::datatype::DataType::INT64:
33 break;
34 case ifw::fnd::datatype::DataType::DOUBLE:
35 break;
36 case ifw::fnd::datatype::DataType::BYTE:
37 return ddt::UINT8;
38 default:
39 return -1;
40 };
41 return -1;
42 }
43
52 public:
53
54 Rtms2DdtGateway(const std::string& receiver_ip,
55 const std::string& interface_name,
56 const int port,
57 const ifw::fnd::datatype::DataType data_type,
58 const int width,
59 const int height,
60 const std::string& ddt_broker_uri,
61 const std::string& ddt_stream,
62 const double ddt_interval,
63 const uint16_t mtu_size,
64 const uint16_t ext_info_size,
66 std::string log_level = "ERROR");
67
69
71 std::vector<uint8_t>& sample_payload);
72
73 private:
74 int m_width;
75 int m_height;
76 ifw::fnd::datatype::DataType m_datatype;
77 std::string m_ddt_broker_uri;
78 std::string m_ddt_stream;
79 double m_ddt_interval;
80 int m_im_size;
81 std::shared_ptr<DdtImage> m_ddt_image;
82
83 ddt::DdtLogger* m_ddt_logger;
84 std::unique_ptr<ddt::DdtDataPublisher> m_ddt_pub;
85 DdtEncDecImage3D m_encoder;
86 MetaDataElementsImage3D m_ddt_metadata;
87 bool m_initialised{false};
88
89 };
90}
91#endif // RTMSTOOL_DDT_GATEWAY_HPP_
Rtms2DdtGateway class.
Definition rtms2DdtGateway.hpp:51
Rtms2DdtGateway(const std::string &receiver_ip, const std::string &interface_name, const int port, const ifw::fnd::datatype::DataType data_type, const int width, const int height, const std::string &ddt_broker_uri, const std::string &ddt_stream, const double ddt_interval, const uint16_t mtu_size, const uint16_t ext_info_size, std::string log_file=ifw::rtmstools::rtmslib_llnetio::RTMSTOOLS_LOG_PROPS, std::string log_level="ERROR")
Definition rtms2DdtGateway.cpp:18
virtual void HandleSampleUser(ifw::rtmstools::rtmslib_llnetio::SampleExtInfo &ext_info, std::vector< uint8_t > &sample_payload)
User provided method to handle an RTMS Sample received.
Definition rtms2DdtGateway.cpp:50
~Rtms2DdtGateway()
Definition rtms2DdtGateway.cpp:44
RtmsReceiver class.
Definition rtmsReceiver.hpp:59
Definition sampleExtInfo.hpp:27
DdtImage Class Implementation.
Definition ddtImage.cpp:10
constexpr auto RTMSTOOLS_DDT_NB_SAMPLE
Definition rtms2DdtGateway.hpp:21
uint32_t GetDdtDataType(ifw::fnd::datatype::DataType data_type)
Definition rtms2DdtGateway.hpp:23
constexpr auto RTMSTOOLS_LOG_PROPS
Definition rtmsReceiver.hpp:33