DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
OuroborosDesign.cpp
Go to the documentation of this file.
1
10
11#include <sstream>
12#include <string>
13
14namespace dunedaq::timing {
15
16UHAL_REGISTER_DERIVED_NODE(OuroborosDesign)
17
18//-----------------------------------------------------------------------------
20 : TopDesignInterface(node)
22 , MasterDesign(node)
24{}
25//-----------------------------------------------------------------------------
26
27//-----------------------------------------------------------------------------
30//-----------------------------------------------------------------------------
31
32//-----------------------------------------------------------------------------
33std::string
34OuroborosDesign::get_status(bool print_out) const
35{
36 std::stringstream status;
37 status << get_io_node_plain()->get_pll_status();
38 status << get_master_node_plain()->get_status();
39 status << this->get_endpoint_node_plain(0)->get_status();
40 if (print_out)
41 TLOG() << status.str();
42 return status.str();
43}
44//-----------------------------------------------------------------------------
45
46//-----------------------------------------------------------------------------
47void
49{
50 MasterDesign::configure(clock_source, ts_source);
51 //EndpointDesignInterface::configure(source);
52}
53//-----------------------------------------------------------------------------
54
55//-----------------------------------------------------------------------------
56// void
57// OuroborosDesign::get_info(opmonlib::InfoCollector& ci, int level) const
58// {
59// opmonlib::InfoCollector master_collector;
60// this->get_master_node_plain()->get_info(master_collector, level);
61// ci.add("master", master_collector);
62
63// opmonlib::InfoCollector hardware_collector;
64// this->get_io_node_plain()->get_info(hardware_collector, level);
65// ci.add("io", hardware_collector);
66
67// opmonlib::InfoCollector endpoint_collector;
68// this->get_endpoint_node_plain(0)->get_info(endpoint_collector, level);
69// ci.add("endpoint", endpoint_collector);
70// }
71//-----------------------------------------------------------------------------
72} // namespace dunedaq::timing
Base class for timing endpoint design nodes.
virtual const EndpointNodeInterface * get_endpoint_node_plain(uint32_t ept_id) const
Return the timing endpoint node.
virtual std::string get_pll_status(bool print_out=false) const
Print status of on-board PLL.
Definition IONode.cpp:288
Base class for timing master designs.
Base class for timing master designs.
const MasterNodeInterface * get_master_node_plain() const override
Get master node pointer.
void configure(ClockSource clock_source, TimestampSource ts_source) const override
Prepare the timing master for data taking.
Class for PDI timing master design (known as overlord).
void configure(ClockSource clock_source, TimestampSource ts_source) const override
Prepare the timing master for data taking.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
virtual std::string get_status(bool print_out=false) const =0
Get the status string of the timing node. Optionally print it.
Base class for timing top design nodes.
const IONode * get_io_node_plain() const override
Get io node pointer.
Definition TopDesign.hpp:48
#define TLOG(...)
Definition macro.hpp:22
< Message parameters