DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
GaiaDesign.cpp
Go to the documentation of this file.
2
4
5#include <sstream>
6#include <string>
7
8namespace dunedaq::timing {
9
10UHAL_REGISTER_DERIVED_NODE(GaiaDesign)
11
12//-----------------------------------------------------------------------------
13GaiaDesign::GaiaDesign(const uhal::Node& node)
14 : TopDesignInterface(node)
16 , MuxDesignInterface(node)
17 , MasterDesign(node)
20{}
21//-----------------------------------------------------------------------------
22
23//-----------------------------------------------------------------------------
26//-----------------------------------------------------------------------------
27
28//-----------------------------------------------------------------------------
29std::string
30GaiaDesign::get_status(bool print_out) const
31{
32 std::stringstream status;
33 status << get_io_node_plain()->get_pll_status();
35 // TODO fanout specific status
36 if (print_out)
37 TLOG() << status.str();
38 return status.str();
39}
40//-----------------------------------------------------------------------------
41
42//-----------------------------------------------------------------------------
43void
44GaiaDesign::configure(ClockSource clock_source, TimestampSource ts_source, IRIGEpoch epoch) const
45{
46 TopDesign::configure(clock_source);
47
48 getNode<IRIGTimestampNode>("irig_time_source").set_irig_epoch(epoch);
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//-----------------------------------------------------------------------------
58void
60{
61 MasterDesign::get_info(mon_data);
62 //EndpointDesignInterface::get_info(0, mon_data.endpoint_info);
63}
64//-----------------------------------------------------------------------------
65
66}
Base class for timing endpoint design nodes.
Base class for timing endpoint design nodes.
Class for timing fanout designs.
void get_info(timingfirmwareinfo::TimingDeviceInfo &mon_data) const override
Give info to collector.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
void configure(ClockSource clock_source, TimestampSource ts_source, IRIGEpoch epoch) const
Give info to collector.
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.
void get_info(timingfirmwareinfo::TimingDeviceInfo &mon_data) const override
Give info to collector.
const MasterNodeInterface * get_master_node_plain() const override
Get master node pointer.
void sync_timestamp(TimestampSource source) const override
Sync timestamp to current machine value.
Base class for timing endpoint design nodes.
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.
void configure(ClockSource clock_source) const override
Prepare the timing device for data taking.
Definition TopDesign.hpp:81
const IONode * get_io_node_plain() const override
Get io node pointer.
Definition TopDesign.hpp:48
#define TLOG(...)
Definition macro.hpp:22
< Message parameters