DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
io.cpp
Go to the documentation of this file.
1
10#include "timing/IONode.hpp"
12#include "timing/FIBIONode.hpp"
14#include "timing/SIMIONode.hpp"
15#include "timing/TLUIONode.hpp"
16#include "timing/MIBIONode.hpp"
19#include "timing/GIBIONode.hpp"
22
23#include <pybind11/pybind11.h>
24#include <pybind11/stl.h>
25
26#include <string>
27
28namespace py = pybind11;
29
30namespace dunedaq {
31namespace timing {
32namespace python {
33
34void
35register_io(py::module& m)
36{
37
38 py::class_<timing::IONode, uhal::Node>(m, "IONode");
39
40 py::class_<timing::FMCIONode, timing::IONode, uhal::Node>(m, "FMCIONode")
41 .def(py::init<const uhal::Node&>())
42 .def<void (timing::FMCIONode::*)(const std::string&) const>(
43 "reset", &timing::FMCIONode::reset, py::arg("clock_config_file"))
44 .def<void (timing::FMCIONode::*)(const timing::ClockSource&) const>(
45 "reset", &timing::FMCIONode::reset, py::arg("clock_source"))
46 .def("soft_reset", &timing::FMCIONode::soft_reset)
47 .def("read_firmware_frequency", &timing::FMCIONode::read_firmware_frequency)
48 .def("get_clock_frequencies_table", &timing::FMCIONode::get_clock_frequencies_table, py::arg("print_out") = false)
49 .def("get_status", &timing::FMCIONode::get_status, py::arg("print_out") = false)
50 .def("get_pll_status", &timing::FMCIONode::get_pll_status, py::arg("print_out") = false)
51 .def("get_hardware_info", &timing::FMCIONode::get_hardware_info, py::arg("print_out") = false)
52 .def("get_sfp_status", &timing::FMCIONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
53 .def("switch_sfp_soft_tx_control_bit", &timing::FMCIONode::switch_sfp_soft_tx_control_bit)
54 .def("switch_sfp_tx", &timing::FMCIONode::switch_sfp_tx);
55
56 py::class_<timing::PC059IONode, timing::IONode, uhal::Node>(m, "PC059IONode")
57 .def(py::init<const uhal::Node&>())
58 .def<void (timing::PC059IONode::*)(const std::string&) const>(
59 "reset", &timing::PC059IONode::reset, py::arg("clock_config_file"))
60 .def<void (timing::PC059IONode::*)(const timing::ClockSource&) const>(
61 "reset", &timing::PC059IONode::reset, py::arg("clock_source"))
62 .def("soft_reset", &timing::PC059IONode::soft_reset)
63 .def("read_firmware_frequency", &timing::PC059IONode::read_firmware_frequency)
64 .def("get_clock_frequencies_table", &timing::PC059IONode::get_clock_frequencies_table, py::arg("print_out") = false)
65 .def("get_status", &timing::PC059IONode::get_status, py::arg("print_out") = false)
66 .def("get_pll_status", &timing::PC059IONode::get_pll_status, py::arg("print_out") = false)
67 .def("get_hardware_info", &timing::PC059IONode::get_hardware_info, py::arg("print_out") = false)
68 .def("get_sfp_status", &timing::PC059IONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
69 .def("switch_sfp_soft_tx_control_bit", &timing::PC059IONode::switch_sfp_soft_tx_control_bit)
70 .def("switch_sfp_mux_channel", &timing::PC059IONode::switch_sfp_mux_channel, py::arg("mux_channel"))
71 .def("read_active_sfp_mux_channel", &timing::PC059IONode::read_active_sfp_mux_channel)
72 .def("switch_sfp_tx", &timing::PC059IONode::switch_sfp_tx);
73
74 py::class_<timing::FIBIONode, timing::IONode, uhal::Node>(m, "FIBIONode")
75 .def(py::init<const uhal::Node&>())
76 .def<void (timing::FIBIONode::*)(const std::string&) const>(
77 "reset", &timing::FIBIONode::reset, py::arg("clock_config_file"))
78 .def<void (timing::FIBIONode::*)(const timing::ClockSource&) const>(
79 "reset", &timing::FIBIONode::reset, py::arg("clock_source"))
80 .def("soft_reset", &timing::FIBIONode::soft_reset)
81 .def("read_firmware_frequency", &timing::FIBIONode::read_firmware_frequency)
82 .def("get_clock_frequencies_table", &timing::FIBIONode::get_clock_frequencies_table, py::arg("print_out") = false)
83 .def("get_status", &timing::FIBIONode::get_status, py::arg("print_out") = false)
84 .def("get_pll_status", &timing::FIBIONode::get_pll_status, py::arg("print_out") = false)
85 .def("get_hardware_info", &timing::FIBIONode::get_hardware_info, py::arg("print_out") = false)
86 .def("get_sfp_status", &timing::FIBIONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
87 .def("switch_sfp_soft_tx_control_bit", &timing::FIBIONode::switch_sfp_soft_tx_control_bit)
88 .def("switch_sfp_mux_channel", &timing::FIBIONode::switch_sfp_mux_channel, py::arg("mux_channel"))
89 .def("read_active_sfp_mux_channel", &timing::FIBIONode::read_active_sfp_mux_channel)
90 .def("switch_sfp_tx", &timing::FIBIONode::switch_sfp_tx);
91
92 py::class_<timing::FIBV2IONode, timing::IONode, uhal::Node>(m, "FIBV2IONode")
93 .def(py::init<const uhal::Node&>())
94 .def<void (timing::FIBV2IONode::*)(const timing::ClockSource&) const>(
95 "reset", &timing::FIBV2IONode::reset, py::arg("clock_source"))
96 .def("soft_reset", &timing::FIBV2IONode::soft_reset)
97 .def("read_firmware_frequency", &timing::FIBV2IONode::read_firmware_frequency)
98 .def("get_clock_frequencies_table", &timing::FIBV2IONode::get_clock_frequencies_table, py::arg("print_out") = false)
99 .def("get_status", &timing::FIBV2IONode::get_status, py::arg("print_out") = false)
100 .def("get_pll_status", &timing::FIBV2IONode::get_pll_status, py::arg("print_out") = false)
101 .def("get_hardware_info", &timing::FIBV2IONode::get_hardware_info, py::arg("print_out") = false)
102 .def("get_sfp_status", &timing::FIBV2IONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
103 .def("switch_sfp_soft_tx_control_bit", &timing::FIBV2IONode::switch_sfp_soft_tx_control_bit)
104 .def("switch_sfp_tx", &timing::FIBV2IONode::switch_sfp_tx)
105 .def("read_board_temperature", &timing::FIBV2IONode::read_board_temperature)
106 ;
107
108 py::class_<timing::TLUIONode, timing::IONode, uhal::Node>(m, "TLUIONode")
109 .def(py::init<const uhal::Node&>())
110 .def<void (timing::TLUIONode::*)(const std::string&) const>(
111 "reset", &timing::TLUIONode::reset, py::arg("clock_config_file"))
112 .def<void (timing::TLUIONode::*)(const timing::ClockSource&) const>(
113 "reset", &timing::TLUIONode::reset, py::arg("clock_source"))
114 .def("soft_reset", &timing::TLUIONode::soft_reset)
115 .def("read_firmware_frequency", &timing::TLUIONode::read_firmware_frequency)
116 .def("get_clock_frequencies_table", &timing::TLUIONode::get_clock_frequencies_table, py::arg("print_out") = false)
117 .def("get_status", &timing::TLUIONode::get_status, py::arg("print_out") = false)
118 .def("get_pll_status", &timing::TLUIONode::get_pll_status, py::arg("print_out") = false)
119 .def("get_hardware_info", &timing::TLUIONode::get_hardware_info, py::arg("print_out") = false)
120 .def("get_sfp_status", &timing::TLUIONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
121 .def("switch_sfp_soft_tx_control_bit", &timing::TLUIONode::switch_sfp_soft_tx_control_bit)
122 .def("configure_dac",
124 py::arg("dac_id"),
125 py::arg("dac_value"),
126 py::arg("internal_ref") = false)
127 .def("switch_sfp_tx", &timing::TLUIONode::switch_sfp_tx);
128
129 py::class_<timing::SIMIONode, timing::IONode, uhal::Node>(m, "SIMIONode")
130 .def(py::init<const uhal::Node&>())
131 .def<void (timing::SIMIONode::*)(const std::string&) const>(
132 "reset", &timing::SIMIONode::reset, py::arg("clock_config_file"))
133 .def<void (timing::SIMIONode::*)(const timing::ClockSource&) const>(
134 "reset", &timing::SIMIONode::reset, py::arg("clock_source"))
135 .def("soft_reset", &timing::SIMIONode::soft_reset)
136 .def("read_firmware_frequency", &timing::SIMIONode::read_firmware_frequency)
137 .def("get_clock_frequencies_table", &timing::SIMIONode::get_clock_frequencies_table, py::arg("print_out") = false)
138 .def("get_status", &timing::SIMIONode::get_status, py::arg("print_out") = false)
139 .def("get_pll_status", &timing::SIMIONode::get_pll_status, py::arg("print_out") = false)
140 .def("get_hardware_info", &timing::SIMIONode::get_hardware_info, py::arg("print_out") = false)
141 .def("get_sfp_status", &timing::SIMIONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
142 .def("switch_sfp_soft_tx_control_bit", &timing::SIMIONode::switch_sfp_soft_tx_control_bit)
143 .def("switch_sfp_tx", &timing::SIMIONode::switch_sfp_tx);
144
145 py::class_<timing::MIBIONode, timing::IONode, uhal::Node>(m, "MIBIONode")
146 .def(py::init<const uhal::Node&>())
147 .def<void (timing::MIBIONode::*)(const std::string&) const>(
148 "reset", &timing::MIBIONode::reset, py::arg("clock_config_file"))
149 .def<void (timing::MIBIONode::*)(const timing::ClockSource&) const>(
150 "reset", &timing::MIBIONode::reset, py::arg("clock_source"))
151 .def("soft_reset", &timing::MIBIONode::soft_reset)
152 .def("read_firmware_frequency", &timing::MIBIONode::read_firmware_frequency)
153 .def("get_clock_frequencies_table", &timing::MIBIONode::get_clock_frequencies_table, py::arg("print_out") = false)
154 .def("get_status", &timing::MIBIONode::get_status, py::arg("print_out") = false)
155 .def("get_pll_status", &timing::MIBIONode::get_pll_status, py::arg("print_out") = false)
156 .def("get_pll", &timing::MIBIONode::get_pll)
157 .def("get_hardware_info", &timing::MIBIONode::get_hardware_info, py::arg("print_out") = false)
158 .def("get_sfp_status", &timing::MIBIONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
159 .def("switch_sfp_soft_tx_control_bit", &timing::MIBIONode::switch_sfp_soft_tx_control_bit)
160 .def("switch_sfp_tx", &timing::MIBIONode::switch_sfp_tx)
161 ;
162
163 py::class_<timing::SwitchyardNode, uhal::Node>(m, "SwitchyardNode")
164 .def("get_status", &timing::SwitchyardNode::get_status, py::arg("print_out") = false)
165 .def("configure_master_source", &timing::SwitchyardNode::configure_master_source, py::arg("master_source"), py::arg("dispatch") = true)
166 .def("configure_endpoint_source", &timing::SwitchyardNode::configure_endpoint_source, py::arg("endpoint_source"), py::arg("dispatch") = true);
167
168 py::class_<timing::MIBV2IONode, timing::IONode, uhal::Node>(m, "MIBV2IONode")
169 .def(py::init<const uhal::Node&>())
170 .def<void (timing::MIBV2IONode::*)(const std::string&) const>(
171 "reset", &timing::MIBV2IONode::reset, py::arg("clock_config_file"))
172 .def<void (timing::MIBV2IONode::*)(const timing::ClockSource&) const>(
173 "reset", &timing::MIBV2IONode::reset, py::arg("clock_source"))
174 .def("soft_reset", &timing::MIBV2IONode::soft_reset)
175 .def("read_firmware_frequency", &timing::MIBV2IONode::read_firmware_frequency)
176 .def("get_clock_frequencies_table", &timing::MIBV2IONode::get_clock_frequencies_table, py::arg("print_out") = false)
177 .def("get_status", &timing::MIBV2IONode::get_status, py::arg("print_out") = false)
178 .def("get_pll_status", &timing::MIBV2IONode::get_pll_status, py::arg("print_out") = false)
179 .def("get_pll", &timing::MIBV2IONode::get_pll)
180 .def("get_hardware_info", &timing::MIBV2IONode::get_hardware_info, py::arg("print_out") = false)
181 .def("get_sfp_status", &timing::MIBV2IONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
182 .def("switch_sfp_soft_tx_control_bit", &timing::MIBV2IONode::switch_sfp_soft_tx_control_bit)
183 .def("switch_sfp_tx", &timing::MIBV2IONode::switch_sfp_tx)
184 ;
185
186 // TODO fix missing binding and add GIBv2/3 inheritance, dlindebaum, 2025.10.06
187 py::class_<timing::GIBIONode, timing::IONode, uhal::Node>(m, "GIBIONode")
188 .def(py::init<const uhal::Node&>())
189 .def<void (timing::GIBIONode::*)(const std::string&) const>(
190 "reset", &timing::GIBIONode::reset, py::arg("clock_config_file"))
191 .def<void (timing::GIBIONode::*)(const timing::ClockSource&) const>(
192 "reset", &timing::GIBIONode::reset, py::arg("clock_source"))
193 .def("configure_pll", &timing::GIBIONode::configure_pll, py::arg("clock_config_file"))
194 .def("soft_reset", &timing::GIBIONode::soft_reset)
195 .def("read_firmware_frequency", &timing::GIBIONode::read_firmware_frequency)
196 .def("get_clock_frequencies_table", &timing::GIBIONode::get_clock_frequencies_table, py::arg("print_out") = false)
197 .def("get_full_clock_config_file_path", &timing::GIBIONode::get_full_clock_config_file_path, py::arg("clock_source"))
198 .def("get_status", &timing::GIBIONode::get_status, py::arg("print_out") = false)
199 .def("get_pll_status", &timing::GIBIONode::get_pll_status, py::arg("print_out") = false)
200 .def("get_pll", &timing::GIBIONode::get_pll)
201 .def("get_hardware_info", &timing::GIBIONode::get_hardware_info, py::arg("print_out") = false)
202 .def("set_up_io_infrastructure", &timing::GIBIONode::set_up_io_infrastructure)
203 .def("configure_expander", &timing::GIBIONode::configure_expander)
204 .def("reset_pll", &timing::GIBIONode::reset_pll)
205 .def("get_sfp_status", &timing::GIBIONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
206 .def("read_io_expanders", &timing::GIBIONode::read_io_expanders)
207 .def("read_sfps_los", &timing::GIBIONode::read_sfps_los)
208 .def("read_sfps_fault", &timing::GIBIONode::read_sfps_fault)
209 .def("clocks_ok", &timing::GIBIONode::clocks_ok)
210 .def("switch_sfp_soft_tx_control_bit", &timing::GIBIONode::switch_sfp_soft_tx_control_bit)
211 .def("set_i2c_mux_channels", &timing::GIBIONode::set_i2c_mux_channels)
212 .def("switch_sfp_tx", &timing::GIBIONode::switch_sfp_tx)
213 ;
214
215 py::class_<timing::GIBV2IONode, timing::IONode, uhal::Node>(m, "GIBV2IONode")
216 .def(py::init<const uhal::Node&>())
217 .def<void (timing::GIBV2IONode::*)(const std::string&) const>(
218 "reset", &timing::GIBV2IONode::reset, py::arg("clock_config_file"))
219 .def<void (timing::GIBV2IONode::*)(const timing::ClockSource&) const>(
220 "reset", &timing::GIBV2IONode::reset, py::arg("clock_source"))
221 .def("configure_pll", &timing::GIBV2IONode::configure_pll, py::arg("clock_config_file"))
222 .def("soft_reset", &timing::GIBV2IONode::soft_reset)
223 .def("read_firmware_frequency", &timing::GIBV2IONode::read_firmware_frequency)
224 .def("get_full_clock_config_file_path", &timing::GIBV2IONode::get_full_clock_config_file_path, py::arg("clock_source"))
225 .def("get_clock_frequencies_table", &timing::GIBV2IONode::get_clock_frequencies_table, py::arg("print_out") = false)
226 .def("get_status", &timing::GIBV2IONode::get_status, py::arg("print_out") = false)
227 .def("get_pll_status", &timing::GIBV2IONode::get_pll_status, py::arg("print_out") = false)
228 .def("get_pll", &timing::GIBV2IONode::get_pll)
229 .def("get_hardware_info", &timing::GIBV2IONode::get_hardware_info, py::arg("print_out") = false)
230 .def("set_up_io_infrastructure", &timing::GIBV2IONode::set_up_io_infrastructure)
231 .def("configure_expander", &timing::GIBV2IONode::configure_expander)
232 .def("reset_pll", &timing::GIBV2IONode::reset_pll)
233 .def("get_sfp_status", &timing::GIBV2IONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
234 .def("read_io_expanders", &timing::GIBV2IONode::read_io_expanders)
235 .def("read_sfps_los", &timing::GIBV2IONode::read_sfps_los)
236 .def("read_sfps_fault", &timing::GIBV2IONode::read_sfps_fault)
237 .def("clocks_ok", &timing::GIBV2IONode::clocks_ok)
238 .def("switch_sfp_soft_tx_control_bit", &timing::GIBV2IONode::switch_sfp_soft_tx_control_bit)
239 .def("set_i2c_mux_channels", &timing::GIBV2IONode::set_i2c_mux_channels)
240 .def("switch_sfp_tx", &timing::GIBV2IONode::switch_sfp_tx)
241 ;
242
243 py::class_<timing::GIBV3IONode, timing::IONode, uhal::Node>(m, "GIBV3IONode")
244 .def(py::init<const uhal::Node&>())
245 .def<void (timing::GIBV3IONode::*)(const std::string&) const>(
246 "reset", &timing::GIBV3IONode::reset, py::arg("clock_config_file"))
247 .def<void (timing::GIBV3IONode::*)(const timing::ClockSource&) const>(
248 "reset", &timing::GIBV3IONode::reset, py::arg("clock_source"))
249 .def("configure_pll", &timing::GIBV3IONode::configure_pll, py::arg("clock_config_file"))
250 .def("soft_reset", &timing::GIBV3IONode::soft_reset)
251 .def("read_firmware_frequency", &timing::GIBV3IONode::read_firmware_frequency)
252 .def("get_full_clock_config_file_path", &timing::GIBV3IONode::get_full_clock_config_file_path, py::arg("clock_source"))
253 .def("get_clock_frequencies_table", &timing::GIBV3IONode::get_clock_frequencies_table, py::arg("print_out") = false)
254 .def("get_status", &timing::GIBV3IONode::get_status, py::arg("print_out") = false)
255 .def("get_pll_status", &timing::GIBV3IONode::get_pll_status, py::arg("print_out") = false)
256 .def("get_pll", &timing::GIBV3IONode::get_pll)
257 .def("get_hardware_info", &timing::GIBV3IONode::get_hardware_info, py::arg("print_out") = false)
258 .def("set_up_io_infrastructure", &timing::GIBV3IONode::set_up_io_infrastructure)
259 .def("configure_expander", &timing::GIBV3IONode::configure_expander)
260 .def("reset_pll", &timing::GIBV3IONode::reset_pll)
261 .def("get_sfp_status", &timing::GIBV3IONode::get_sfp_status, py::arg("sfp_id"), py::arg("print_out") = false)
262 .def("read_io_expanders", &timing::GIBV3IONode::read_io_expanders)
263 .def("read_sfps_los", &timing::GIBV3IONode::read_sfps_los)
264 .def("read_sfps_fault", &timing::GIBV3IONode::read_sfps_fault)
265 .def("clocks_ok", &timing::GIBV3IONode::clocks_ok)
266 .def("switch_sfp_soft_tx_control_bit", &timing::GIBV3IONode::switch_sfp_soft_tx_control_bit)
267 .def("set_i2c_mux_channels", &timing::GIBV3IONode::set_i2c_mux_channels)
268 .def("switch_sfp_tx", &timing::GIBV3IONode::switch_sfp_tx)
269 ;
270
271} // NOLINT
272
273} // namespace python
274} // namespace timing
275} // namespace dunedaq
Class for the FIB board.
Definition FIBIONode.hpp:32
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 &clock_config_file) const override
Reset FIB node.
Definition FIBIONode.cpp:67
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 switch_sfp_mux_channel(uint32_t mux_channel) const override
Switch the SFP mux channel.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition FIBIONode.cpp:43
Class for the FIB board.
std::string get_pll_status(bool print_out=false) const override
Print status of on-board PLL.
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_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....
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.
float read_board_temperature() const
Read data from on-board temperature monitor.
Class for the timing FMC board.
Definition FMCIONode.hpp:33
std::string get_clock_frequencies_table(bool print_out=false) const override
Print frequencies of on-board clocks.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
Definition FMCIONode.cpp:45
void reset(const std::string &clock_config_file) const override
Reset FMC IO.
Definition FMCIONode.cpp:60
void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override
control tx laser of on-board SFP
Class for the timing FMC board.
Definition GIBIONode.hpp:33
void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override
control tx laser of on-board SFP softly (I2C command)
virtual uint8_t read_sfps_fault() const
Retrive SFP fault status for all SFPs.
void set_i2c_mux_channels(uint8_t mux_channel_bitmask) const
Fill hardware monitoring structure.
void reset(const std::string &clock_config_file) const override
Reset GIB IO.
void set_up_io_infrastructure() const override
Set up i2c buses, enable ICs.
std::unique_ptr< const SI534xSlave > get_pll() const override
GET PLL I2C interface.
Definition GIBIONode.cpp:92
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)
virtual uint32_t read_io_expanders() const
Read the contents of the IO expanders.
std::string get_hardware_info(bool print_out) const override
Print hardware information.
void reset_pll() const override
Reset PLL.
void configure_expander() const
Configure the GIB expander.
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.
Definition GIBIONode.cpp:53
virtual uint8_t read_sfps_los() const
Retrive SFP LOS status for all SFPs.
bool clocks_ok() const override
Clocks ready?
Class for the timing FMC board.
uint8_t read_sfps_fault() const override
Retrive SFP fault status for all SFPs.
uint8_t read_sfps_los() const override
Retrive SFP LOS status for all SFPs.
bool clocks_ok() const override
Clocks ready?
void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override
control tx laser of on-board SFP softly (I2C command)
Class for the timing FMC board.
uint32_t read_io_expanders() const override
Read the contents of the IO expanders.
uint8_t read_sfps_los() const override
Retrive SFP LOS status for all SFPs.
uint8_t read_sfps_fault() const override
Retrive SFP fault status for all SFPs.
std::string get_status(bool print_out=false) const override
Get status string, optionally print.
virtual void switch_sfp_soft_tx_control_bit(uint32_t sfp_id, bool turn_on) const
control tx laser of on-board SFP softly (I2C command)
Definition IONode.cpp:337
virtual std::string get_sfp_status(uint32_t sfp_id, bool print_out=false) const
Print status of on-board SFP.
Definition IONode.cpp:318
virtual std::string get_hardware_info(bool print_out=false) const
Print hardware information.
Definition IONode.cpp:118
virtual void soft_reset() const
Reset timing node.
Definition IONode.cpp:296
virtual std::string get_full_clock_config_file_path(const ClockSource &clock_source) const
Get the full config path.
Definition IONode.cpp:167
virtual std::unique_ptr< const SI534xSlave > get_pll() const
Get the PLL chip.
Definition IONode.cpp:230
virtual uint32_t read_firmware_frequency() const
Read the word identifying the frequency [units of Hz] of the firmware in the FPGA.
Definition IONode.cpp:78
virtual void configure_pll(const std::string &clock_config_file="") const
Configure clock chip.
Definition IONode.cpp:238
virtual std::string get_clock_frequencies_table(bool print_out=false) const
Print frequencies of on-board clocks.
Definition IONode.cpp:263
virtual std::string get_pll_status(bool print_out=false) const
Print status of on-board PLL.
Definition IONode.cpp:279
Class for the timing FMC board.
Definition MIBIONode.hpp:34
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
std::string get_pll_status(bool print_out=false) const override
Print status of on-board PLL.
Definition MIBIONode.cpp:66
Class for the timing FMC board.
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 &clock_config_file) const override
Reset MIB v2 IO.
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_tx(uint32_t sfp_id, bool turn_on) const override
control tx laser of on-board SFP
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)
void switch_sfp_mux_channel(uint32_t mux_channel) const override
Switch the SFP mux channel.
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_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.
Class for the timing simulation IO.
Definition SIMIONode.hpp:34
std::string get_clock_frequencies_table(bool print_out=false) const override
Print frequencies of on-board clocks.
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_pll_status(bool print_out=false) const override
Print status of on-board PLL.
std::string get_hardware_info(bool print_out=false) const override
Print hardware information.
Definition SIMIONode.cpp:73
void reset(const std::string &clock_config_file) const override
Reset IO.
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.
Definition SIMIONode.cpp:42
void switch_sfp_tx(uint32_t sfp_id, bool turn_on) const override
Control tx laser of on-board SFP softly (I2C command)
void configure_endpoint_source(uint8_t endpoint_source, bool dispatch=true) const
Configure endpoint source.
void configure_master_source(uint8_t master_source, bool dispatch=true) const
Configure master source.
std::string get_status(bool print_out=false) const override
Print the status of the timing node.
Class for the TLU board.
Definition TLUIONode.hpp:34
void reset(const std::string &clock_config_file) const override
Reset IO node.
Definition TLUIONode.cpp:53
void switch_sfp_tx(uint32_t, bool) const override
Control tx laser of on-board SFP softly (I2C command)
void configure_dac(uint32_t dac_id, uint32_t dac_value, bool internal_ref=false) const
Configure on-board DAC.
std::string get_status(bool print_out=false) const
Print the status of the timing node.
Definition TLUIONode.cpp:39
void switch_sfp_soft_tx_control_bit(uint32_t, bool) 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
Print status of on-board SFP.
void register_io(py::module &m)
Definition io.cpp:35
The DUNE-DAQ namespace.