DUNE-DAQ
DUNE Trigger and Data Acquisition software
|
Base class for timing IO nodes. More...
#include <IONode.hpp>
Public Member Functions | |
IONode (const uhal::Node &node, std::string uid_i2c_bus, std::string pll_i2c_bus, std::string pll_i2c_device, std::vector< std::string > clock_names, std::vector< std::string > sfp_i2c_buses) | |
virtual | ~IONode () |
virtual std::string | get_uid_address_parameter_name () const =0 |
Get the UID address parameter name. | |
virtual uint32_t | read_board_type () const |
Read the word identifying the timing board. | |
virtual uint32_t | read_carrier_type () const |
Read the word identifying the FPFA carrier board. | |
virtual uint32_t | read_design_type () const |
Read the word identifying the firmware design in the FPGA. | |
virtual uint32_t | read_firmware_frequency () const |
Read the word identifying the frequency [units of Hz] of the firmware in the FPGA. | |
virtual uint64_t | read_board_uid () const |
Read the word containing the timing board UID. | |
virtual BoardRevision | get_board_revision () const |
Read the word identifying the timing board. | |
virtual std::string | get_hardware_info (bool print_out=false) const |
Print hardware information. | |
virtual std::string | get_full_clock_config_file_path (const ClockSource &clock_source) const |
Get the full config path. | |
template<class T > | |
std::unique_ptr< const T > | get_i2c_device (const std::string &i2c_bus_name, const std::string &i2c_device_name) const |
Get the an I2C chip. | |
virtual std::unique_ptr< const SI534xSlave > | get_pll () const |
Get the PLL chip. | |
virtual void | configure_pll (const std::string &clock_config_file="") const |
Configure clock chip. | |
virtual std::vector< double > | read_clock_frequencies () const |
Read frequencies of on-board clocks. | |
virtual std::string | get_clock_frequencies_table (bool print_out=false) const |
Print frequencies of on-board clocks. | |
virtual std::string | get_pll_status (bool print_out=false) const |
Print status of on-board PLL. | |
virtual std::string | get_sfp_status (uint32_t sfp_id, bool print_out=false) const |
Print status of on-board SFP. | |
virtual void | switch_sfp_soft_tx_control_bit (uint32_t sfp_id, bool turn_on) const |
control tx laser of on-board SFP softly (I2C command) | |
virtual void | switch_sfp_tx (uint32_t sfp_id, bool turn_on) const =0 |
control tx laser of on-board SFP | |
virtual void | soft_reset () const |
Reset timing node. | |
virtual void | reset (const std::string &clock_config_file) const =0 |
Reset timing node. | |
virtual void | reset (const ClockSource &clock_source) const |
Reset timing node with clock file lookup. | |
virtual bool | clocks_ok () const =0 |
Clocks ready? | |
virtual void | get_info (timinghardwareinfo::TimingPLLMonitorData &mon_data) const |
![]() | |
TimingNode (const uhal::Node &node) | |
virtual | ~TimingNode () |
virtual std::string | get_status (bool print_out=false) const =0 |
Get the status string of the timing node. Optionally print it. | |
std::map< std::string, uhal::ValWord< uint32_t > > | read_sub_nodes (const uhal::Node &node, bool dispatch=true) const |
Read subnodes. | |
void | reset_sub_nodes (const uhal::Node &node, uint32_t aValue=0x0, bool dispatch=true) const |
Reset subnodes. | |
Static Public Member Functions | |
static const std::map< BoardType, std::string > & | get_board_type_map () |
static const std::map< CarrierType, std::string > & | get_carrier_type_map () |
static const std::map< BoardRevision, std::string > & | get_board_revision_map () |
static const std::map< uint64_t, BoardRevision > & | get_board_uid_revision_map () |
static const std::map< DesignType, std::string > & | get_design_type_map () |
static const std::map< std::string, std::string > & | get_clock_config_map () |
static const std::vector< BoardType > & | get_library_supported_boards () |
static const std::vector< DesignType > & | get_library_supported_designs () |
Protected Member Functions | |
virtual void | write_soft_reset_register () const |
Write soft reset register. | |
Static Protected Member Functions | |
static std::string | clock_source_to_string (const ClockSource &source) |
Protected Attributes | |
const std::string | m_uid_i2c_bus |
const std::string | m_pll_i2c_bus |
const std::string | m_pll_i2c_device |
const std::vector< std::string > | m_clock_names |
const std::vector< std::string > | m_sfp_i2c_buses |
Static Protected Attributes | |
static const std::map< BoardType, std::string > | board_type_map |
static const std::map< CarrierType, std::string > | carrier_type_map |
static const std::map< BoardRevision, std::string > | board_revision_map |
static const std::map< DesignType, std::string > | design_type_map |
static const std::map< uint64_t, BoardRevision > | board_uid_revision_map |
static const std::map< ClockSource, std::string > | clock_source_map |
static const std::map< std::string, std::string > | clock_config_map |
static const std::vector< BoardType > | library_supported_boards |
static const std::vector< DesignType > | library_supported_designs |
Base class for timing IO nodes.
Definition at line 43 of file IONode.hpp.
dunedaq::timing::IONode::IONode | ( | const uhal::Node & | node, |
std::string | uid_i2c_bus, | ||
std::string | pll_i2c_bus, | ||
std::string | pll_i2c_device, | ||
std::vector< std::string > | clock_names, | ||
std::vector< std::string > | sfp_i2c_buses ) |
Definition at line 25 of file IONode.cpp.
|
virtual |
Definition at line 43 of file IONode.cpp.
|
inlinestaticprotected |
Definition at line 428 of file IONode.hpp.
|
pure virtual |
|
virtual |
Configure clock chip.
Reimplemented in dunedaq::timing::FIBV2IONode, dunedaq::timing::MIBIONode, and dunedaq::timing::SIMIONode.
Definition at line 247 of file IONode.cpp.
|
virtual |
Read the word identifying the timing board.
Reimplemented in dunedaq::timing::SIMIONode.
Definition at line 104 of file IONode.cpp.
|
inlinestatic |
Definition at line 192 of file IONode.hpp.
|
inlinestatic |
Definition at line 188 of file IONode.hpp.
|
inlinestatic |
Definition at line 193 of file IONode.hpp.
|
inlinestatic |
Definition at line 190 of file IONode.hpp.
|
inlinestatic |
Definition at line 195 of file IONode.hpp.
|
virtual |
Print frequencies of on-board clocks.
Reimplemented in dunedaq::timing::FMCIONode, and dunedaq::timing::SIMIONode.
Definition at line 272 of file IONode.cpp.
|
inlinestatic |
Definition at line 194 of file IONode.hpp.
|
virtual |
Get the full config path.
Definition at line 167 of file IONode.cpp.
|
virtual |
Print hardware information.
Reimplemented in dunedaq::timing::GIBIONode, and dunedaq::timing::SIMIONode.
Definition at line 118 of file IONode.cpp.
std::unique_ptr< const T > dunedaq::timing::IONode::get_i2c_device | ( | const std::string & | i2c_bus_name, |
const std::string & | i2c_device_name ) const |
Get the an I2C chip.
Definition at line 6 of file IONode.hxx.
|
inlinevirtual |
Reimplemented in dunedaq::timing::FIBV2IONode.
Definition at line 186 of file IONode.hpp.
|
inlinestatic |
Definition at line 196 of file IONode.hpp.
|
inlinestatic |
Definition at line 197 of file IONode.hpp.
|
virtual |
Get the PLL chip.
Reimplemented in dunedaq::timing::FIBV2IONode, and dunedaq::timing::GIBIONode.
Definition at line 239 of file IONode.cpp.
|
virtual |
Print status of on-board PLL.
Reimplemented in dunedaq::timing::FIBV2IONode, dunedaq::timing::MIBIONode, and dunedaq::timing::SIMIONode.
Definition at line 288 of file IONode.cpp.
|
virtual |
Print status of on-board SFP.
Reimplemented in dunedaq::timing::FIBIONode, dunedaq::timing::FIBV2IONode, dunedaq::timing::GIBIONode, dunedaq::timing::MIBIONode, dunedaq::timing::MIBV2IONode, dunedaq::timing::PC059IONode, dunedaq::timing::SIMIONode, and dunedaq::timing::TLUIONode.
Definition at line 324 of file IONode.cpp.
|
pure virtual |
Get the UID address parameter name.
Implemented in dunedaq::timing::FIBIONode, dunedaq::timing::FIBV2IONode, dunedaq::timing::FMCIONode, dunedaq::timing::GIBIONode, dunedaq::timing::MIBIONode, dunedaq::timing::MIBV2IONode, dunedaq::timing::PC059IONode, dunedaq::timing::SIMIONode, and dunedaq::timing::TLUIONode.
|
virtual |
Read the word identifying the timing board.
Definition at line 48 of file IONode.cpp.
|
virtual |
Read the word containing the timing board UID.
Reimplemented in dunedaq::timing::SIMIONode.
Definition at line 88 of file IONode.cpp.
|
virtual |
Read the word identifying the FPFA carrier board.
Definition at line 58 of file IONode.cpp.
|
virtual |
Read frequencies of on-board clocks.
Reimplemented in dunedaq::timing::FMCIONode, and dunedaq::timing::SIMIONode.
Definition at line 264 of file IONode.cpp.
|
virtual |
Read the word identifying the firmware design in the FPGA.
Definition at line 68 of file IONode.cpp.
|
virtual |
Read the word identifying the frequency [units of Hz] of the firmware in the FPGA.
Definition at line 78 of file IONode.cpp.
|
virtual |
Reset timing node with clock file lookup.
Reimplemented in dunedaq::timing::FIBIONode, dunedaq::timing::FIBV2IONode, dunedaq::timing::FMCIONode, dunedaq::timing::GIBIONode, dunedaq::timing::MIBIONode, dunedaq::timing::MIBV2IONode, dunedaq::timing::PC059IONode, dunedaq::timing::SIMIONode, and dunedaq::timing::TLUIONode.
Definition at line 314 of file IONode.cpp.
|
pure virtual |
|
virtual |
Reset timing node.
Definition at line 305 of file IONode.cpp.
|
virtual |
control tx laser of on-board SFP softly (I2C command)
Reimplemented in dunedaq::timing::FIBIONode, dunedaq::timing::FIBV2IONode, dunedaq::timing::GIBIONode, dunedaq::timing::MIBIONode, dunedaq::timing::MIBV2IONode, dunedaq::timing::PC059IONode, dunedaq::timing::SIMIONode, and dunedaq::timing::TLUIONode.
Definition at line 343 of file IONode.cpp.
|
pure virtual |
control tx laser of on-board SFP
Implemented in dunedaq::timing::FIBIONode, dunedaq::timing::FIBV2IONode, dunedaq::timing::FMCIONode, dunedaq::timing::GIBIONode, dunedaq::timing::MIBIONode, dunedaq::timing::MIBV2IONode, dunedaq::timing::PC059IONode, dunedaq::timing::SIMIONode, and dunedaq::timing::TLUIONode.
|
protectedvirtual |
Write soft reset register.
Definition at line 296 of file IONode.cpp.
|
inlinestaticprotected |
Definition at line 232 of file IONode.hpp.
|
inlinestaticprotected |
Definition at line 211 of file IONode.hpp.
|
inlinestaticprotected |
Definition at line 259 of file IONode.hpp.
|
inlinestaticprotected |
Definition at line 223 of file IONode.hpp.
|
inlinestaticprotected |
Definition at line 355 of file IONode.hpp.
|
inlinestaticprotected |
|
inlinestaticprotected |
Definition at line 240 of file IONode.hpp.
|
inlinestaticprotected |
Definition at line 420 of file IONode.hpp.
|
inlinestaticprotected |
Definition at line 424 of file IONode.hpp.
|
protected |
Definition at line 203 of file IONode.hpp.
|
protected |
Definition at line 201 of file IONode.hpp.
|
protected |
Definition at line 202 of file IONode.hpp.
|
protected |
Definition at line 204 of file IONode.hpp.
|
protected |
Definition at line 200 of file IONode.hpp.