DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
dunedaq::fddetdataformats::WIBFrame Class Reference

FELIX frame. More...

#include <WIBFrame.hpp>

Collaboration diagram for dunedaq::fddetdataformats::WIBFrame:
[legend]

Public Member Functions

const WIBHeaderget_wib_header () const
 
WIBHeaderget_wib_header ()
 
const ColdataHeaderget_coldata_header (const unsigned block_index) const
 
const ColdataBlockget_block (const uint8_t b) const
 
void set_wib_errors (const uint16_t new_wib_errors)
 
void set_timestamp (const uint64_t new_timestamp)
 
uint64_t get_timestamp () const
 
uint16_t get_channel (const uint8_t block_num, const uint8_t adc, const uint8_t ch) const
 
uint16_t get_channel (const uint8_t block_num, const uint8_t ch) const
 
uint16_t get_channel (const uint8_t ch) const
 
void set_channel (const uint8_t block_num, const uint8_t adc, const uint8_t ch, const uint16_t new_val)
 
void set_channel (const uint8_t block_num, const uint8_t ch, const uint16_t new_val)
 
void set_channel (const uint8_t ch, const uint16_t new_val)
 

Static Public Attributes

static constexpr int s_num_block_per_frame = 4
 
static constexpr int s_num_ch_per_frame = s_num_block_per_frame * ColdataBlock::s_num_ch_per_block
 
static constexpr int s_num_frame_hdr_words = sizeof(WIBHeader) / sizeof(word_t)
 
static constexpr int s_num_COLDATA_hdr_words = sizeof(ColdataHeader) / sizeof(word_t)
 
static constexpr int s_num_COLDATA_words = sizeof(ColdataBlock) / sizeof(word_t)
 
static constexpr int s_num_frame_words = s_num_block_per_frame * s_num_COLDATA_words + s_num_frame_hdr_words
 
static constexpr int s_num_frame_bytes = s_num_frame_words * sizeof(word_t)
 

Private Member Functions

void throw_if_invalid_block_index_ (const int block_num) const
 

Private Attributes

WIBHeader m_head
 
ColdataBlock m_blocks [s_num_block_per_frame]
 

Friends

std::ostream & operator<< (std::ostream &o, WIBFrame const &frame)
 

Detailed Description

FELIX frame.

Definition at line 348 of file WIBFrame.hpp.

Member Function Documentation

◆ get_block()

const ColdataBlock & dunedaq::fddetdataformats::WIBFrame::get_block ( const uint8_t b) const
inline

Definition at line 368 of file WIBFrame.hpp.

369 {
371 return m_blocks[b];
372 }
ColdataBlock m_blocks[s_num_block_per_frame]
Definition WIBFrame.hpp:426
void throw_if_invalid_block_index_(const int block_num) const
Definition WIBFrame.hpp:418

◆ get_channel() [1/3]

uint16_t dunedaq::fddetdataformats::WIBFrame::get_channel ( const uint8_t block_num,
const uint8_t adc,
const uint8_t ch ) const
inline

Definition at line 381 of file WIBFrame.hpp.

382 {
384 return m_blocks[block_num].get_channel(adc, ch);
385 }
PDS Frame with unphysical timestamp detected with ch
uint16_t get_channel(const uint8_t adc, const uint8_t ch) const
Definition WIBFrame.hpp:305

◆ get_channel() [2/3]

uint16_t dunedaq::fddetdataformats::WIBFrame::get_channel ( const uint8_t block_num,
const uint8_t ch ) const
inline

Definition at line 386 of file WIBFrame.hpp.

387 {
390 }
uint16_t get_channel(const uint8_t block_num, const uint8_t adc, const uint8_t ch) const
Definition WIBFrame.hpp:381
static constexpr int s_num_adc_per_block
Definition WIBFrame.hpp:299

◆ get_channel() [3/3]

uint16_t dunedaq::fddetdataformats::WIBFrame::get_channel ( const uint8_t ch) const
inline

Definition at line 391 of file WIBFrame.hpp.

◆ get_coldata_header()

const ColdataHeader * dunedaq::fddetdataformats::WIBFrame::get_coldata_header ( const unsigned block_index) const
inline

Definition at line 363 of file WIBFrame.hpp.

364 {
366 return &m_blocks[block_index].head;
367 }

◆ get_timestamp()

uint64_t dunedaq::fddetdataformats::WIBFrame::get_timestamp ( ) const
inline

Definition at line 378 of file WIBFrame.hpp.

378{ return m_head.get_timestamp(); } // NOLINT(build/unsigned)

◆ get_wib_header() [1/2]

WIBHeader * dunedaq::fddetdataformats::WIBFrame::get_wib_header ( )
inline

Definition at line 361 of file WIBFrame.hpp.

361{ return &m_head; }

◆ get_wib_header() [2/2]

const WIBHeader * dunedaq::fddetdataformats::WIBFrame::get_wib_header ( ) const
inline

Definition at line 360 of file WIBFrame.hpp.

360{ return &m_head; }

◆ set_channel() [1/3]

void dunedaq::fddetdataformats::WIBFrame::set_channel ( const uint8_t block_num,
const uint8_t adc,
const uint8_t ch,
const uint16_t new_val )
inline

Definition at line 397 of file WIBFrame.hpp.

401 {
403 m_blocks[block_num].set_channel(adc, ch, new_val);
404 }
void set_channel(const uint8_t adc, const uint8_t ch, const uint16_t new_val)
Definition WIBFrame.hpp:311

◆ set_channel() [2/3]

void dunedaq::fddetdataformats::WIBFrame::set_channel ( const uint8_t block_num,
const uint8_t ch,
const uint16_t new_val )
inline

Definition at line 405 of file WIBFrame.hpp.

406 {
409 }
void set_channel(const uint8_t block_num, const uint8_t adc, const uint8_t ch, const uint16_t new_val)
Definition WIBFrame.hpp:397

◆ set_channel() [3/3]

void dunedaq::fddetdataformats::WIBFrame::set_channel ( const uint8_t ch,
const uint16_t new_val )
inline

Definition at line 410 of file WIBFrame.hpp.

◆ set_timestamp()

void dunedaq::fddetdataformats::WIBFrame::set_timestamp ( const uint64_t new_timestamp)
inline

Definition at line 376 of file WIBFrame.hpp.

376{ m_head.set_timestamp(new_timestamp); } // NOLINT(build/unsigned)
void set_timestamp(const uint64_t new_timestamp)
Definition WIBFrame.hpp:45

◆ set_wib_errors()

void dunedaq::fddetdataformats::WIBFrame::set_wib_errors ( const uint16_t new_wib_errors)
inline

Definition at line 375 of file WIBFrame.hpp.

375{ m_head.wib_errors = new_wib_errors; } // NOLINT(build/unsigned)

◆ throw_if_invalid_block_index_()

void dunedaq::fddetdataformats::WIBFrame::throw_if_invalid_block_index_ ( const int block_num) const
inlineprivate

Definition at line 418 of file WIBFrame.hpp.

419 {
420 if (block_num < 0 || block_num > s_num_block_per_frame - 1) {
421 throw std::out_of_range("FEMB index out of range");
422 }
423 }
static constexpr int s_num_block_per_frame
Definition WIBFrame.hpp:351

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream & o,
WIBFrame const & frame )
friend

Definition at line 429 of file WIBFrame.hpp.

431{
432 o << "Printing frame:" << '\n';
433 o << frame.m_head << '\n';
434 for (auto b : frame.m_blocks) {
435 o << b;
436 }
437 return o;
438}

Member Data Documentation

◆ m_blocks

ColdataBlock dunedaq::fddetdataformats::WIBFrame::m_blocks[s_num_block_per_frame]
private

Definition at line 426 of file WIBFrame.hpp.

◆ m_head

WIBHeader dunedaq::fddetdataformats::WIBFrame::m_head
private

Definition at line 425 of file WIBFrame.hpp.

◆ s_num_block_per_frame

int dunedaq::fddetdataformats::WIBFrame::s_num_block_per_frame = 4
staticconstexpr

Definition at line 351 of file WIBFrame.hpp.

◆ s_num_ch_per_frame

int dunedaq::fddetdataformats::WIBFrame::s_num_ch_per_frame = s_num_block_per_frame * ColdataBlock::s_num_ch_per_block
staticconstexpr

Definition at line 352 of file WIBFrame.hpp.

◆ s_num_COLDATA_hdr_words

int dunedaq::fddetdataformats::WIBFrame::s_num_COLDATA_hdr_words = sizeof(ColdataHeader) / sizeof(word_t)
staticconstexpr

Definition at line 355 of file WIBFrame.hpp.

◆ s_num_COLDATA_words

int dunedaq::fddetdataformats::WIBFrame::s_num_COLDATA_words = sizeof(ColdataBlock) / sizeof(word_t)
staticconstexpr

Definition at line 356 of file WIBFrame.hpp.

◆ s_num_frame_bytes

int dunedaq::fddetdataformats::WIBFrame::s_num_frame_bytes = s_num_frame_words * sizeof(word_t)
staticconstexpr

Definition at line 358 of file WIBFrame.hpp.

◆ s_num_frame_hdr_words

int dunedaq::fddetdataformats::WIBFrame::s_num_frame_hdr_words = sizeof(WIBHeader) / sizeof(word_t)
staticconstexpr

Definition at line 354 of file WIBFrame.hpp.

◆ s_num_frame_words

int dunedaq::fddetdataformats::WIBFrame::s_num_frame_words = s_num_block_per_frame * s_num_COLDATA_words + s_num_frame_hdr_words
staticconstexpr

Definition at line 357 of file WIBFrame.hpp.


The documentation for this class was generated from the following file: