DUNE-DAQ
DUNE Trigger and Data Acquisition software
|
Class for PD-II/DUNE master timing nodes. More...
#include <MasterNode.hpp>
Public Member Functions | |
MasterNode (const uhal::Node &node) | |
virtual | ~MasterNode () |
std::string | get_status (bool print_out=false) const override |
Print the status of the timing node. | |
std::string | get_status_with_date (uint32_t clock_frequency_hz, bool print_out=false) const |
Print the status of the timing node. | |
void | switch_endpoint_sfp (uint32_t address, bool turn_on) const override |
Control the tx line of endpoint sfp. | |
void | enable_upstream_endpoint () const override |
Enable RTT endpoint. | |
void | send_fl_cmd (uint32_t command, uint32_t channel, uint32_t number_of_commands=1) const override |
Send a fixed length command. | |
uint32_t | measure_endpoint_rtt (uint32_t address, bool control_sfp=true) const override |
Measure the endpoint round trip time. | |
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 override |
Apply delay to endpoint. | |
void | sync_timestamp (TimestampSource source) const override |
Set timestamp to current machine time. | |
uint64_t | read_timestamp () const override |
Read the current timestamp word. | |
void | set_timestamp (TimestampSource source) const override |
Set the timestamp to current time. | |
void | get_info (timingfirmwareinfo::MasterMonitorData &mon_data) const |
Fill the PD-I master monitoring structure. | |
void | reset_command_counters () const |
Read some data from endpoint registers. | |
std::vector< uint32_t > | transmit_async_packet (const std::vector< uint32_t > &packet, int timeout=500) const |
Send an async packet. | |
void | write_endpoint_data (uint16_t endpoint_address, uint8_t reg_address, std::vector< uint8_t > data, bool address_mode) const |
Write some data to endpoint registers. | |
std::vector< uint32_t > | read_endpoint_data (uint16_t endpoint_address, uint8_t reg_address, uint8_t data_length, bool address_mode) const |
Read some data from endpoint registers. | |
void | disable_timestamp_broadcast () const |
Disable timestamp sending. | |
void | enable_timestamp_broadcast () const |
Enable timestamp sending. | |
timingfirmware::EndpointCheckResult | scan_endpoint (uint16_t endpoint_address, bool control_sfp) const override |
Scan endpoint. | |
void | configure_endpoint_command_decoder (uint16_t endpoint_address, uint8_t slot, uint8_t command) const |
Configure endpoint command decoder. | |
uint32_t | get_required_major_firmware_version () const override |
Required major firmware version. | |
uint32_t | get_required_minor_firmware_version () const override |
Required minor firmware version. | |
uint32_t | get_required_patch_firmware_version () const override |
Required patch firmware version. | |
virtual void | apply_endpoint_delay (const ActiveEndpointConfig &ept_config, bool measure_rtt=false) const |
Apply delay to endpoint. | |
![]() | |
MasterNodeInterface (const uhal::Node &node) | |
virtual | ~MasterNodeInterface () |
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. | |
![]() | |
TimingNode (const uhal::Node &node) | |
virtual | ~TimingNode () |
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 Attributes | |
static const uint32_t | required_major_firmware_version = 7 |
static const uint32_t | required_minor_firmware_version = 5 |
static const uint32_t | required_patch_firmware_version = 0 |
Private Member Functions | |
std::string | get_status_tables () const |
Get the status tables. | |
Class for PD-II/DUNE master timing nodes.
Definition at line 38 of file MasterNode.hpp.
|
explicit |
Definition at line 22 of file MasterNode.cpp.
|
virtual |
Definition at line 28 of file MasterNode.cpp.
|
virtual |
Apply delay to endpoint.
Reimplemented from dunedaq::timing::MasterNodeInterface.
Definition at line 94 of file MasterNodeInterface.cpp.
|
overridevirtual |
Apply delay to endpoint.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 205 of file MasterNode.cpp.
void dunedaq::timing::MasterNode::configure_endpoint_command_decoder | ( | uint16_t | endpoint_address, |
uint8_t | slot, | ||
uint8_t | command ) const |
Configure endpoint command decoder.
Definition at line 593 of file MasterNode.cpp.
void dunedaq::timing::MasterNode::disable_timestamp_broadcast | ( | ) | const |
Disable timestamp sending.
Definition at line 503 of file MasterNode.cpp.
void dunedaq::timing::MasterNode::enable_timestamp_broadcast | ( | ) | const |
Enable timestamp sending.
Definition at line 511 of file MasterNode.cpp.
|
overridevirtual |
Enable RTT endpoint.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 130 of file MasterNode.cpp.
|
virtual |
Fill the PD-I master monitoring structure.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 327 of file MasterNode.cpp.
|
inlineoverridevirtual |
Required major firmware version.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 156 of file MasterNode.hpp.
|
inlineoverridevirtual |
Required minor firmware version.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 161 of file MasterNode.hpp.
|
inlineoverridevirtual |
Required patch firmware version.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 166 of file MasterNode.hpp.
|
overridevirtual |
Print the status of the timing node.
Implements dunedaq::timing::TimingNode.
Definition at line 77 of file MasterNode.cpp.
|
private |
Get the status tables.
Definition at line 33 of file MasterNode.cpp.
std::string dunedaq::timing::MasterNode::get_status_with_date | ( | uint32_t | clock_frequency_hz, |
bool | print_out = false ) const |
Print the status of the timing node.
Definition at line 92 of file MasterNode.cpp.
|
overridevirtual |
Measure the endpoint round trip time.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 165 of file MasterNode.cpp.
std::vector< uint32_t > dunedaq::timing::MasterNode::read_endpoint_data | ( | uint16_t | endpoint_address, |
uint8_t | reg_address, | ||
uint8_t | data_length, | ||
bool | address_mode ) const |
Read some data from endpoint registers.
Definition at line 472 of file MasterNode.cpp.
|
overridevirtual |
Read the current timestamp word.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 311 of file MasterNode.cpp.
void dunedaq::timing::MasterNode::reset_command_counters | ( | ) | const |
Read some data from endpoint registers.
Definition at line 368 of file MasterNode.cpp.
|
overridevirtual |
Scan endpoint.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 520 of file MasterNode.cpp.
|
overridevirtual |
Send a fixed length command.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 139 of file MasterNode.cpp.
|
overridevirtual |
Set the timestamp to current time.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 319 of file MasterNode.cpp.
|
overridevirtual |
Control the tx line of endpoint sfp.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 108 of file MasterNode.cpp.
|
overridevirtual |
Set timestamp to current machine time.
Implements dunedaq::timing::MasterNodeInterface.
Definition at line 300 of file MasterNode.cpp.
std::vector< uint32_t > dunedaq::timing::MasterNode::transmit_async_packet | ( | const std::vector< uint32_t > & | packet, |
int | timeout = 500 ) const |
Send an async packet.
Definition at line 377 of file MasterNode.cpp.
void dunedaq::timing::MasterNode::write_endpoint_data | ( | uint16_t | endpoint_address, |
uint8_t | reg_address, | ||
std::vector< uint8_t > | data, | ||
bool | address_mode ) const |
Write some data to endpoint registers.
Definition at line 445 of file MasterNode.cpp.
|
static |
Definition at line 168 of file MasterNode.hpp.
|
static |
Definition at line 169 of file MasterNode.hpp.
|
static |
Definition at line 170 of file MasterNode.hpp.