82 mRawHeaderInitialized =
false;
83 mPayloadInitialized =
false;
88 rawHeader =
decodeRawHeader(mRawMemoryBuffer.data() + mCurrentPosition);
89 if (RDHUtils::getOffsetToNext(rawHeader) == 0) {
92 if (RDHUtils::getSourceID(rawHeader) != 0x8) {
94 mCurrentPosition += RDHUtils::getOffsetToNext(rawHeader);
98 auto dataFormat = RDHUtils::getDataFormat(rawHeader);
99 if (dataFormat != 0x0 && dataFormat != 0x2) {
103 if (mIsJustInited || mStopBitWasNotFound) {
104 mCurrentHBFOrbit = RDHUtils::getHeartBeatOrbit(rawHeader);
105 mDataFormat = dataFormat;
106 mRawHeader = rawHeader;
107 mRawHeaderInitialized =
true;
108 mStopBitWasNotFound =
false;
109 mIsJustInited =
false;
110 }
else if (mCurrentHBFOrbit != RDHUtils::getHeartBeatOrbit(rawHeader)) {
112 mStopBitWasNotFound =
true;
113 mCurrentPosition += RDHUtils::getOffsetToNext(rawHeader);
119 mRawHeader = rawHeader;
120 mRawHeaderInitialized =
true;
122 auto tmp = mRawMemoryBuffer.data();
123 int start = (mCurrentPosition + RDHUtils::getHeaderSize(mRawHeader));
124 int end = (mCurrentPosition + RDHUtils::getMemorySize(mRawHeader));
125 if (mDataFormat == 0x2) {
129 bool isPayloadIncomplete =
false;
130 if (mCurrentPosition + RDHUtils::getMemorySize(mRawHeader) > mRawMemoryBuffer.size()) {
132 isPayloadIncomplete =
true;
133 end = mRawMemoryBuffer.size();
135 for (
auto iword =
start; iword <
end; iword++) {
136 mRawPayload.push_back(tmp[iword]);
138 mPayloadInitialized =
true;
140 mCurrentPosition += RDHUtils::getOffsetToNext(mRawHeader);
141 if (isPayloadIncomplete) {