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

Base class for timing IO nodes. More...

#include <MasterNodeInterface.hpp>

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

Public Member Functions

 MasterNodeInterface (const uhal::Node &node)
 
virtual ~MasterNodeInterface ()
 
virtual uint64_t read_timestamp () const =0
 Read the current timestamp word.
 
virtual void set_timestamp (TimestampSource source) const =0
 Set the timestamp.
 
virtual void sync_timestamp (TimestampSource source) const =0
 Set timestamp, enable transmission.
 
virtual void switch_endpoint_sfp (uint32_t address, bool turn_on) const =0
 Control the tx line of endpoint sfp.
 
virtual void enable_upstream_endpoint () const =0
 Enable RTT endpoint.
 
virtual uint32_t measure_endpoint_rtt (uint32_t address, bool control_sfp=true) const =0
 Measure the endpoint round trip time.
 
virtual void apply_endpoint_delay (uint32_t address, uint32_t coarse_delay, uint32_t fine_delay, uint32_t phase_delay, bool measure_rtt=false, bool control_sfp=true) const =0
 Apply delay to endpoint.
 
virtual void apply_endpoint_delay (const ActiveEndpointConfig &ept_config, bool measure_rtt=false) const
 Apply delay to endpoint.
 
virtual void send_fl_cmd (uint32_t command, uint32_t channel, uint32_t number_of_commands=1) const =0
 Send a fixed length command.
 
virtual void enable_periodic_fl_cmd (uint32_t channel, double rate, bool poisson, uint32_t clock_frequency_hz) const
 Configure fake trigger generator.
 
virtual void enable_periodic_fl_cmd (uint32_t command, uint32_t channel, double rate, bool poisson, uint32_t clock_frequency_hz) const
 Configure fake trigger generator.
 
virtual void disable_periodic_fl_cmd (uint32_t channel) const
 Clear fake trigger configuration.
 
virtual timingfirmware::EndpointCheckResult scan_endpoint (uint16_t endpoint_address, bool control_sfp) const =0
 Scan endpoint.
 
virtual uint32_t get_required_major_firmware_version () const =0
 Required major firmware version.
 
virtual uint32_t get_required_minor_firmware_version () const =0
 Required minor firmware version.
 
virtual uint32_t get_required_patch_firmware_version () const =0
 Required patch firmware version.
 
virtual void get_info (timingfirmwareinfo::MasterMonitorData &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 IO nodes.

Definition at line 41 of file MasterNodeInterface.hpp.

Constructor & Destructor Documentation

◆ MasterNodeInterface()

dunedaq::timing::MasterNodeInterface::MasterNodeInterface ( const uhal::Node & node)
explicit

Definition at line 17 of file MasterNodeInterface.cpp.

18 : TimingNode(node)
19{}
TimingNode(const uhal::Node &node)

◆ ~MasterNodeInterface()

dunedaq::timing::MasterNodeInterface::~MasterNodeInterface ( )
virtual

Definition at line 23 of file MasterNodeInterface.cpp.

23{}

Member Function Documentation

◆ apply_endpoint_delay() [1/2]

void dunedaq::timing::MasterNodeInterface::apply_endpoint_delay ( const ActiveEndpointConfig & ept_config,
bool measure_rtt = false ) const
virtual

Apply delay to endpoint.

Reimplemented in dunedaq::timing::MasterNode.

Definition at line 28 of file MasterNodeInterface.cpp.

29{
30 std::string lEptIdD = ept_config.id;
31 uint32_t ept_address = ept_config.adr; // NOLINT(build/unsigned)
32 uint32_t coarse_Delay = ept_config.cdelay; // NOLINT(build/unsigned)
33 uint32_t fine_delay = ept_config.fdelay; // NOLINT(build/unsigned)
34 uint32_t phase_delay = ept_config.pdelay; // NOLINT(build/unsigned)
35 apply_endpoint_delay(ept_address, coarse_Delay, fine_delay, phase_delay, measure_rtt);
36}
virtual void apply_endpoint_delay(uint32_t address, uint32_t coarse_delay, uint32_t fine_delay, uint32_t phase_delay, bool measure_rtt=false, bool control_sfp=true) const =0
Apply delay to endpoint.

◆ apply_endpoint_delay() [2/2]

virtual void dunedaq::timing::MasterNodeInterface::apply_endpoint_delay ( uint32_t address,
uint32_t coarse_delay,
uint32_t fine_delay,
uint32_t phase_delay,
bool measure_rtt = false,
bool control_sfp = true ) const
pure virtual

Apply delay to endpoint.

Implemented in dunedaq::timing::MasterNode.

◆ disable_periodic_fl_cmd()

void dunedaq::timing::MasterNodeInterface::disable_periodic_fl_cmd ( uint32_t channel) const
virtual

Clear fake trigger configuration.

Definition at line 58 of file MasterNodeInterface.cpp.

59{
60 getNode<FLCmdGeneratorNode>("scmd_gen").disable_fake_trigger(channel);
61}

◆ enable_periodic_fl_cmd() [1/2]

void dunedaq::timing::MasterNodeInterface::enable_periodic_fl_cmd ( uint32_t channel,
double rate,
bool poisson,
uint32_t clock_frequency_hz ) const
virtual

Configure fake trigger generator.

Definition at line 41 of file MasterNodeInterface.cpp.

42{
43 enable_periodic_fl_cmd(0x8+channel, channel, rate, poisson, clock_frequency_hz);
44}
virtual void enable_periodic_fl_cmd(uint32_t channel, double rate, bool poisson, uint32_t clock_frequency_hz) const
Configure fake trigger generator.

◆ enable_periodic_fl_cmd() [2/2]

void dunedaq::timing::MasterNodeInterface::enable_periodic_fl_cmd ( uint32_t command,
uint32_t channel,
double rate,
bool poisson,
uint32_t clock_frequency_hz ) const
virtual

Configure fake trigger generator.

Definition at line 49 of file MasterNodeInterface.cpp.

50{
51
52 getNode<FLCmdGeneratorNode>("scmd_gen").enable_periodic_fl_cmd(command, channel, rate, poisson, clock_frequency_hz);
53}

◆ enable_upstream_endpoint()

virtual void dunedaq::timing::MasterNodeInterface::enable_upstream_endpoint ( ) const
pure virtual

Enable RTT endpoint.

Implemented in dunedaq::timing::MasterNode.

◆ get_info()

virtual void dunedaq::timing::MasterNodeInterface::get_info ( timingfirmwareinfo::MasterMonitorData & mon_data) const
pure virtual

Give info to collector.

Implemented in dunedaq::timing::MasterNode.

◆ get_required_major_firmware_version()

virtual uint32_t dunedaq::timing::MasterNodeInterface::get_required_major_firmware_version ( ) const
pure virtual

Required major firmware version.

Implemented in dunedaq::timing::MasterNode.

◆ get_required_minor_firmware_version()

virtual uint32_t dunedaq::timing::MasterNodeInterface::get_required_minor_firmware_version ( ) const
pure virtual

Required minor firmware version.

Implemented in dunedaq::timing::MasterNode.

◆ get_required_patch_firmware_version()

virtual uint32_t dunedaq::timing::MasterNodeInterface::get_required_patch_firmware_version ( ) const
pure virtual

Required patch firmware version.

Implemented in dunedaq::timing::MasterNode.

◆ measure_endpoint_rtt()

virtual uint32_t dunedaq::timing::MasterNodeInterface::measure_endpoint_rtt ( uint32_t address,
bool control_sfp = true ) const
pure virtual

Measure the endpoint round trip time.

Returns
{ description_of_the_return_value }

Implemented in dunedaq::timing::MasterNode.

◆ read_timestamp()

virtual uint64_t dunedaq::timing::MasterNodeInterface::read_timestamp ( ) const
pure virtual

Read the current timestamp word.

Returns
{ description_of_the_return_value }

Implemented in dunedaq::timing::MasterNode.

◆ scan_endpoint()

virtual timingfirmware::EndpointCheckResult dunedaq::timing::MasterNodeInterface::scan_endpoint ( uint16_t endpoint_address,
bool control_sfp ) const
pure virtual

Scan endpoint.

Implemented in dunedaq::timing::MasterNode.

◆ send_fl_cmd()

virtual void dunedaq::timing::MasterNodeInterface::send_fl_cmd ( uint32_t command,
uint32_t channel,
uint32_t number_of_commands = 1 ) const
pure virtual

Send a fixed length command.

Implemented in dunedaq::timing::MasterNode.

◆ set_timestamp()

virtual void dunedaq::timing::MasterNodeInterface::set_timestamp ( TimestampSource source) const
pure virtual

Set the timestamp.

Implemented in dunedaq::timing::MasterNode.

◆ switch_endpoint_sfp()

virtual void dunedaq::timing::MasterNodeInterface::switch_endpoint_sfp ( uint32_t address,
bool turn_on ) const
pure virtual

Control the tx line of endpoint sfp.

Implemented in dunedaq::timing::MasterNode.

◆ sync_timestamp()

virtual void dunedaq::timing::MasterNodeInterface::sync_timestamp ( TimestampSource source) const
pure virtual

Set timestamp, enable transmission.

Implemented in dunedaq::timing::MasterNode.


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