Line data Source code
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 0 : UHAL_REGISTER_DERIVED_NODE(GaiaDesign)
11 :
12 : //-----------------------------------------------------------------------------
13 0 : GaiaDesign::GaiaDesign(const uhal::Node& node)
14 : : TopDesignInterface(node)
15 : , MasterDesignInterface(node)
16 : , MuxDesignInterface(node)
17 : , MasterDesign(node)
18 : , EndpointDesignInterface(node)
19 0 : , CDRMuxDesignInterface(node)
20 0 : {}
21 : //-----------------------------------------------------------------------------
22 :
23 : //-----------------------------------------------------------------------------
24 0 : GaiaDesign::~GaiaDesign()
25 0 : {}
26 : //-----------------------------------------------------------------------------
27 :
28 : //-----------------------------------------------------------------------------
29 : std::string
30 0 : GaiaDesign::get_status(bool print_out) const
31 : {
32 0 : std::stringstream status;
33 0 : status << get_io_node_plain()->get_pll_status();
34 0 : status << MasterDesign::get_master_node_plain()->get_status();
35 : // TODO fanout specific status
36 0 : if (print_out)
37 0 : TLOG() << status.str();
38 0 : return status.str();
39 0 : }
40 : //-----------------------------------------------------------------------------
41 :
42 : //-----------------------------------------------------------------------------
43 : void
44 0 : GaiaDesign::configure(ClockSource clock_source, TimestampSource ts_source, TimestampTimebase timebase) const
45 : {
46 0 : TopDesign::configure(clock_source);
47 :
48 0 : getNode<IRIGTimestampNode>("irig_time_source").set_ts_timebase(timebase);
49 :
50 : // TODO temporary, wait for irig lock and date
51 0 : std::this_thread::sleep_for(std::chrono::milliseconds(1000));
52 :
53 0 : this->sync_timestamp(ts_source);
54 0 : }
55 : //-----------------------------------------------------------------------------
56 :
57 : //-----------------------------------------------------------------------------
58 : void
59 0 : GaiaDesign::get_info(timingfirmwareinfo::TimingDeviceInfo& mon_data) const
60 : {
61 0 : MasterDesign::get_info(mon_data);
62 : //EndpointDesignInterface::get_info(0, mon_data.endpoint_info);
63 0 : }
64 : //-----------------------------------------------------------------------------
65 :
66 : }
|