37 lines
1.2 KiB
C
37 lines
1.2 KiB
C
|
#include <cstdint>
|
||
|
|
||
|
#define START_OF_HEADER_MARKER 0xee1234ee
|
||
|
|
||
|
typedef struct Header {
|
||
|
uint32_t startOfHeaderMarker = START_OF_HEADER_MARKER;
|
||
|
uint32_t headerSize;
|
||
|
uint32_t fragmentSize;
|
||
|
uint32_t runNumber;
|
||
|
uint32_t detectorEventNumber;
|
||
|
uint32_t numberOfStatusElements;
|
||
|
uint32_t *statusElementsArray;
|
||
|
/*friend std::ostream& operator <<(std::ostream& os, Header const& header)
|
||
|
{
|
||
|
return os << std::setw(8) << std::setfill('0') << header.startOfHeaderMarker << '\n'
|
||
|
<< std::setw(8) << std::setfill('0') << header.headerSize << '\n'
|
||
|
<< std::setw(8) << std::setfill('0') << header.fragmentSize << '\n'
|
||
|
<< std::setw(8) << std::setfill('0') << header.runNumber << '\n'
|
||
|
<< std::setw(8) << std::setfill('0') << header.detectorEventNumber << '\n'
|
||
|
<< std::setw(8) << std::setfill('0') << header.numberOfStatusElements << '\n';
|
||
|
}*/
|
||
|
} Header;
|
||
|
|
||
|
typedef struct Fragment {
|
||
|
Header header;
|
||
|
uint32_t *payloadElements;
|
||
|
} Fragment;
|
||
|
|
||
|
enum ERROR_CODES {
|
||
|
INCORRECT_ERROR = (1 << 0),
|
||
|
CORRUPTED_ERROR = (1 << 1),
|
||
|
MISSING_DATA_ERROR = (1 << 2),
|
||
|
TIMEOUT_ERROR = (1 << 3)
|
||
|
};
|
||
|
|
||
|
|