ifw-rtmstools 4.0.0
 
Loading...
Searching...
No Matches
rtmsReceiverTool.hpp
Go to the documentation of this file.
1
7
8#ifndef RTMS_RECEIVER_TOOL_LLNETIO_HPP_
9#define RTMS_RECEIVER_TOOL_LLNETIO_HPP_
10
11#include <chrono>
12#include <cstdint>
13#include <limits>
14
15#include <ifw/rtmslib_llnetio/rtmsReceiver.hpp>
17
18
26 class RtmsReceiverTool : public ifw::rtmslib::RtmsReceiver {
27 public:
28 RtmsReceiverTool(const std::string& receiver_ip,
29 const std::string& interface_name,
30 const int port,
31 const ifw::fnd::datatype::DataType data_type,
32 const ifw::rtmslib::ReceiverConfig& rcv_cfg,
33 uint32_t samples_requested,
34 bool print_sample_details);
35
36 virtual void HandleSampleUser(ifw::rtmslib::SampleExtInfo& ext_info,
37 std::vector<uint8_t>& sample_payload);
38
39
40 // virtual void HandleLeaderPacket();
41
42 // virtual void HandlePayloadPacket(mudpiif::mudpiPacketJumbo& packet);
43
44 // virtual void HandleTrailerPacket();
45
46 // virtual void HandleLostPackets();
47
48 std::string GenerateReport() const;
50 void StopReceiving() { RequestStop(); }
51
53 uint32_t m_samples_received{0};
54 uint32_t m_samples_lost{0};
55 uint32_t m_last_sample_id{0};
56 uint64_t m_total_bytes{0};
57 std::chrono::steady_clock::time_point m_start_time{};
58 std::chrono::steady_clock::time_point m_last_sample_time{};
59 double m_min_interval_ms{std::numeric_limits<double>::max()};
60 double m_max_interval_ms{0.0};
61 double m_sum_interval_ms{0.0};
62 uint64_t m_interval_count{0};
63 double m_interval_mean_ms{0.0};
64 double m_interval_m2_ms{0.0};
66
67 void ResetIntervalStats();
68 void UpdateIntervalStats(double interval_ms);
69 };
70}
71#endif // RTMS_RECEIVER_TOOL_LLNETIO_HPP_
double m_max_interval_ms
Definition rtmsReceiverTool.hpp:60
uint32_t m_samples_requested
Definition rtmsReceiverTool.hpp:52
double m_min_interval_ms
Definition rtmsReceiverTool.hpp:59
uint32_t m_last_sample_id
Definition rtmsReceiverTool.hpp:55
virtual void HandleSampleUser(ifw::rtmslib::SampleExtInfo &ext_info, std::vector< uint8_t > &sample_payload)
Definition rtmsReceiverTool.cpp:60
double m_sum_interval_ms
Definition rtmsReceiverTool.hpp:61
uint32_t m_samples_lost
Definition rtmsReceiverTool.hpp:54
ReceiverToolStats GetStatistics() const
Definition rtmsReceiverTool.cpp:136
uint64_t m_total_bytes
Definition rtmsReceiverTool.hpp:56
RtmsReceiverTool(const std::string &receiver_ip, const std::string &interface_name, const int port, const ifw::fnd::datatype::DataType data_type, const ifw::rtmslib::ReceiverConfig &rcv_cfg, uint32_t samples_requested, bool print_sample_details)
Definition rtmsReceiverTool.cpp:25
std::string GenerateReport() const
Definition rtmsReceiverTool.cpp:102
double m_interval_m2_ms
Definition rtmsReceiverTool.hpp:64
uint64_t m_interval_count
Definition rtmsReceiverTool.hpp:62
std::chrono::steady_clock::time_point m_last_sample_time
Definition rtmsReceiverTool.hpp:58
void UpdateIntervalStats(double interval_ms)
Definition rtmsReceiverTool.cpp:49
double m_interval_mean_ms
Definition rtmsReceiverTool.hpp:63
bool m_print_sample_details
Definition rtmsReceiverTool.hpp:65
void ResetIntervalStats()
Definition rtmsReceiverTool.cpp:40
uint32_t m_samples_received
Definition rtmsReceiverTool.hpp:53
void StopReceiving()
Definition rtmsReceiverTool.hpp:50
std::chrono::steady_clock::time_point m_start_time
Definition rtmsReceiverTool.hpp:57
Shared statistics structure for RTMS receiver tools.
Definition receiverToolStats.hpp:12
Definition receiverToolStats.hpp:14