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

Base class for timing hsi design nodes. More...

#include <HSIDesignInterface.hpp>

Inheritance diagram for dunedaq::timing::HSIDesignInterface:
[legend]
Collaboration diagram for dunedaq::timing::HSIDesignInterface:
[legend]

Public Member Functions

 HSIDesignInterface (const uhal::Node &node)
 
virtual ~HSIDesignInterface ()
 
virtual const HSINodeget_hsi_node () const
 Get the HSI node.
 
virtual void configure_hsi (uint32_t src, uint32_t re_mask, uint32_t fe_mask, uint32_t inv_mask, double rate, bool dispatch=true) const
 Configure the HSI node.
 
void get_info (timingfirmwareinfo::TimingDeviceInfo &mon_data) const override
 Give info to collector.
 
virtual void get_info (timingfirmwareinfo::HSIFirmwareMonitorData &mon_data) const
 Give info to collector.
 
virtual void get_info (uint32_t ept_id, timingendpointinfo::TimingEndpointInfo &mon_data) const
 Give info to collector.
 
- Public Member Functions inherited from dunedaq::timing::EndpointDesignInterface
 EndpointDesignInterface (const uhal::Node &node)
 
virtual ~EndpointDesignInterface ()
 
virtual const EndpointNodeInterfaceget_endpoint_node_plain (uint32_t ept_id) const
 Return the timing endpoint node.
 
virtual uint32_t get_number_of_endpoint_nodes () const
 Return the timing endpoint node.
 
- Public Member Functions inherited from dunedaq::timing::TopDesignInterface
 TopDesignInterface (const uhal::Node &node)
 
virtual ~TopDesignInterface ()
 
virtual const IONodeget_io_node_plain () const =0
 Get io node pointer.
 
template<class IO >
const IO * get_io_node () const
 
virtual void soft_reset_io () const =0
 Reset timing node.
 
virtual void reset_io (const std::string &clock_config_file) const =0
 Reset timing node.
 
virtual void reset_io (const ClockSource &clock_source) const =0
 Reset timing node.
 
virtual void configure (ClockSource clock_source) const =0
 Prepare the timing device for data taking.
 
virtual std::string get_hardware_info (bool print_out=false) const =0
 Print hardware information.
 
virtual uint32_t read_firmware_version () const =0
 Read firmware version.
 
virtual void validate_firmware_version () const =0
 Validate firmware version.
 
- Public Member Functions inherited from dunedaq::timing::TimingNode
 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.
 

Detailed Description

Base class for timing hsi design nodes.

Definition at line 37 of file HSIDesignInterface.hpp.

Constructor & Destructor Documentation

◆ HSIDesignInterface()

dunedaq::timing::HSIDesignInterface::HSIDesignInterface ( const uhal::Node & node)
inlineexplicit

Definition at line 41 of file HSIDesignInterface.hpp.

◆ ~HSIDesignInterface()

virtual dunedaq::timing::HSIDesignInterface::~HSIDesignInterface ( )
inlinevirtual

Definition at line 44 of file HSIDesignInterface.hpp.

44{}

Member Function Documentation

◆ configure_hsi()

virtual void dunedaq::timing::HSIDesignInterface::configure_hsi ( uint32_t src,
uint32_t re_mask,
uint32_t fe_mask,
uint32_t inv_mask,
double rate,
bool dispatch = true ) const
inlinevirtual

Configure the HSI node.

Returns
{ description_of_the_return_value }

Definition at line 69 of file HSIDesignInterface.hpp.

75 {
76 uint32_t firmware_frequency = get_io_node_plain()->read_firmware_frequency(); // NOLINT(build/unsigned)
77 get_hsi_node().configure_hsi(src, re_mask, fe_mask, inv_mask, rate, firmware_frequency, dispatch);
78 }
virtual const HSINode & get_hsi_node() const
Get the HSI node.
void configure_hsi(uint32_t src, uint32_t re_mask, uint32_t fe_mask, uint32_t inv_mask, double rate, uint32_t clock_frequency_hz, bool dispatch=true) const
Configure HSI triggering.
Definition HSINode.cpp:174
virtual uint32_t read_firmware_frequency() const
Read the word identifying the frequency [units of Hz] of the firmware in the FPGA.
Definition IONode.cpp:78
virtual const IONode * get_io_node_plain() const =0
Get io node pointer.

◆ get_hsi_node()

virtual const HSINode & dunedaq::timing::HSIDesignInterface::get_hsi_node ( ) const
inlinevirtual

Get the HSI node.

Returns
{ description_of_the_return_value }

Definition at line 51 of file HSIDesignInterface.hpp.

52 {
53
54 auto top_level_hsi_nodes = getNodes("hsi");
55 if (top_level_hsi_nodes.size() > 0)
56 {
57 return uhal::Node::getNode<HSINode>("hsi");
58 }
59 else
60 {
61 return uhal::Node::getNode<HSINode>("endpoint0.hsi");
62 }
63 }

◆ get_info() [1/3]

virtual void dunedaq::timing::HSIDesignInterface::get_info ( timingfirmwareinfo::HSIFirmwareMonitorData & mon_data) const
inlinevirtual

Give info to collector.

Definition at line 92 of file HSIDesignInterface.hpp.

93 {
94
95 get_hsi_node().get_info(mon_data);
96 }
void get_info(timingfirmwareinfo::HSIFirmwareMonitorData &mon_data) const
Collect monitoring information for timing endpoint.
Definition HSINode.cpp:315

◆ get_info() [2/3]

void dunedaq::timing::HSIDesignInterface::get_info ( timingfirmwareinfo::TimingDeviceInfo & mon_data) const
inlineoverridevirtual

Give info to collector.

Reimplemented from dunedaq::timing::EndpointDesignInterface.

Definition at line 83 of file HSIDesignInterface.hpp.

84 {
85 EndpointDesignInterface::get_info(0, mon_data.endpoint_info);
86 HSIDesignInterface::get_info(mon_data.hsi_info);
87 }
virtual void get_info(uint32_t ept_id, timingendpointinfo::TimingEndpointInfo &mon_data) const
Give info to collector.
void get_info(timingfirmwareinfo::TimingDeviceInfo &mon_data) const override
Give info to collector.

◆ get_info() [3/3]

virtual void dunedaq::timing::EndpointDesignInterface::get_info ( uint32_t ept_id,
timingendpointinfo::TimingEndpointInfo & mon_data ) const
inlinevirtual

Give info to collector.

Reimplemented from dunedaq::timing::EndpointDesignInterface.

Definition at line 70 of file EndpointDesignInterface.hpp.

71 {
72 get_endpoint_node_plain(ept_id)->get_info(mon_data);
73 }
virtual const EndpointNodeInterface * get_endpoint_node_plain(uint32_t ept_id) const
Return the timing endpoint node.
virtual void get_info(timingendpointinfo::TimingEndpointInfo &) const
Collect monitoring information for timing endpoint.

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