15static constexpr uint32_t HEADER_MASK = 0xF000;
16static constexpr uint8_t EVENT_HEADER = 0xA;
20 return ((word & HEADER_MASK) >> 12) == EVENT_HEADER;
33 uint8_t version = uint8_t(word & 0x000F);
35 return EventPacketVersion::V1;
37 return EventPacketVersion::V2;
38 return EventPacketVersion::ERR;
42static constexpr uint16_t EVENT_TYPE_1_PACKET_LENGTH = 8;
43static constexpr uint16_t EVENT_TYPE_2_PACKET_LENGTH = 18;
47 if (packet_version == Block::EventPacketVersion::V1) {
48 return Block::EVENT_TYPE_1_PACKET_LENGTH;
50 if (packet_version == Block::EventPacketVersion::V2) {
51 return Block::EVENT_TYPE_2_PACKET_LENGTH;
79 Event(std::vector<uint16_t> words)
94 if (trailer != 0xABBA)
111 for (
size_t i = 0;
i < 4;
i++)
151 uint16_t trailer = (
p_words[15] & 0xFF00) >> 8;
157 if ((
p_words[13] & 0x8000) != 0)
169 for (
int i = 0;
i < 4;
i++)
bool is_word_event_header(uint16_t word)
uint16_t get_block_size(EventPacketVersion packet_version=ERR)
EventPacketVersion get_event_packet_version(uint16_t word)
Event_type_1(std::vector< uint16_t > words)
Event_type_2(std::vector< uint16_t > words)
Event(std::vector< uint16_t > words)
uint16_t channel_number_global
virtual bool validate()=0
FIFO_block(std::vector< uint16_t > words)
std::vector< uint16_t > p_words
virtual ~FIFO_block()=default