DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
PC059IONode.hpp
Go to the documentation of this file.
1
12#ifndef TIMING_INCLUDE_TIMING_PC059IONODE_HPP_
13#define TIMING_INCLUDE_TIMING_PC059IONODE_HPP_
14
15// PDT Headers
16#include "TimingIssues.hpp"
18
19// uHal Headers
20#include "uhal/DerivedNode.hpp"
21#include <nlohmann/json.hpp>
22
23// C++ Headers
24#include <chrono>
25#include <string>
26
27namespace dunedaq {
28namespace timing {
29
34{
35 UHAL_DERIVEDNODE(PC059IONode)
36
37public:
38 explicit PC059IONode(const uhal::Node& node);
39 virtual ~PC059IONode();
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 reset(const std::string& clock_config_file) const override;
57
61 using IONode::reset;
62
66 void switch_sfp_mux_channel(uint32_t mux_channel) const override; // NOLINT(build/unsigned)
67
71 uint32_t read_active_sfp_mux_channel() const override; // NOLINT(build/unsigned)
72
76 void switch_sfp_i2c_mux_channel(uint32_t sfp_id) const; // NOLINT(build/unsigned)
77
81 std::string get_sfp_status(uint32_t sfp_id, bool print_out = false) const override; // NOLINT(build/unsigned)
82
86 void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned)
87
91 bool clocks_ok() const override;
92
96 void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override; // NOLINT(build/unsigned)
97
98 // /**
99 // * @brief Fill hardware monitoring structure.
100 // */
101 // void get_info(timinghardwareinfo::TimingPC059MonitorData& mon_data) const;
102
103 // /**
104 // * @brief Give info to collector.
105 // */
106 // void get_info(opmonlib::InfoCollector& ci, int level) const override;
107private:
108 void validate_sfp_id(uint32_t sfp_id) const; // NOLINT(build/unsigned)
109};
110
111} // namespace timing
112} // namespace dunedaq
113
114#endif // TIMING_INCLUDE_TIMING_PC059IONODE_HPP_
virtual void reset(const std::string &clock_config_file) const =0
Reset timing node.
Class for the PC059 board.
uint32_t read_active_sfp_mux_channel() const override
Read the active SFP mux channel.
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)
bool clocks_ok() const override
Clocks ready?
void switch_sfp_mux_channel(uint32_t mux_channel) const override
Switch the SFP mux channel.
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.
std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const override
Print status of on-board SFP.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
void switch_sfp_i2c_mux_channel(uint32_t sfp_id) const
Switch the SFP I2C mux channel.
void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override
control tx laser of on-board SFP softly (I2C command)
void reset(const std::string &clock_config_file) const override
Reset pc059 node.
PC059IONode(const uhal::Node &node)
Base class for boards which have a physical SFP mux.
Including Qt Headers.