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

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

#include <CDRMuxDesignInterface.hpp>

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

Public Member Functions

 CDRMuxDesignInterface (const uhal::Node &node)
 
virtual ~CDRMuxDesignInterface ()
 
uint8_t read_active_mux () const override
 Read cdr mux.
 
void switch_mux (uint8_t mux_channel, bool resync_cdr=false) const override
 Switch cdr mux.
 
void resync_active_cdr () const override
 Resync active cdr.
 
- Public Member Functions inherited from dunedaq::timing::MuxDesignInterface
 MuxDesignInterface (const uhal::Node &node)
 
virtual ~MuxDesignInterface ()
 
- 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.
 
virtual void get_info (timingfirmwareinfo::TimingDeviceInfo &mon_data) const =0
 Give info to collector.
 
- 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 endpoint design nodes.

Definition at line 34 of file CDRMuxDesignInterface.hpp.

Constructor & Destructor Documentation

◆ CDRMuxDesignInterface()

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

Definition at line 38 of file CDRMuxDesignInterface.hpp.

39 : TopDesignInterface(node)
40 , MuxDesignInterface(node) {}

◆ ~CDRMuxDesignInterface()

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

Definition at line 41 of file CDRMuxDesignInterface.hpp.

41{}

Member Function Documentation

◆ read_active_mux()

uint8_t dunedaq::timing::CDRMuxDesignInterface::read_active_mux ( ) const
inlineoverridevirtual

Read cdr mux.

Returns
{ description_of_the_return_value }

Implements dunedaq::timing::MuxDesignInterface.

Definition at line 48 of file CDRMuxDesignInterface.hpp.

49 {
50 auto active_sfp_mux_channel = getNode("us_mux.csr.ctrl.src").read();
51 getClient().dispatch();
52 return active_sfp_mux_channel.value();
53 }

◆ resync_active_cdr()

void dunedaq::timing::CDRMuxDesignInterface::resync_active_cdr ( ) const
inlineoverridevirtual

Resync active cdr.

Returns
{ description_of_the_return_value }

Implements dunedaq::timing::MuxDesignInterface.

Definition at line 77 of file CDRMuxDesignInterface.hpp.

78 {
79 auto active_mux = read_active_mux();
80 std::string cdr_path("cdr"+std::to_string(active_mux));
81 getNode<UpstreamCDRNode>(cdr_path).resync();
82 }
uint8_t read_active_mux() const override
Read cdr mux.

◆ switch_mux()

void dunedaq::timing::CDRMuxDesignInterface::switch_mux ( uint8_t mux_channel,
bool resync_cdr = false ) const
inlineoverridevirtual

Switch cdr mux.

Returns
{ description_of_the_return_value }

Implements dunedaq::timing::MuxDesignInterface.

Definition at line 60 of file CDRMuxDesignInterface.hpp.

61 {
62 // TODO add mux channel validity check
63 getNode("us_mux.csr.ctrl.src").write(mux_channel);
64 getClient().dispatch();
65
66 if (resync_cdr)
67 {
69 }
70 }
void resync_active_cdr() const override
Resync active cdr.

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