RTC Toolkit  0.1.0-alpha
mudpiProcessor.hpp
Go to the documentation of this file.
1 
8 #ifndef RTCTK_REUSABLECOMPONENT_TELREPUB_MUDPIPROCESSOR_HPP_
9 #define RTCTK_REUSABLECOMPONENT_TELREPUB_MUDPIPROCESSOR_HPP_
10 
11 #include <boost/asio.hpp>
12 #include <thread>
13 #include <iostream>
14 #include <map>
15 #include <boost/array.hpp>
16 
17 #include "mudpi.h"
18 #include "mudpiProcessingError.hpp"
19 
20 #include "ddsPubThread.hpp"
21 
22 using boost::asio::ip::udp;
23 using boost::asio::ip::address;
24 
25 
26 namespace rtctk::telRepub {
27 
28 
29 
37 
41  uint32_t m_statisticMsgUpdateRate;
42 
43  bool inSynch = true;
44  uint32_t frameIdErrors = 0;
45  uint32_t sampleIdErrors = 0;
46 
47  uint32_t m_frameIdErrorsPerTopic = 0;
48  uint32_t m_sampleIdErrorsPerTopic = 0;
49 
53  char *m_recvBuffer;
54 
58  mudpi::mudpiHeader *m_mht;
59 
63  PubThreadBase<>& m_pub;
64 
65  uint16_t m_totalBufLen;
66  topicT m_topicBuf;
67 
68  mudpi::uint32_t m_lastSampleId = -1; //TBC!!!
69  mudpi::timestamp_t m_lastTimestamp = 0.0;
70 
71  mudpi::uint16_t m_lastFrameId = 0;
72  mudpi::uint16_t m_numFrames = -1; //TBC !!!
73 
77  struct timeval m_startTime;
78  struct timeval m_nowTime;
79  double m_elapsedTime;
80  double m_pckPerSecEst;
81 
82  uint32_t m_recvd = 0;
83  mudpi::uint16_t m_topicId = 0;
84  mudpi::uint32_t m_sampleId = 0;
85  mudpi::uint16_t m_frameId = 0;
86 
87  time_t ctt;
88 public:
89 
96  explicit MudpiProcessor(char* buf, PubThreadBase<>& pub, uint32_t statisticMsgUpdateRate=5000);
98 
104  std::error_code ProcessMudpi(size_t bytes_transferred);
105 
109  void Statistics();
110 };//MudpiProcessor
111 
112 } // closing namespace
113 
114 #endif //RTCTK_REUSABLECOMPONENT_TELREPUB_MUDPIPROCESSOR_HPP_
115 
116 
117 
rtctk::telRepub::MudpiProcessor::~MudpiProcessor
~MudpiProcessor()
Definition: mudpiProcessor.cpp:21
ddsPubThread.hpp
DDS agnostic topic publioshing thread.
rtctk::telRepub
Definition: ddsPub.cpp:12
mudpi::mudpiHeader
Definition: mudpi.h:27
mudpi::uint16_t
unsigned short uint16_t
Definition: mudpi.h:15
mudpi::timestamp_t
double timestamp_t
Definition: mudpi.h:18
buf
char buf[DATAGRAM_SIZE]
Definition: testUdpReceiver.cpp:17
rtctk::telRepub::MudpiProcessor::Statistics
void Statistics()
Definition: mudpiProcessor.cpp:157
rtctk::telRepub::MudpiProcessor
Definition: mudpiProcessor.hpp:36
rtctk::telRepub::topicT
Definition: ddsPubThread.hpp:48
mudpi::uint32_t
unsigned int uint32_t
Definition: mudpi.h:16
rtctk::telRepub::MudpiProcessor::ProcessMudpi
std::error_code ProcessMudpi(size_t bytes_transferred)
Definition: mudpiProcessor.cpp:23
rtctk::telRepub::MudpiProcessor::MudpiProcessor
MudpiProcessor(char *buf, PubThreadBase<> &pub, uint32_t statisticMsgUpdateRate=5000)
Definition: mudpiProcessor.cpp:13
mudpiProcessingError.hpp
MUDPI processor error codes.
rtctk::telRepub::PubThreadBase<>