DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timing
include
timing
MasterNodeInterface.hpp
Go to the documentation of this file.
1
11
12
#ifndef TIMING_INCLUDE_TIMING_MASTERNODEINTERFACE_HPP_
13
#define TIMING_INCLUDE_TIMING_MASTERNODEINTERFACE_HPP_
14
15
// PDT Headers
16
#include "
TimingIssues.hpp
"
17
#include "
timing/EchoMonitorNode.hpp
"
18
#include "
timing/FLCmdGeneratorNode.hpp
"
19
#include "
timing/TimestampGeneratorNode.hpp
"
20
#include "
timing/TimingNode.hpp
"
21
#include "
timing/VLCmdGeneratorNode.hpp
"
22
23
#include "
timing/timingfirmware/Nljs.hpp
"
24
#include "
timing/timingfirmware/Structs.hpp
"
25
26
#include "
timing/timingfirmwareinfo/Nljs.hpp
"
27
#include "
timing/timingfirmwareinfo/Structs.hpp
"
28
29
// uHal Headers
30
#include "uhal/DerivedNode.hpp"
31
32
// C++ Headers
33
#include <chrono>
34
35
namespace
dunedaq
{
36
namespace
timing
{
37
41
class
MasterNodeInterface
:
public
TimingNode
42
{
43
public
:
44
explicit
MasterNodeInterface
(
const
uhal::Node& node);
45
virtual
~MasterNodeInterface
();
46
52
virtual
uint64_t
read_timestamp
()
const
= 0;
// NOLINT(build/unsigned)
53
57
virtual
void
set_timestamp
(
TimestampSource
source)
const
= 0;
// NOLINT(build/unsigned)
58
62
virtual
void
sync_timestamp
(
TimestampSource
source)
const
= 0;
// NOLINT(build/unsigned)
63
67
virtual
void
switch_endpoint_sfp
(uint32_t
address
,
bool
turn_on)
const
= 0;
// NOLINT(build/unsigned)
68
72
virtual
void
enable_upstream_endpoint
()
const
= 0;
73
79
virtual
uint32_t
measure_endpoint_rtt
(uint32_t
address
,
bool
control_sfp =
true
)
const
= 0;
// NOLINT(build/unsigned)
80
84
virtual
void
apply_endpoint_delay
(uint32_t
address
,
// NOLINT(build/unsigned)
85
uint32_t coarse_delay,
// NOLINT(build/unsigned)
86
uint32_t fine_delay,
// NOLINT(build/unsigned)
87
uint32_t phase_delay,
// NOLINT(build/unsigned)
88
bool
measure_rtt =
false
,
89
bool
control_sfp =
true
)
const
= 0;
90
94
virtual
void
apply_endpoint_delay
(
const
ActiveEndpointConfig
& ept_config,
bool
measure_rtt =
false
)
const
;
95
99
virtual
void
send_fl_cmd
(uint32_t command,
// NOLINT(build/unsigned)
100
uint32_t channel,
// NOLINT(build/unsigned)
101
uint32_t number_of_commands = 1)
const
= 0;
// NOLINT(build/unsigned)
102
106
virtual
void
enable_periodic_fl_cmd
(uint32_t channel,
double
rate,
bool
poisson, uint32_t clock_frequency_hz)
const
;
// NOLINT(build/unsigned)
107
111
virtual
void
enable_periodic_fl_cmd
(uint32_t command, uint32_t channel,
double
rate,
bool
poisson, uint32_t clock_frequency_hz)
const
;
// NOLINT(build/unsigned)
112
116
virtual
void
disable_periodic_fl_cmd
(uint32_t channel)
const
;
// NOLINT(build/unsigned)
117
121
virtual
timingfirmware::EndpointCheckResult
scan_endpoint
(uint16_t endpoint_address,
bool
control_sfp)
const
= 0;
122
126
virtual
uint32_t
get_required_major_firmware_version
()
const
= 0;
127
131
virtual
uint32_t
get_required_minor_firmware_version
()
const
= 0;
132
136
virtual
uint32_t
get_required_patch_firmware_version
()
const
= 0;
137
141
virtual
void
get_info
(
timingfirmwareinfo::MasterMonitorData
& mon_data)
const
= 0;
142
143
};
144
145
}
// namespace timing
146
}
// namespace dunedaq
147
148
#endif
// TIMING_INCLUDE_TIMING_MASTERNODEINTERFACE_HPP_
EchoMonitorNode.hpp
FLCmdGeneratorNode.hpp
TimestampGeneratorNode.hpp
TimingNode.hpp
VLCmdGeneratorNode.hpp
dunedaq::timing::MasterNodeInterface::apply_endpoint_delay
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.
dunedaq::timing::MasterNodeInterface::get_required_patch_firmware_version
virtual uint32_t get_required_patch_firmware_version() const =0
Required patch firmware version.
dunedaq::timing::MasterNodeInterface::set_timestamp
virtual void set_timestamp(TimestampSource source) const =0
Set the timestamp.
dunedaq::timing::MasterNodeInterface::enable_periodic_fl_cmd
virtual void enable_periodic_fl_cmd(uint32_t channel, double rate, bool poisson, uint32_t clock_frequency_hz) const
Configure fake trigger generator.
Definition
MasterNodeInterface.cpp:41
dunedaq::timing::MasterNodeInterface::get_required_minor_firmware_version
virtual uint32_t get_required_minor_firmware_version() const =0
Required minor firmware version.
dunedaq::timing::MasterNodeInterface::measure_endpoint_rtt
virtual uint32_t measure_endpoint_rtt(uint32_t address, bool control_sfp=true) const =0
Measure the endpoint round trip time.
dunedaq::timing::MasterNodeInterface::scan_endpoint
virtual timingfirmware::EndpointCheckResult scan_endpoint(uint16_t endpoint_address, bool control_sfp) const =0
Scan endpoint.
dunedaq::timing::MasterNodeInterface::read_timestamp
virtual uint64_t read_timestamp() const =0
Read the current timestamp word.
dunedaq::timing::MasterNodeInterface::disable_periodic_fl_cmd
virtual void disable_periodic_fl_cmd(uint32_t channel) const
Clear fake trigger configuration.
Definition
MasterNodeInterface.cpp:58
dunedaq::timing::MasterNodeInterface::get_info
virtual void get_info(timingfirmwareinfo::MasterMonitorData &mon_data) const =0
Give info to collector.
dunedaq::timing::MasterNodeInterface::switch_endpoint_sfp
virtual void switch_endpoint_sfp(uint32_t address, bool turn_on) const =0
Control the tx line of endpoint sfp.
dunedaq::timing::MasterNodeInterface::enable_upstream_endpoint
virtual void enable_upstream_endpoint() const =0
Enable RTT endpoint.
dunedaq::timing::MasterNodeInterface::MasterNodeInterface
MasterNodeInterface(const uhal::Node &node)
Definition
MasterNodeInterface.cpp:17
dunedaq::timing::MasterNodeInterface::send_fl_cmd
virtual void send_fl_cmd(uint32_t command, uint32_t channel, uint32_t number_of_commands=1) const =0
Send a fixed length command.
dunedaq::timing::MasterNodeInterface::get_required_major_firmware_version
virtual uint32_t get_required_major_firmware_version() const =0
Required major firmware version.
dunedaq::timing::MasterNodeInterface::~MasterNodeInterface
virtual ~MasterNodeInterface()
Definition
MasterNodeInterface.cpp:23
dunedaq::timing::MasterNodeInterface::sync_timestamp
virtual void sync_timestamp(TimestampSource source) const =0
Set timestamp, enable transmission.
dunedaq::timing::TimingNode::TimingNode
TimingNode(const uhal::Node &node)
Definition
TimingNode.cpp:18
TimingIssues.hpp
dunedaq::timing
< Message parameters
Definition
BoreasDesign.hpp:29
dunedaq::timing::TimestampSource
TimestampSource
Definition
definitions.hpp:124
dunedaq
Including Qt Headers.
Definition
module.cpp:16
dunedaq::address
Invalid address
Definition
CommonIssues.hpp:29
dunedaq::timing::ActiveEndpointConfig
Definition
definitions.hpp:143
dunedaq::timing::timingfirmware::EndpointCheckResult
Definition
Structs.hpp:34
dunedaq::timing::timingfirmwareinfo::MasterMonitorData
Definition
Structs.hpp:71
Nljs.hpp
Structs.hpp
Nljs.hpp
Structs.hpp
Generated on
for DUNE-DAQ by
1.17.0