DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timing
src
GaiaDesign.cpp
Go to the documentation of this file.
1
#include "
timing/GaiaDesign.hpp
"
2
3
#include "
timing/IRIGTimestampNode.hpp
"
4
5
#include <sstream>
6
#include <string>
7
8
namespace
dunedaq::timing
{
9
10
UHAL_REGISTER_DERIVED_NODE(
GaiaDesign
)
11
12
//-----------------------------------------------------------------------------
13
GaiaDesign
::
GaiaDesign
(const
uhal
::Node& node)
14
:
TopDesignInterface
(node)
15
,
MasterDesignInterface
(node)
16
,
MuxDesignInterface
(node)
17
,
MasterDesign
(node)
18
,
EndpointDesignInterface
(node)
19
,
CDRMuxDesignInterface
(node)
20
{}
21
//-----------------------------------------------------------------------------
22
23
//-----------------------------------------------------------------------------
24
GaiaDesign::~GaiaDesign
()
25
{}
26
//-----------------------------------------------------------------------------
27
28
//-----------------------------------------------------------------------------
29
std::string
30
GaiaDesign::get_status
(
bool
print_out)
const
31
{
32
std::stringstream status;
33
status <<
get_io_node_plain
()->
get_pll_status
();
34
status <<
MasterDesign::get_master_node_plain
()->
get_status
();
35
// TODO fanout specific status
36
if
(print_out)
37
TLOG
() << status.str();
38
return
status.str();
39
}
40
//-----------------------------------------------------------------------------
41
42
//-----------------------------------------------------------------------------
43
void
44
GaiaDesign::configure
(
ClockSource
clock_source,
TimestampSource
ts_source,
TimestampTimebase
timebase)
const
45
{
46
TopDesign::configure
(clock_source);
47
48
getNode<IRIGTimestampNode>(
"irig_time_source"
).set_ts_timebase(timebase);
49
50
// TODO temporary, wait for irig lock and date
51
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
52
53
this->
sync_timestamp
(ts_source);
54
}
55
//-----------------------------------------------------------------------------
56
57
//-----------------------------------------------------------------------------
58
void
59
GaiaDesign::get_info
(
timingfirmwareinfo::TimingDeviceInfo
& mon_data)
const
60
{
61
MasterDesign::get_info
(mon_data);
62
//EndpointDesignInterface::get_info(0, mon_data.endpoint_info);
63
}
64
//-----------------------------------------------------------------------------
65
66
}
GaiaDesign.hpp
IRIGTimestampNode.hpp
dunedaq::timing::CDRMuxDesignInterface::CDRMuxDesignInterface
CDRMuxDesignInterface(const uhal::Node &node)
Definition
CDRMuxDesignInterface.hpp:38
dunedaq::timing::EndpointDesignInterface::EndpointDesignInterface
EndpointDesignInterface(const uhal::Node &node)
Definition
EndpointDesignInterface.hpp:41
dunedaq::timing::GaiaDesign
Class for timing fanout designs.
Definition
GaiaDesign.hpp:37
dunedaq::timing::GaiaDesign::get_info
void get_info(timingfirmwareinfo::TimingDeviceInfo &mon_data) const override
Give info to collector.
Definition
GaiaDesign.cpp:59
dunedaq::timing::GaiaDesign::get_status
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition
GaiaDesign.cpp:30
dunedaq::timing::GaiaDesign::configure
void configure(ClockSource clock_source, TimestampSource ts_source, TimestampTimebase timebase) const
Prepare the timing unit for data taking.
Definition
GaiaDesign.cpp:44
dunedaq::timing::GaiaDesign::GaiaDesign
GaiaDesign(const uhal::Node &node)
Definition
GaiaDesign.cpp:13
dunedaq::timing::GaiaDesign::~GaiaDesign
virtual ~GaiaDesign()
Definition
GaiaDesign.cpp:24
dunedaq::timing::IONode::get_pll_status
virtual std::string get_pll_status(bool print_out=false) const
Print status of on-board PLL.
Definition
IONode.cpp:289
dunedaq::timing::MasterDesignInterface
Base class for timing master designs.
Definition
MasterDesignInterface.hpp:35
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_master_node_plain
const MasterNodeInterface * get_master_node_plain() const override
Get master node pointer.
Definition
MasterDesign.hpp:95
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
MasterDesign(const uhal::Node &node)
Definition
MasterDesign.cpp:11
dunedaq::timing::MuxDesignInterface
Base class for timing endpoint design nodes.
Definition
MuxDesignInterface.hpp:34
dunedaq::timing::TimingNode::get_status
virtual std::string get_status(bool print_out=false) const =0
Get the status string of the timing node. Optionally print it.
dunedaq::timing::TopDesignInterface
Base class for timing top design nodes.
Definition
TopDesignInterface.hpp:40
dunedaq::timing::TopDesign::configure
void configure(ClockSource clock_source) const override
Prepare the timing device for data taking.
Definition
TopDesign.hpp:81
dunedaq::timing::TopDesign::get_io_node_plain
const IONode * get_io_node_plain() const override
Get io node pointer.
Definition
TopDesign.hpp:48
TLOG
#define TLOG(...)
Definition
macro.hpp:22
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::timing::TimestampTimebase
TimestampTimebase
Definition
definitions.hpp:137
uhal
Definition
ProtocolAxi4Lite.hpp:63
dunedaq::timing::timingfirmwareinfo::TimingDeviceInfo
Definition
Structs.hpp:105
Generated on
for DUNE-DAQ by
1.17.0