DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
MasterMuxDesign.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_MASTERMUXDESIGN_HPP_
13#define TIMING_INCLUDE_TIMING_MASTERMUXDESIGN_HPP_
14
15// PDT Headers
18
19// uHal Headers
20#include "uhal/DerivedNode.hpp"
21
22// C++ Headers
23#include <chrono>
24#include <sstream>
25#include <string>
26#include <vector>
27
28namespace dunedaq {
29namespace timing {
30
35 : public SFPMuxDesignInterface, public MasterDesign
36{
37 UHAL_DERIVEDNODE(MasterMuxDesign)
38public:
39 explicit MasterMuxDesign(const uhal::Node& node);
40 virtual ~MasterMuxDesign();
41
45 std::string get_status(bool print_out = false) const override;
46
47
53 uint32_t measure_endpoint_rtt(uint32_t address, // NOLINT(build/unsigned)
54 bool control_sfp = true,
55 int sfp_mux = -1) const override;
59 void apply_endpoint_delay(uint32_t address, // NOLINT(build/unsigned)
60 uint32_t coarse_delay, // NOLINT(build/unsigned)
61 uint32_t fine_delay, // NOLINT(build/unsigned)
62 uint32_t phase_delay, // NOLINT(build/unsigned)
63 bool measure_rtt = false,
64 bool control_sfp = true,
65 int sfp_mux = -1) const override;
66
70 std::vector<uint32_t> scan_sfp_mux() const override; // NOLINT(build/unsigned)
71
77 void resync_active_cdr() const override; // NOLINT(build/unsigned)
78
79 // In leiu of UHAL_DERIVEDNODE
80protected:
81 // virtual uhal::Node* clone() const;
82
83};
84
85} // namespace timing
86} // namespace dunedaq
87
88#endif // TIMING_INCLUDE_TIMING_MASTERMUXDESIGN_HPP_
Base class for timing master designs.
Class for PDI timing master design on mux board.
void resync_active_cdr() const override
Resync active cdr.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
std::vector< uint32_t > scan_sfp_mux() const override
Scan SFP for alive timing transmitters.
MasterMuxDesign(const uhal::Node &node)
uint32_t measure_endpoint_rtt(uint32_t address, bool control_sfp=true, int sfp_mux=-1) const override
Measure the endpoint round trip time.
void apply_endpoint_delay(uint32_t address, uint32_t coarse_delay, uint32_t fine_delay, uint32_t phase_delay, bool measure_rtt=false, bool control_sfp=true, int sfp_mux=-1) const override
Apply delay to endpoint.
Including Qt Headers.