DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
FIBV2IONode.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_FIBV2IONODE_HPP_
13#define TIMING_INCLUDE_TIMING_FIBV2IONODE_HPP_
14
15// Timing Headers
16#include "timing/IONode.hpp"
19
20#include "logging/Logging.hpp"
21
22// uHal Headers
23#include "uhal/DerivedNode.hpp"
24
25// C++ Headers
26#include <chrono>
27#include <string>
28
29namespace dunedaq {
30namespace timing {
31
35class FIBV2IONode : public IONode {
36 UHAL_DERIVEDNODE(FIBV2IONode)
37
38public:
39 explicit FIBV2IONode(const uhal::Node& aNode);
40 virtual ~FIBV2IONode();
41
47 std::string get_uid_address_parameter_name() const override;
48
52 std::string get_status(bool print_out=false) const override;
53
57 void reset(const ClockSource& clock_source) const override;
58
62 std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const override; // NOLINT(build/unsigned)
63
67 void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned)
68
72 void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned)
73
77 bool clocks_ok() const override {return true;} //TODO measure clock freq.
78
82 std::string get_pll_status(bool print_out = false) const override;
83
84 void get_info(timinghardwareinfo::TimingPLLMonitorData& mon_data) const override;
85
87 // * @brief Get the PLL chip.
88 // *
89 // * @return { description_of_the_return_value }
90 // */
91 //std::unique_ptr<const CDCLVD110Node> get_pll() const;
92
93 // /**
94 // * @brief Fill hardware monitoring structure.
95 // */
96 // void get_info(timinghardwareinfo::TimingFIBMonitorData& mon_data) const;
97
98 // /**
99 // * @brief Give info to collector.
100 // */
101 // void get_info(opmonlib::InfoCollector& ci, int level) const override;
102
103private:
104
105 void validate_sfp_id(uint32_t sfp_id) const; // NOLINT(build/unsigned)
106
110 void reset(const std::string& /*clock_config_file*/) const override {}
111
117 std::unique_ptr<const SI534xSlave> get_pll() const override {return nullptr;}
118
122 void configure_pll(const std::string& clock_config_file = "") const override;
123
124};
125
126} // namespace timing
127} // namespace dunedaq
128
129#endif // TIMING_INCLUDE_TIMING_FIBV2IONODE_HPP_
Class for the FIB board.
std::string get_pll_status(bool print_out=false) const override
Print status of on-board PLL.
FIBV2IONode(const uhal::Node &aNode)
void validate_sfp_id(uint32_t sfp_id) const
Get the PLL chip.
void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const override
control tx laser of on-board SFP softly (I2C command)
void reset(const std::string &) const override
No config file for FIB v2.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override
Switch on or off the SFP tx laser via the I2C IO expander controlling the sfp tx disable pin....
void configure_pll(const std::string &clock_config_file="") const override
Configure clock chip.
std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const override
Print status of on-board SFP.
void reset(const ClockSource &clock_source) const override
Reset IO, with clock file look up.
std::string get_uid_address_parameter_name() const override
Get the UID address parameter name.
bool clocks_ok() const override
Clocks ready?
std::unique_ptr< const SI534xSlave > get_pll() const override
Get the PLL chip.
void get_info(timinghardwareinfo::TimingPLLMonitorData &mon_data) const override
Base class for timing IO nodes.
Definition IONode.hpp:44
Including Qt Headers.