Line data Source code
1 : /**
2 : * @file EchoMonitorNode.cpp
3 : *
4 : * This is part of the DUNE DAQ Software Suite, copyright 2020.
5 : * Licensing/copyright details are in the COPYING file that you should have
6 : * received with this code.
7 : */
8 :
9 : #include "timing/UpstreamCDRNode.hpp"
10 :
11 : #include "timing/TimingIssues.hpp"
12 : #include "timing/toolbox.hpp"
13 : #include "logging/Logging.hpp"
14 :
15 : #include <string>
16 : #include <chrono>
17 :
18 : namespace dunedaq {
19 : namespace timing {
20 :
21 0 : UHAL_REGISTER_DERIVED_NODE(UpstreamCDRNode)
22 :
23 : //-----------------------------------------------------------------------------
24 0 : UpstreamCDRNode::UpstreamCDRNode(const uhal::Node& node)
25 0 : : TimingNode(node)
26 0 : {}
27 : //-----------------------------------------------------------------------------
28 :
29 : //-----------------------------------------------------------------------------
30 0 : UpstreamCDRNode::~UpstreamCDRNode() {}
31 : //-----------------------------------------------------------------------------
32 :
33 : //-----------------------------------------------------------------------------
34 : std::string
35 0 : UpstreamCDRNode::get_status(bool print_out) const
36 : {
37 0 : std::stringstream status;
38 0 : auto subnodes = read_sub_nodes(getNode("stat"));
39 0 : status << format_reg_table(subnodes, "Upstream CDR state");
40 0 : if (print_out)
41 0 : TLOG() << status.str();
42 0 : return status.str();
43 0 : }
44 : //-----------------------------------------------------------------------------
45 :
46 : //-----------------------------------------------------------------------------
47 : void
48 0 : UpstreamCDRNode::resync() const
49 : {
50 0 : getNode("ctrl.resync").write(0x1);
51 0 : getNode("ctrl.resync").write(0x0);
52 0 : getClient().dispatch();
53 0 : }
54 : //-----------------------------------------------------------------------------
55 :
56 : } // namespace timing
57 : } // namespace dunedaq
|