8static_assert(std::is_trivially_copyable_v<DAQHeader>,
9 "DAQHeader isn't trivially copyable and can't be safely std::memcpy'd");
10static_assert(std::is_standard_layout_v<DAQHeader>,
11 "DAQHeader isn't standard layout; reinterpret_cast and offsetof can't safely be used with it");
12static_assert(std::endian::native == std::endian::little,
13 "The DAQHeader bitfield layout assumes little-endian architecture");
15static_assert(
sizeof(
DAQHeader) == 12,
"DAQHeader struct size different than expected!");
16static_assert(offsetof(
DAQHeader, timestamp_1) == 4,
"DAQHeader timestamp_1 field not at expected offset");
17static_assert(offsetof(
DAQHeader, timestamp_2) == 8,
"DAQHeader timestamp_2 field not at expected offset");
22 return o <<
"Version:" <<
static_cast<unsigned>(h.
version) <<
" DetID:" <<
static_cast<unsigned>(h.
det_id)
23 <<
" CrateID:" <<
static_cast<unsigned>(h.
crate_id) <<
" SlotID:" <<
static_cast<unsigned>(h.
slot_id)
24 <<
" LinkID:" <<
static_cast<unsigned>(h.
link_id) <<
" Timestamp: " << h.
get_timestamp() <<
'\n';