DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
MIBIONode.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_MIBIONODE_HPP_
13#define TIMING_INCLUDE_TIMING_MIBIONODE_HPP_
14
15// PDT Headers
16#include "TimingIssues.hpp"
19
20// uHal Headers
21#include "uhal/DerivedNode.hpp"
22
23// C++ Headers
24#include <chrono>
25#include <string>
26
27namespace dunedaq {
28namespace timing {
29
33class MIBIONode : public IONode
34{
35 UHAL_DERIVEDNODE(MIBIONode)
36
37public:
38 explicit MIBIONode(const uhal::Node& node);
39 virtual ~MIBIONode();
40
46 std::string get_uid_address_parameter_name() const override;
47
51 std::string get_status(bool print_out = false) const override;
52
56 void configure_pll(const std::string& clock_config_file = "") const override;
57
61 std::string get_pll_status(bool print_out = false) const override;
62
66 void reset(const std::string& clock_config_file) const override;
67
71 using IONode::reset;
72
76 //void switch_downstream_mux_channel(uint32_t mux_channel) const override; // NOLINT(build/unsigned)
77 // NB MIB v1 doesnt have a physical mux, switching was done in io block in old firmware
78
82 //uint32_t read_active_downstream_mux_channel() const override; // NOLINT(build/unsigned)
83
87 //void switch_upstream_mux_channel(uint32_t mux_channel) const; // NOLINT(build/unsigned)
88
92 //uint32_t read_active_upstream_mux_channel() const; // NOLINT(build/unsigned)
93
97 std::string get_sfp_status(uint32_t sfp_id, bool print_out = false) const override; // NOLINT(build/unsigned)
98
102 void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned)
103
107 bool clocks_ok() const override;
108
112 void switch_sfp_tx(uint32_t /*sfp_id*/, bool /*turn_on*/) const override // NOLINT(build/unsigned)
113 {
114 TLOG() << "Not implemented in MIB v1 firmware";
115 }
116
117 // /**
118 // * @brief Fill hardware monitoring structure.
119 // */
120 // void get_info(timinghardwareinfo::TimingMIBMonitorData& mon_data) const;
121
122 // /**
123 // * @brief Give info to collector.
124 // */
125 // void get_info(opmonlib::InfoCollector& ci, int level) const override;
126
127private:
128 void validate_sfp_id(uint32_t sfp_id) const; // NOLINT(build/unsigned)
129 void validate_amc_slot(uint32_t amc_slot) const; // NOLINT(build/unsigned)
130};
131
132} // namespace timing
133} // namespace dunedaq
134
135#endif // TIMING_INCLUDE_TIMING_MIBIONODE_HPP_
Base class for timing IO nodes.
Definition IONode.hpp:44
virtual void reset(const std::string &clock_config_file) const =0
Reset timing node.
Class for the timing FMC board.
Definition MIBIONode.hpp:34
MIBIONode(const uhal::Node &node)
Definition MIBIONode.cpp:20
void validate_sfp_id(uint32_t sfp_id) const
Fill hardware monitoring structure.
std::string get_uid_address_parameter_name() const override
Get the UID address parameter name.
Definition MIBIONode.cpp:32
void validate_amc_slot(uint32_t amc_slot) const
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)
std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const override
Switch the SFP mux channel.
void reset(const std::string &clock_config_file) const override
Reset MIB IO.
Definition MIBIONode.cpp:77
void switch_sfp_tx(uint32_t, bool) const override
control tx laser of on-board SFP
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition MIBIONode.cpp:40
bool clocks_ok() const override
Clocks ready?
void configure_pll(const std::string &clock_config_file="") const override
Configure clock chip.
Definition MIBIONode.cpp:55
std::string get_pll_status(bool print_out=false) const override
Print status of on-board PLL.
Definition MIBIONode.cpp:66
#define TLOG(...)
Definition macro.hpp:22
Including Qt Headers.