DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
timing
include
timing
MIBIONode.hpp
Go to the documentation of this file.
1
11
12
#ifndef TIMING_INCLUDE_TIMING_MIBIONODE_HPP_
13
#define TIMING_INCLUDE_TIMING_MIBIONODE_HPP_
14
15
// PDT Headers
16
#include "
TimingIssues.hpp
"
17
#include "
timing/SFPMuxIONode.hpp
"
18
#include "
timing/I2C9546SwitchNode.hpp
"
19
20
// uHal Headers
21
#include "uhal/DerivedNode.hpp"
22
23
// C++ Headers
24
#include <chrono>
25
#include <string>
26
27
namespace
dunedaq
{
28
namespace
timing
{
29
33
class
MIBIONode
:
public
IONode
34
{
35
UHAL_DERIVEDNODE(
MIBIONode
)
36
37
public
:
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
reset_pll
()
const override
;
77
81
//void switch_downstream_mux_channel(uint32_t mux_channel) const override; // NOLINT(build/unsigned)
82
// NB MIB v1 doesnt have a physical mux, switching was done in io block in old firmware
83
87
//uint32_t read_active_downstream_mux_channel() const override; // NOLINT(build/unsigned)
88
92
//void switch_upstream_mux_channel(uint32_t mux_channel) const; // NOLINT(build/unsigned)
93
97
//uint32_t read_active_upstream_mux_channel() const; // NOLINT(build/unsigned)
98
102
std::string
get_sfp_status
(uint32_t sfp_id,
bool
print_out =
false
)
const override
;
// NOLINT(build/unsigned)
103
107
void
switch_sfp_soft_tx_control_bit
(uint32_t sfp_id,
bool
turn_on)
const override
;
// NOLINT(build/unsigned)
108
112
bool
clocks_ok
()
const override
;
113
117
void
switch_sfp_tx
(uint32_t
/*sfp_id*/
,
bool
/*turn_on*/
)
const
override
// NOLINT(build/unsigned)
118
{
119
TLOG
() <<
"Not implemented in MIB v1 firmware"
;
120
}
121
122
// /**
123
// * @brief Fill hardware monitoring structure.
124
// */
125
// void get_info(timinghardwareinfo::TimingMIBMonitorData& mon_data) const;
126
127
// /**
128
// * @brief Give info to collector.
129
// */
130
// void get_info(opmonlib::InfoCollector& ci, int level) const override;
131
132
private
:
133
void
validate_sfp_id
(uint32_t sfp_id)
const
;
// NOLINT(build/unsigned)
134
void
validate_amc_slot
(uint32_t amc_slot)
const
;
// NOLINT(build/unsigned)
135
};
136
137
}
// namespace timing
138
}
// namespace dunedaq
139
140
#endif
// TIMING_INCLUDE_TIMING_MIBIONODE_HPP_
I2C9546SwitchNode.hpp
SFPMuxIONode.hpp
dunedaq::timing::IONode::reset
virtual void reset(const std::string &clock_config_file) const =0
Reset timing node.
dunedaq::timing::IONode::IONode
IONode(const uhal::Node &node, std::string uid_i2c_bus, std::string pll_i2c_bus, std::string pll_i2c_device, std::vector< std::string > clock_names, std::vector< std::string > sfp_i2c_buses)
Definition
IONode.cpp:25
dunedaq::timing::MIBIONode::MIBIONode
MIBIONode(const uhal::Node &node)
Definition
MIBIONode.cpp:20
dunedaq::timing::MIBIONode::validate_sfp_id
void validate_sfp_id(uint32_t sfp_id) const
Definition
MIBIONode.cpp:279
dunedaq::timing::MIBIONode::get_uid_address_parameter_name
std::string get_uid_address_parameter_name() const override
Get the UID address parameter name.
Definition
MIBIONode.cpp:32
dunedaq::timing::MIBIONode::validate_amc_slot
void validate_amc_slot(uint32_t amc_slot) const
Definition
MIBIONode.cpp:289
dunedaq::timing::MIBIONode::switch_sfp_soft_tx_control_bit
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)
Definition
MIBIONode.cpp:196
dunedaq::timing::MIBIONode::get_sfp_status
std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const override
Switch the SFP mux channel.
Definition
MIBIONode.cpp:162
dunedaq::timing::MIBIONode::~MIBIONode
virtual ~MIBIONode()
Definition
MIBIONode.cpp:27
dunedaq::timing::MIBIONode::reset_pll
void reset_pll() const override
Reset PLL.
Definition
MIBIONode.cpp:101
dunedaq::timing::MIBIONode::reset
void reset(const std::string &clock_config_file) const override
Reset MIB IO.
Definition
MIBIONode.cpp:77
dunedaq::timing::MIBIONode::switch_sfp_tx
void switch_sfp_tx(uint32_t, bool) const override
control tx laser of on-board SFP
Definition
MIBIONode.hpp:117
dunedaq::timing::MIBIONode::get_status
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition
MIBIONode.cpp:40
dunedaq::timing::MIBIONode::clocks_ok
bool clocks_ok() const override
Clocks ready?
Definition
MIBIONode.cpp:108
dunedaq::timing::MIBIONode::configure_pll
void configure_pll(const std::string &clock_config_file="") const override
Configure clock chip.
Definition
MIBIONode.cpp:55
dunedaq::timing::MIBIONode::get_pll_status
std::string get_pll_status(bool print_out=false) const override
Print status of on-board PLL.
Definition
MIBIONode.cpp:66
TimingIssues.hpp
TLOG
#define TLOG(...)
Definition
macro.hpp:22
dunedaq::timing
< Message parameters
Definition
BoreasDesign.hpp:29
dunedaq
Including Qt Headers.
Definition
module.cpp:16
Generated on
for DUNE-DAQ by
1.17.0