DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
fddetdataformats
pybindsrc
tdeeth.cpp
Go to the documentation of this file.
1
8
9
#include "
fddetdataformats/TDEEthFrame.hpp
"
10
11
#include <pybind11/pybind11.h>
12
#include <pybind11/stl.h>
13
14
namespace
py = pybind11;
15
16
namespace
dunedaq::fddetdataformats::python
{
17
18
// NOLINTBEGIN(build/unsigned)
19
20
void
21
register_tdeeth
(py::module& m)
22
{
23
py::class_<TDEEthFrame::TDEEthHeader>(m,
"TDEEthHeader"
)
24
.def_property(
25
"channel"
,
26
[](
TDEEthFrame::TDEEthHeader
& self) -> uint16_t {
return
self.
channel
; },
27
[](
TDEEthFrame::TDEEthHeader
& self, uint16_t channel) { self.
channel
= channel; })
28
.def_property(
29
"version"
,
30
[](
TDEEthFrame::TDEEthHeader
& self) -> uint16_t {
return
self.
version
; },
31
[](
TDEEthFrame::TDEEthHeader
& self, uint16_t
version
) { self.
version
=
version
; })
32
.def_property(
33
"tde_header"
,
34
[](
TDEEthFrame::TDEEthHeader
& self) -> uint16_t {
return
self.
tde_header
; },
35
[](
TDEEthFrame::TDEEthHeader
& self, uint16_t tde_header) { self.
tde_header
= tde_header; })
36
.def_property(
37
"tde_errors"
,
38
[](
TDEEthFrame::TDEEthHeader
& self) -> uint16_t {
return
self.
tde_errors
; },
39
[](
TDEEthFrame::TDEEthHeader
& self, uint16_t tde_errors) { self.
tde_errors
= tde_errors; })
40
.def_property(
41
"TAItime"
,
42
[](
TDEEthFrame::TDEEthHeader
& self) -> uint64_t {
return
self.
TAItime
; },
43
[](
TDEEthFrame::TDEEthHeader
& self, uint64_t TAItime) { self.
TAItime
= TAItime; })
44
.def_property_readonly_static(
"s_expected_bytes"
, [](py::object
/*self*/
) {
45
return
TDEEthFrame::TDEEthHeader::s_expected_bytes
;
46
});
47
48
py::class_<TDEEthFrame>(m,
"TDEEthFrame"
, py::buffer_protocol())
49
.def(py::init())
50
.def(py::init([](py::capsule capsule) {
51
auto
tfp = *
static_cast<
TDEEthFrame
*
>
(capsule.get_pointer());
52
return
tfp;
53
}))
54
.def(py::init([](py::bytes bytes) {
55
py::buffer_info info(py::buffer(bytes).request());
56
auto
tfp = *
static_cast<
TDEEthFrame
*
>
(info.ptr);
57
return
tfp;
58
}))
59
.def(
60
"get_daqheader"
,
61
[](
TDEEthFrame
& self) ->
const
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
62
py::return_value_policy::reference_internal)
63
.def(
64
"get_tdeheader"
,
65
[](
TDEEthFrame
& self) ->
const
TDEEthFrame::TDEEthHeader
& {
return
self.header; },
66
py::return_value_policy::reference_internal)
67
.def_property_readonly(
68
"daq_header"
,
69
[](
TDEEthFrame
& self) ->
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
70
py::return_value_policy::reference_internal)
71
.def_property_readonly(
72
"header"
,
73
[](
TDEEthFrame
& self) ->
TDEEthFrame::TDEEthHeader
& {
return
self.header; },
74
py::return_value_policy::reference_internal)
75
.def(
"get_adc"
, &
TDEEthFrame::get_adc
)
76
.def(
"set_adc"
, &
TDEEthFrame::set_adc
)
77
.def(
"get_timestamp"
, &
TDEEthFrame::get_timestamp
)
78
.def(
"set_timestamp"
, &
TDEEthFrame::set_timestamp
)
79
.def(
"get_channel"
, &
TDEEthFrame::get_channel
)
80
.def(
"set_channel"
, &
TDEEthFrame::set_channel
)
81
.def(
"__lt__"
, [](
const
TDEEthFrame
& lhs,
const
TDEEthFrame
& rhs) {
return
lhs < rhs; })
82
.def_property_readonly_static(
"s_bits_per_adc"
, [](py::object
/*self*/
) {
83
return
TDEEthFrame::s_bits_per_adc
;
84
})
85
.def_property_readonly_static(
"s_bits_per_word"
, [](py::object
/*self*/
) {
86
return
TDEEthFrame::s_bits_per_word
;
87
})
88
.def_property_readonly_static(
"s_time_samples_per_frame"
, [](py::object
/*self*/
) {
89
return
TDEEthFrame::s_time_samples_per_frame
;
90
})
91
.def_property_readonly_static(
"s_channels_per_half_femb"
, [](py::object
/*self*/
) {
92
return
TDEEthFrame::s_channels_per_half_femb
;
93
})
94
.def_property_readonly_static(
"s_half_fembs_per_frame"
, [](py::object
/*self*/
) {
95
return
TDEEthFrame::s_half_fembs_per_frame
;
96
})
97
.def_property_readonly_static(
"s_num_channels"
, [](py::object
/*self*/
) {
98
return
TDEEthFrame::s_num_channels
;
99
})
100
.def_property_readonly_static(
"s_num_adc_words_per_ts"
, [](py::object
/*self*/
) {
101
return
TDEEthFrame::s_num_adc_words_per_ts
;
102
})
103
.def_property_readonly_static(
"s_expected_bytes"
, [](py::object
/*self*/
) {
104
return
TDEEthFrame::s_expected_bytes
;
105
})
106
.def_static(
"sizeof"
, []() {
return
sizeof
(
TDEEthFrame
); })
107
.def(
"get_bytes"
, [](
TDEEthFrame
* fr) -> py::bytes {
108
return
py::bytes(
reinterpret_cast<
char
*
>
(fr),
sizeof
(
TDEEthFrame
));
// NOLINT reinterpret_cast
109
});
110
}
// NOLINT (defensible use of "overly long" function)
111
112
// NOLINTEND(build/unsigned)
113
114
}
// namespace dunedaq::fddetdataformats::python
TDEEthFrame.hpp
version
version
Definition
TriggerActivity_serialization.hpp:50
dunedaq::fddetdataformats::python
Definition
daphne.cpp:16
dunedaq::fddetdataformats::python::register_tdeeth
void register_tdeeth(pybind11::module &)
dunedaq::detdataformats::DAQEthHeader
DAQEthHeader is a versioned and unified structure for every FE electronics.
Definition
DAQEthHeader.hpp:23
dunedaq::fddetdataformats::TDEEthFrame::TDEEthHeader
Definition
TDEEthFrame.hpp:55
dunedaq::fddetdataformats::TDEEthFrame::TDEEthHeader::version
uint64_t version
Definition
TDEEthFrame.hpp:61
dunedaq::fddetdataformats::TDEEthFrame::TDEEthHeader::tde_header
uint64_t tde_header
Definition
TDEEthFrame.hpp:60
dunedaq::fddetdataformats::TDEEthFrame::TDEEthHeader::channel
uint64_t channel
Definition
TDEEthFrame.hpp:62
dunedaq::fddetdataformats::TDEEthFrame::TDEEthHeader::TAItime
uint64_t TAItime
Definition
TDEEthFrame.hpp:63
dunedaq::fddetdataformats::TDEEthFrame::TDEEthHeader::s_expected_bytes
static constexpr size_t s_expected_bytes
Definition
TDEEthFrame.hpp:56
dunedaq::fddetdataformats::TDEEthFrame::TDEEthHeader::tde_errors
uint64_t tde_errors
Definition
TDEEthFrame.hpp:59
dunedaq::fddetdataformats::TDEEthFrame
Struct for accessing raw TDE eth frames, as used in ProtoDUNE-II.
Definition
TDEEthFrame.hpp:42
dunedaq::fddetdataformats::TDEEthFrame::s_bits_per_adc
static constexpr int s_bits_per_adc
Definition
TDEEthFrame.hpp:46
dunedaq::fddetdataformats::TDEEthFrame::s_channels_per_half_femb
static constexpr int s_channels_per_half_femb
Definition
TDEEthFrame.hpp:49
dunedaq::fddetdataformats::TDEEthFrame::s_expected_bytes
static constexpr size_t s_expected_bytes
Definition
TDEEthFrame.hpp:67
dunedaq::fddetdataformats::TDEEthFrame::set_channel
void set_channel(const uint8_t new_channel)
Set the channel identifier of the frame.
Definition
TDEEthFrame.hpp:92
dunedaq::fddetdataformats::TDEEthFrame::get_adc
uint16_t get_adc(int i_channel, int i_sample=0) const
Get the i_channel-th ADC value in the i_sample-th time sample.
Definition
TDEEthFrame.hxx:5
dunedaq::fddetdataformats::TDEEthFrame::set_adc
void set_adc(int i_channel, int i_sample, uint16_t val)
Set the i_channel-th ADC value in the i_sample-th time sample to val.
Definition
TDEEthFrame.hxx:20
dunedaq::fddetdataformats::TDEEthFrame::s_time_samples_per_frame
static constexpr int s_time_samples_per_frame
Definition
TDEEthFrame.hpp:48
dunedaq::fddetdataformats::TDEEthFrame::get_channel
uint8_t get_channel() const
Get the channel identifier of the frame.
Definition
TDEEthFrame.hpp:89
dunedaq::fddetdataformats::TDEEthFrame::s_num_adc_words_per_ts
static constexpr int s_num_adc_words_per_ts
Definition
TDEEthFrame.hpp:52
dunedaq::fddetdataformats::TDEEthFrame::set_timestamp
void set_timestamp(const uint64_t new_timestamp)
Set the starting 64-bit timestamp of the frame.
Definition
TDEEthFrame.hpp:86
dunedaq::fddetdataformats::TDEEthFrame::s_bits_per_word
static constexpr int s_bits_per_word
Definition
TDEEthFrame.hpp:47
dunedaq::fddetdataformats::TDEEthFrame::s_num_channels
static constexpr int s_num_channels
Definition
TDEEthFrame.hpp:51
dunedaq::fddetdataformats::TDEEthFrame::get_timestamp
uint64_t get_timestamp() const
Get the starting 64-bit timestamp of the frame.
Definition
TDEEthFrame.hpp:83
dunedaq::fddetdataformats::TDEEthFrame::s_half_fembs_per_frame
static constexpr int s_half_fembs_per_frame
Definition
TDEEthFrame.hpp:50
Generated on
for DUNE-DAQ by
1.17.0