DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timing
include
timing
MasterDesign.hpp
Go to the documentation of this file.
1
11
12
#ifndef TIMING_INCLUDE_TIMING_MASTERDESIGN_HPP_
13
#define TIMING_INCLUDE_TIMING_MASTERDESIGN_HPP_
14
15
// PDT Headers
16
#include "
timing/TopDesign.hpp
"
17
#include "
timing/MasterDesignInterface.hpp
"
18
19
// uHal Headers
20
#include "uhal/DerivedNode.hpp"
21
22
// C++ Headers
23
#include <chrono>
24
#include <sstream>
25
#include <string>
26
27
namespace
dunedaq
{
28
namespace
timing
{
29
33
class
MasterDesign
:
public
TopDesign
,
virtual
public
MasterDesignInterface
34
{
35
UHAL_DERIVEDNODE(
MasterDesign
)
36
public
:
37
explicit
MasterDesign
(
const
uhal::Node& node);
38
virtual
~MasterDesign
();
39
43
std::string
get_status
(
bool
print_out =
false
)
const override
;
44
49
void
configure
(
ClockSource
clock_source,
TimestampSource
ts_source)
const override
;
50
56
uint64_t
read_master_timestamp
()
const override
;
// NOLINT(build/unsigned)
57
62
void
sync_timestamp
(
TimestampSource
source)
const override
;
63
69
uint32_t
measure_endpoint_rtt
(uint32_t
address
,
// NOLINT(build/unsigned)
70
bool
control_sfp =
true
,
71
int
sfp_mux = -1)
const override
;
75
void
apply_endpoint_delay
(uint32_t
address
,
// NOLINT(build/unsigned)
76
uint32_t coarse_delay,
// NOLINT(build/unsigned)
77
uint32_t fine_delay,
// NOLINT(build/unsigned)
78
uint32_t phase_delay,
// NOLINT(build/unsigned)
79
bool
measure_rtt =
false
,
80
bool
control_sfp =
true
,
81
int
sfp_mux = -1)
const override
;
85
void
enable_periodic_fl_cmd
(uint32_t channel,
double
rate,
bool
poisson =
false
)
const override
;
// NOLINT(build/unsigned)
86
90
void
enable_periodic_fl_cmd
(uint32_t command, uint32_t channel,
double
rate,
bool
poisson =
false
)
const override
;
// NOLINT(build/unsigned)
91
95
const
MasterNodeInterface
*
get_master_node_plain
()
const override
{
return
dynamic_cast<
const
MasterNodeInterface
*
>
(&uhal::Node::getNode(
"master"
)); }
96
102
uint32_t
read_firmware_version
()
const override
;
// NOLINT(build/unsigned)
103
108
void
validate_firmware_version
()
const override
;
109
113
void
get_info
(
timingfirmwareinfo::TimingDeviceInfo
& mon_data)
const override
;
114
118
void
get_info
(
timingfirmwareinfo::MasterMonitorData
& mon_data)
const override
119
{
120
get_master_node_plain
()->
get_info
(mon_data);
121
}
122
};
123
124
}
// namespace timing
125
}
// namespace dunedaq
126
127
#endif
// TIMING_INCLUDE_TIMING_MASTERDESIGN_HPP_
MasterDesignInterface.hpp
TopDesign.hpp
dunedaq::timing::MasterDesignInterface::MasterDesignInterface
MasterDesignInterface(const uhal::Node &node)
Definition
MasterDesignInterface.hpp:38
dunedaq::timing::MasterDesign::get_info
void get_info(timingfirmwareinfo::TimingDeviceInfo &mon_data) const override
Give info to collector.
Definition
MasterDesign.cpp:136
dunedaq::timing::MasterDesign::get_status
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition
MasterDesign.cpp:25
dunedaq::timing::MasterDesign::get_master_node_plain
const MasterNodeInterface * get_master_node_plain() const override
Get master node pointer.
Definition
MasterDesign.hpp:95
dunedaq::timing::MasterDesign::apply_endpoint_delay
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, int sfp_mux=-1) const override
Apply delay to endpoint.
Definition
MasterDesign.cpp:74
dunedaq::timing::MasterDesign::measure_endpoint_rtt
uint32_t measure_endpoint_rtt(uint32_t address, bool control_sfp=true, int sfp_mux=-1) const override
Measure the endpoint round trip time.
Definition
MasterDesign.cpp:66
dunedaq::timing::MasterDesign::sync_timestamp
void sync_timestamp(TimestampSource source) const override
Sync timestamp to current machine value.
Definition
MasterDesign.cpp:58
dunedaq::timing::MasterDesign::~MasterDesign
virtual ~MasterDesign()
Definition
MasterDesign.cpp:19
dunedaq::timing::MasterDesign::validate_firmware_version
void validate_firmware_version() const override
Validate master firmware version.
Definition
MasterDesign.cpp:117
dunedaq::timing::MasterDesign::enable_periodic_fl_cmd
void enable_periodic_fl_cmd(uint32_t channel, double rate, bool poisson=false) const override
Configure fake trigger generator.
Definition
MasterDesign.cpp:88
dunedaq::timing::MasterDesign::read_firmware_version
uint32_t read_firmware_version() const override
Read master firmware version.
Definition
MasterDesign.cpp:106
dunedaq::timing::MasterDesign::configure
void configure(ClockSource clock_source, TimestampSource ts_source) const override
Prepare the timing master for data taking.
Definition
MasterDesign.cpp:39
dunedaq::timing::MasterDesign::get_info
void get_info(timingfirmwareinfo::MasterMonitorData &mon_data) const override
Give info to collector.
Definition
MasterDesign.hpp:118
dunedaq::timing::MasterDesign::read_master_timestamp
uint64_t read_master_timestamp() const override
Read the current timestamp.
Definition
MasterDesign.cpp:50
dunedaq::timing::MasterDesign::MasterDesign
MasterDesign(const uhal::Node &node)
Definition
MasterDesign.cpp:11
dunedaq::timing::MasterNodeInterface
Base class for timing IO nodes.
Definition
MasterNodeInterface.hpp:42
dunedaq::timing::MasterNodeInterface::get_info
virtual void get_info(timingfirmwareinfo::MasterMonitorData &mon_data) const =0
Give info to collector.
dunedaq::timing::TopDesign::TopDesign
TopDesign(const uhal::Node &node)
Definition
TopDesign.hpp:41
dunedaq::timing
< Message parameters
Definition
BoreasDesign.hpp:29
dunedaq::timing::ClockSource
ClockSource
Definition
definitions.hpp:115
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::timingfirmwareinfo::MasterMonitorData
Definition
Structs.hpp:71
dunedaq::timing::timingfirmwareinfo::TimingDeviceInfo
Definition
Structs.hpp:105
Generated on
for DUNE-DAQ by
1.17.0