DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
MasterNodeInterface.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_MASTERNODEINTERFACE_HPP_
13#define TIMING_INCLUDE_TIMING_MASTERNODEINTERFACE_HPP_
14
15// PDT Headers
16#include "TimingIssues.hpp"
20#include "timing/TimingNode.hpp"
22
25
28
29// uHal Headers
30#include "uhal/DerivedNode.hpp"
31
32// C++ Headers
33#include <chrono>
34
35namespace dunedaq {
36namespace timing {
37
42{
43public:
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_
Base class for timing IO nodes.
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 uint32_t get_required_patch_firmware_version() const =0
Required patch firmware version.
virtual void set_timestamp(TimestampSource source) const =0
Set the timestamp.
virtual void enable_periodic_fl_cmd(uint32_t channel, double rate, bool poisson, uint32_t clock_frequency_hz) const
Configure fake trigger generator.
virtual uint32_t get_required_minor_firmware_version() const =0
Required minor firmware version.
virtual uint32_t measure_endpoint_rtt(uint32_t address, bool control_sfp=true) const =0
Measure the endpoint round trip time.
virtual timingfirmware::EndpointCheckResult scan_endpoint(uint16_t endpoint_address, bool control_sfp) const =0
Scan endpoint.
virtual uint64_t read_timestamp() const =0
Read the current timestamp word.
virtual void disable_periodic_fl_cmd(uint32_t channel) const
Clear fake trigger configuration.
virtual void get_info(timingfirmwareinfo::MasterMonitorData &mon_data) const =0
Give info to collector.
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 void send_fl_cmd(uint32_t command, uint32_t channel, uint32_t number_of_commands=1) const =0
Send a fixed length command.
virtual uint32_t get_required_major_firmware_version() const =0
Required major firmware version.
virtual void sync_timestamp(TimestampSource source) const =0
Set timestamp, enable transmission.
Base class for timing nodes.
Including Qt Headers.