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"
,
45
[](py::object
/*self*/
) {
return
TDEEthFrame::TDEEthHeader::s_expected_bytes
; });
46
47
py::class_<TDEEthFrame>(m,
"TDEEthFrame"
, py::buffer_protocol())
48
.def(py::init())
49
.def(py::init([](py::capsule capsule) {
50
auto
tfp = *
static_cast<
TDEEthFrame
*
>
(capsule.get_pointer());
51
return
tfp;
52
}))
53
.def(py::init([](py::bytes bytes) {
54
py::buffer_info info(py::buffer(bytes).request());
55
auto
tfp = *
static_cast<
TDEEthFrame
*
>
(info.ptr);
56
return
tfp;
57
}))
58
.def(
59
"get_daqheader"
,
60
[](
TDEEthFrame
& self) ->
const
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
61
py::return_value_policy::reference_internal)
62
.def(
63
"get_tdeheader"
,
64
[](
TDEEthFrame
& self) ->
const
TDEEthFrame::TDEEthHeader
& {
return
self.header; },
65
py::return_value_policy::reference_internal)
66
.def_property_readonly(
67
"daq_header"
,
68
[](
TDEEthFrame
& self) ->
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
69
py::return_value_policy::reference_internal)
70
.def_property_readonly(
71
"header"
,
72
[](
TDEEthFrame
& self) ->
TDEEthFrame::TDEEthHeader
& {
return
self.header; },
73
py::return_value_policy::reference_internal)
74
.def(
"get_adc"
, &
TDEEthFrame::get_adc
)
75
.def(
"set_adc"
, &
TDEEthFrame::set_adc
)
76
.def(
"get_timestamp"
, &
TDEEthFrame::get_timestamp
)
77
.def(
"set_timestamp"
, &
TDEEthFrame::set_timestamp
)
78
.def(
"get_channel"
, &
TDEEthFrame::get_channel
)
79
.def(
"set_channel"
, &
TDEEthFrame::set_channel
)
80
.def(
"__lt__"
, [](
const
TDEEthFrame
& lhs,
const
TDEEthFrame
& rhs) {
return
lhs < rhs; })
81
.def_property_readonly_static(
"s_bits_per_adc"
, [](py::object
/*self*/
) {
return
TDEEthFrame::s_bits_per_adc
; })
82
.def_property_readonly_static(
"s_bits_per_word"
, [](py::object
/*self*/
) {
return
TDEEthFrame::s_bits_per_word
; })
83
.def_property_readonly_static(
"s_time_samples_per_frame"
,
84
[](py::object
/*self*/
) {
return
TDEEthFrame::s_time_samples_per_frame
; })
85
.def_property_readonly_static(
"s_channels_per_half_femb"
,
86
[](py::object
/*self*/
) {
return
TDEEthFrame::s_channels_per_half_femb
; })
87
.def_property_readonly_static(
"s_half_fembs_per_frame"
,
88
[](py::object
/*self*/
) {
return
TDEEthFrame::s_half_fembs_per_frame
; })
89
.def_property_readonly_static(
"s_num_channels"
, [](py::object
/*self*/
) {
return
TDEEthFrame::s_num_channels
; })
90
.def_property_readonly_static(
"s_num_adc_words_per_ts"
,
91
[](py::object
/*self*/
) {
return
TDEEthFrame::s_num_adc_words_per_ts
; })
92
.def_property_readonly_static(
"s_expected_bytes"
, [](py::object
/*self*/
) {
return
TDEEthFrame::s_expected_bytes
; })
93
.def_static(
"sizeof"
, []() {
return
sizeof
(
TDEEthFrame
); })
94
.def(
"get_bytes"
, [](
TDEEthFrame
* fr) -> py::bytes {
95
return
py::bytes(
reinterpret_cast<
char
*
>
(fr),
sizeof
(
TDEEthFrame
));
// NOLINT reinterpret_cast
96
});
97
}
// NOLINT (defensible use of "overly long" function)
98
99
// NOLINTEND(build/unsigned)
100
101
}
// 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.18.0