DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
FIBIONode.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_FIBIONODE_HPP_
13#define TIMING_INCLUDE_TIMING_FIBIONODE_HPP_
14
15// Timing Headers
18
19// uHal Headers
20#include "uhal/DerivedNode.hpp"
21
22// C++ Headers
23#include <chrono>
24#include <string>
25
26namespace dunedaq {
27namespace timing {
28
32class FIBIONode : public SFPMuxIONode {
33 UHAL_DERIVEDNODE(FIBIONode)
34
35public:
36 explicit FIBIONode(const uhal::Node& aNode);
37 virtual ~FIBIONode();
38
44 std::string get_uid_address_parameter_name() const override;
45
49 std::string get_status(bool print_out=false) const override;
50
54 void reset(const std::string& clock_config_file) const override;
55
59 using IONode::reset;
60
64 void switch_sfp_mux_channel(uint32_t mux_channel) const override; // NOLINT(build/unsigned)
65
69 uint32_t read_active_sfp_mux_channel() const override; // NOLINT(build/unsigned)
70
74 std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const override; // NOLINT(build/unsigned)
75
79 void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned)
80
84 void reset_pll() const;
85
89 uint8_t read_sfp_los_flag(uint32_t sfp_id) const; // NOLINT(build/unsigned)
90
94 uint8_t read_sfp_fault_flag(uint32_t sfp_id) const; // NOLINT(build/unsigned)
95
99 uint8_t read_sfp_los_flags() const; // NOLINT(build/unsigned)
100
104 uint8_t read_sfp_fault_flags() const; // NOLINT(build/unsigned)
105
109 //void readSFPStatusFlags(uint32_t aSFPId) const;
110
114 void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned)
115
119 bool clocks_ok() const override;
120
121 // /**
122 // * @brief Fill hardware monitoring structure.
123 // */
124 // void get_info(timinghardwareinfo::TimingFIBMonitorData& mon_data) const;
125
126 // /**
127 // * @brief Give info to collector.
128 // */
129 // void get_info(opmonlib::InfoCollector& ci, int level) const override;
130
131private:
132
133 void validate_sfp_id(uint32_t sfp_id) const; // NOLINT(build/unsigned)
134
135};
136
137} // namespace timing
138} // namespace dunedaq
139
140#endif // TIMING_INCLUDE_TIMING_FIBIONODE_HPP_
Class for the FIB board.
Definition FIBIONode.hpp:32
uint8_t read_sfp_fault_flag(uint32_t sfp_id) const
reset on-board SFP flags using I2C IO expanders
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 validate_sfp_id(uint32_t sfp_id) const
Fill hardware monitoring structure.
uint8_t read_sfp_los_flags() const
reset on-board SFP flags using I2C IO expanders
uint8_t read_sfp_fault_flags() const
reset on-board SFP flags using I2C IO expanders
void reset(const std::string &clock_config_file) const override
Reset FIB node.
Definition FIBIONode.cpp:67
FIBIONode(const uhal::Node &aNode)
Definition FIBIONode.cpp:22
std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const override
Print status of on-board SFP.
void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override
reset on-board SFP flags using I2C IO expanders
uint32_t read_active_sfp_mux_channel() const override
Read the active SFP mux channel.
void reset_pll() const
reset on-board PLL using I2C IO expanders
void switch_sfp_mux_channel(uint32_t mux_channel) const override
Switch the SFP mux channel.
uint8_t read_sfp_los_flag(uint32_t sfp_id) const
reset on-board SFP flags using I2C IO expanders
std::string get_uid_address_parameter_name() const override
Get the UID address parameter name.
Definition FIBIONode.cpp:35
bool clocks_ok() const override
Clocks ready?
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition FIBIONode.cpp:43
virtual void reset(const std::string &clock_config_file) const =0
Reset timing node.
Base class for boards which have a physical SFP mux.
Including Qt Headers.