DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timing
include
timing
MasterDesignInterface.hpp
Go to the documentation of this file.
1
11
12
#ifndef TIMING_INCLUDE_TIMING_MASTERDESIGNINTERFACE_HPP_
13
#define TIMING_INCLUDE_TIMING_MASTERDESIGNINTERFACE_HPP_
14
15
// PDT Headers
16
#include "
timing/TopDesign.hpp
"
17
#include "
timing/MasterNodeInterface.hpp
"
18
#include "
timing/definitions.hpp
"
19
20
// uHal Headers
21
#include "uhal/DerivedNode.hpp"
22
23
// C++ Headers
24
#include <chrono>
25
#include <sstream>
26
#include <string>
27
28
namespace
dunedaq
{
29
namespace
timing
{
30
34
class
MasterDesignInterface
:
virtual
public
TopDesignInterface
35
{
36
37
public
:
38
explicit
MasterDesignInterface
(
const
uhal::Node& node)
39
:
TopDesignInterface
(node)
40
{}
41
virtual
~MasterDesignInterface
() {}
42
48
virtual
uint64_t
read_master_timestamp
()
const
= 0;
// NOLINT(build/unsigned)
49
54
virtual
void
sync_timestamp
(
TimestampSource
source)
const
= 0;
55
61
virtual
uint32_t
measure_endpoint_rtt
(uint32_t
address
,
// NOLINT(build/unsigned)
62
bool
control_sfp =
true
,
63
int
sfp_mux = -1)
const
= 0;
67
virtual
void
apply_endpoint_delay
(uint32_t
address
,
// NOLINT(build/unsigned)
68
uint32_t coarse_delay,
// NOLINT(build/unsigned)
69
uint32_t fine_delay,
// NOLINT(build/unsigned)
70
uint32_t phase_delay,
// NOLINT(build/unsigned)
71
bool
measure_rtt =
false
,
72
bool
control_sfp =
true
,
73
int
sfp_mux = -1)
const
= 0;
77
virtual
void
enable_periodic_fl_cmd
(uint32_t channel,
double
rate,
bool
poisson =
false
)
const
= 0;
// NOLINT(build/unsigned)
78
82
virtual
void
enable_periodic_fl_cmd
(uint32_t command, uint32_t channel,
double
rate,
bool
poisson =
false
)
const
= 0;
// NOLINT(build/unsigned)
83
87
virtual
const
MasterNodeInterface
*
get_master_node_plain
()
const
= 0;
88
89
template
<
class
MST>
90
const
MST*
get_master_node
()
const
91
{
92
return
dynamic_cast<
const
MST*
>
(
get_master_node_plain
());
93
}
94
99
virtual
void
configure
(
ClockSource
clock_source,
TimestampSource
ts_source)
const
= 0;
100
104
virtual
void
get_info
(
timingfirmwareinfo::MasterMonitorData
& mon_data)
const
= 0;
105
106
using
TopDesignInterface::get_info
;
107
108
private
:
109
using
TopDesignInterface::configure
;
110
111
};
112
113
}
// namespace timing
114
}
// namespace dunedaq
115
116
#endif
// TIMING_INCLUDE_TIMING_MASTERDESIGNINTERFACE_HPP_
MasterNodeInterface.hpp
TopDesign.hpp
dunedaq::timing::MasterDesignInterface::get_info
virtual void get_info(timingfirmwareinfo::MasterMonitorData &mon_data) const =0
Give info to collector.
dunedaq::timing::MasterDesignInterface::get_master_node
const MST * get_master_node() const
Definition
MasterDesignInterface.hpp:90
dunedaq::timing::MasterDesignInterface::MasterDesignInterface
MasterDesignInterface(const uhal::Node &node)
Definition
MasterDesignInterface.hpp:38
dunedaq::timing::MasterDesignInterface::sync_timestamp
virtual void sync_timestamp(TimestampSource source) const =0
Sync timestamp to current machine value.
dunedaq::timing::MasterDesignInterface::measure_endpoint_rtt
virtual uint32_t measure_endpoint_rtt(uint32_t address, bool control_sfp=true, int sfp_mux=-1) const =0
Measure the endpoint round trip time.
dunedaq::timing::MasterDesignInterface::configure
virtual void configure(ClockSource clock_source, TimestampSource ts_source) const =0
Prepare the timing device for data taking.
dunedaq::timing::MasterDesignInterface::enable_periodic_fl_cmd
virtual void enable_periodic_fl_cmd(uint32_t command, uint32_t channel, double rate, bool poisson=false) const =0
Configure fake trigger generator.
dunedaq::timing::MasterDesignInterface::get_master_node_plain
virtual const MasterNodeInterface * get_master_node_plain() const =0
Get master node pointer.
dunedaq::timing::MasterDesignInterface::~MasterDesignInterface
virtual ~MasterDesignInterface()
Definition
MasterDesignInterface.hpp:41
dunedaq::timing::MasterDesignInterface::enable_periodic_fl_cmd
virtual void enable_periodic_fl_cmd(uint32_t channel, double rate, bool poisson=false) const =0
Configure fake trigger generator.
dunedaq::timing::MasterDesignInterface::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, int sfp_mux=-1) const =0
Apply delay to endpoint.
dunedaq::timing::MasterDesignInterface::read_master_timestamp
virtual uint64_t read_master_timestamp() const =0
Read the current timestamp.
dunedaq::timing::MasterNodeInterface
Base class for timing IO nodes.
Definition
MasterNodeInterface.hpp:42
dunedaq::timing::TopDesignInterface::TopDesignInterface
TopDesignInterface(const uhal::Node &node)
Definition
TopDesignInterface.hpp:42
dunedaq::timing::TopDesignInterface::configure
virtual void configure(ClockSource clock_source) const =0
Prepare the timing device for data taking.
dunedaq::timing::TopDesignInterface::get_info
virtual void get_info(timingfirmwareinfo::TimingDeviceInfo &mon_data) const =0
Give info to collector.
definitions.hpp
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
Generated on
for DUNE-DAQ by
1.17.0