DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
TimingSourceMuxDesignInterface.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_TIMINGSOURCEMUXDESIGNINTERFACE_HPP_
13#define TIMING_INCLUDE_TIMING_TIMINGSOURCEMUXDESIGNINTERFACE_HPP_
14
15// PDT Headers
16#include "TimingIssues.hpp"
18
19// uHal Headers
20#include "uhal/DerivedNode.hpp"
21
22// C++ Headers
23#include <chrono>
24#include <sstream>
25#include <string>
26
27namespace dunedaq {
28namespace timing {
29
34{
35
36public:
37 explicit TimingSourceMuxDesignInterface(const uhal::Node& node)
38 : TopDesignInterface(node) {}
40
46 virtual uint8_t read_active_timing_source_mux() const // NOLINT(build/unsigned)
47 {
48 auto active_sfp_mux_channel = getNode("timing_source_mux.csr.ctrl.src").read();
49 getClient().dispatch();
50 return active_sfp_mux_channel.value();
51 }
52
58 virtual void switch_timing_source_mux(uint8_t mux_channel) const // NOLINT(build/unsigned)
59 {
60 // TODO add mux channel validity check
61 getNode("timing_source_mux.csr.ctrl.src").write(mux_channel);
62 getClient().dispatch();
63 }
64
69 virtual void switch_timing_source(ClockSource clock_source) const = 0;// NOLINT(build/unsigned)
70
71};
72
73} // namespace timing
74} // namespace dunedaq
75
76#endif // TIMING_INCLUDE_TIMING_TIMINGSOURCEMUXDESIGNINTERFACE_HPP_
virtual void switch_timing_source_mux(uint8_t mux_channel) const
Switch timing source mux.
virtual uint8_t read_active_timing_source_mux() const
Read timing source mux.
virtual void switch_timing_source(ClockSource clock_source) const =0
Switch timing source.
Base class for timing top design nodes.
Including Qt Headers.