DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
fddetdataformats
pybindsrc
daphneethstream.cpp
Go to the documentation of this file.
1
8
9
#include "
fddetdataformats/DAPHNEEthStreamFrame.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_daphneethstream
(py::module& m)
22
{
23
24
py::class_<DAPHNEEthStreamFrame::ChannelWord>(m,
"DAPHNEEthStreamChannelWord"
)
25
.def_property(
26
"tbd"
,
27
[](
DAPHNEEthStreamFrame::ChannelWord
& self) -> uint64_t {
return
self.
tbd
; },
28
[](
DAPHNEEthStreamFrame::ChannelWord
& self, uint64_t tbd) { self.
tbd
= tbd; })
29
.def_property(
30
"version"
,
31
[](
DAPHNEEthStreamFrame::ChannelWord
& self) -> uint64_t {
return
self.
version
; },
32
[](
DAPHNEEthStreamFrame::ChannelWord
& self, uint64_t
version
) { self.
version
=
version
; })
33
.def_property(
34
"channel"
,
35
[](
DAPHNEEthStreamFrame::ChannelWord
& self) -> uint64_t {
return
self.
channel
; },
36
[](
DAPHNEEthStreamFrame::ChannelWord
& self, uint64_t channel) { self.
channel
= channel; })
37
.def_property_readonly_static(
"s_expected_bytes"
, [](py::object
/*self*/
) {
38
return
sizeof
(
DAPHNEEthStreamFrame::ChannelWord
);
39
});
40
41
py::class_<DAPHNEEthStreamFrame::Header>(m,
"DAPHNEEthStreamHeader"
)
42
.def_property(
43
"channel_words"
,
44
[](
DAPHNEEthStreamFrame::Header
& self) -> py::list {
45
py::list result;
46
for
(
int
i = 0; i < 4; i++) {
47
result.append(self.channel_words[i]);
48
}
49
return
result;
50
},
51
[](
DAPHNEEthStreamFrame::Header
& self, py::list channel_words) {
52
for
(
int
i = 0; i < 4 && i < static_cast<int>(len(channel_words)); i++) {
53
self.channel_words[i] = channel_words[i].cast<
DAPHNEEthStreamFrame::ChannelWord
>();
54
}
55
})
56
.def_property_readonly_static(
"s_expected_bytes"
, [](py::object
/*self*/
) {
57
return
sizeof
(
DAPHNEEthStreamFrame::Header
);
58
});
59
60
py::class_<DAPHNEEthStreamFrame>(m,
"DAPHNEEthStreamFrame"
, py::buffer_protocol())
61
.def(py::init())
62
.def(py::init([](py::capsule capsule) {
63
auto
wfp = *
static_cast<
DAPHNEEthStreamFrame
*
>
(capsule.get_pointer());
64
return
wfp;
65
}))
66
.def(py::init([](py::bytes bytes) {
67
py::buffer_info info(py::buffer(bytes).request());
68
auto
wfp = *
static_cast<
DAPHNEEthStreamFrame
*
>
(info.ptr);
69
return
wfp;
70
}))
71
.def(
72
"get_daqheader"
,
73
[](
DAPHNEEthStreamFrame
& self) ->
const
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
74
py::return_value_policy::reference_internal)
75
.def(
76
"get_daphneheader"
,
77
[](
DAPHNEEthStreamFrame
& self) ->
const
DAPHNEEthStreamFrame::Header
& {
return
self.header; },
78
py::return_value_policy::reference_internal)
79
.def(
80
"get_header"
,
81
[](
DAPHNEEthStreamFrame
& self) ->
const
DAPHNEEthStreamFrame::Header
& {
return
self.header; },
82
py::return_value_policy::reference_internal)
83
.def_property_readonly(
84
"daq_header"
,
85
[](
DAPHNEEthStreamFrame
& self) ->
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
86
py::return_value_policy::reference_internal)
87
.def_property_readonly(
88
"header"
,
89
[](
DAPHNEEthStreamFrame
& self) ->
DAPHNEEthStreamFrame::Header
& {
return
self.header; },
90
py::return_value_policy::reference_internal)
91
.def(
"get_adc"
, &
DAPHNEEthStreamFrame::get_adc
)
92
.def(
"set_adc"
, &
DAPHNEEthStreamFrame::set_adc
)
93
.def(
"get_timestamp"
, &
DAPHNEEthStreamFrame::get_timestamp
)
94
.def(
"set_timestamp"
, &
DAPHNEEthStreamFrame::set_timestamp
)
95
.def(
"__lt__"
, [](
const
DAPHNEEthStreamFrame
& lhs,
const
DAPHNEEthStreamFrame
& rhs) {
return
lhs < rhs; })
96
.def(
"get_channel"
, &
DAPHNEEthStreamFrame::get_channel
)
97
.def(
"set_channel"
, &
DAPHNEEthStreamFrame::set_channel
)
98
.def_property_readonly_static(
"version"
, [](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::version
; })
99
.def_property_readonly_static(
"s_bits_per_adc"
, [](py::object
/*self*/
) {
100
return
DAPHNEEthStreamFrame::s_bits_per_adc
;
101
})
102
.def_property_readonly_static(
"s_bits_per_word"
, [](py::object
/*self*/
) {
103
return
DAPHNEEthStreamFrame::s_bits_per_word
;
104
})
105
.def_property_readonly_static(
"s_adcs_per_channel"
, [](py::object
/*self*/
) {
106
return
DAPHNEEthStreamFrame::s_adcs_per_channel
;
107
})
108
.def_property_readonly_static(
"s_num_channels"
, [](py::object
/*self*/
) {
109
return
DAPHNEEthStreamFrame::s_num_channels
;
110
})
111
.def_property_readonly_static(
"s_num_adc_words"
, [](py::object
/*self*/
) {
112
return
DAPHNEEthStreamFrame::s_num_adc_words
;
113
})
114
.def_property_readonly_static(
"s_expected_bytes"
, [](py::object
/*self*/
) {
115
return
DAPHNEEthStreamFrame::s_expected_bytes
;
116
})
117
.def(
"get_channel0"
, &
DAPHNEEthStreamFrame::get_channel0
)
118
.def(
"get_channel1"
, &
DAPHNEEthStreamFrame::get_channel1
)
119
.def(
"get_channel2"
, &
DAPHNEEthStreamFrame::get_channel2
)
120
.def(
"get_channel3"
, &
DAPHNEEthStreamFrame::get_channel3
)
121
.def_static(
"sizeof"
, []() {
return
sizeof
(
DAPHNEEthStreamFrame
); })
122
.def(
"get_bytes"
, [](
DAPHNEEthStreamFrame
* fr) -> py::bytes {
123
return
py::bytes(
reinterpret_cast<
char
*
>
(fr),
sizeof
(
DAPHNEEthStreamFrame
));
// NOLINT reinterpret_cast
124
});
125
}
// NOLINT (defensible use of "overly long" function)
126
127
// NOLINTEND(build/unsigned)
128
129
}
// namespace dunedaq::fddetdataformats::python
DAPHNEEthStreamFrame.hpp
version
version
Definition
TriggerActivity_serialization.hpp:50
dunedaq::fddetdataformats::python
Definition
daphne.cpp:16
dunedaq::fddetdataformats::python::register_daphneethstream
void register_daphneethstream(py::module &m)
Definition
daphneethstream.cpp:21
dunedaq::detdataformats::DAQEthHeader
DAQEthHeader is a versioned and unified structure for every FE electronics.
Definition
DAQEthHeader.hpp:23
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::ChannelWord
Definition
DAPHNEEthStreamFrame.hpp:57
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::ChannelWord::tbd
word_t tbd
Definition
DAPHNEEthStreamFrame.hpp:58
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::ChannelWord::version
word_t version
Definition
DAPHNEEthStreamFrame.hpp:59
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::ChannelWord::channel
word_t channel
Definition
DAPHNEEthStreamFrame.hpp:60
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::Header
Definition
DAPHNEEthStreamFrame.hpp:65
dunedaq::fddetdataformats::DAPHNEEthStreamFrame
Struct for accessing raw DAPHNE eth stream frames.
Definition
DAPHNEEthStreamFrame.hpp:43
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::get_channel1
uint8_t get_channel1() const
Get the channel 1 from the DAPHNE Stream frame header.
Definition
DAPHNEEthStreamFrame.hpp:95
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::s_expected_bytes
static constexpr std::size_t s_expected_bytes
Definition
DAPHNEEthStreamFrame.hpp:70
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::s_adcs_per_channel
static constexpr int s_adcs_per_channel
Definition
DAPHNEEthStreamFrame.hpp:52
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::set_timestamp
void set_timestamp(const uint64_t new_timestamp)
Set the starting 64-bit timestamp of the frame.
Definition
DAPHNEEthStreamFrame.hpp:83
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::get_channel0
uint8_t get_channel0() const
Get the channel 0 from the DAPHNE Stream frame header.
Definition
DAPHNEEthStreamFrame.hpp:92
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::s_bits_per_adc
static constexpr int s_bits_per_adc
Definition
DAPHNEEthStreamFrame.hpp:50
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::s_num_channels
static constexpr int s_num_channels
Definition
DAPHNEEthStreamFrame.hpp:53
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::get_channel
uint8_t get_channel(const int i_channel) const
Get the channel identifier of the frame.
Definition
DAPHNEEthStreamFrame.hxx:5
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::set_channel
void set_channel(const int i_channel, const uint8_t new_channel_val)
Set the channel identifier of the frame.
Definition
DAPHNEEthStreamFrame.hxx:16
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::version
static constexpr uint8_t version
Definition
DAPHNEEthStreamFrame.hpp:48
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::get_adc
uint16_t get_adc(int i_adc, int i_channel) const
Get the i_adc-th ADC value of i_channel-th channel in the frame.
Definition
DAPHNEEthStreamFrame.hxx:28
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::s_num_adc_words
static constexpr int s_num_adc_words
Definition
DAPHNEEthStreamFrame.hpp:54
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::set_adc
void set_adc(int i_adc, int i_channel, uint16_t val)
Set the i_adc-th ADC value of i_channel-th channel in the frame to val.
Definition
DAPHNEEthStreamFrame.hxx:37
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::get_channel3
uint8_t get_channel3() const
Get the channel 3 from the DAPHNE Stream frame header.
Definition
DAPHNEEthStreamFrame.hpp:101
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::s_bits_per_word
static constexpr int s_bits_per_word
Definition
DAPHNEEthStreamFrame.hpp:51
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::get_channel2
uint8_t get_channel2() const
Get the channel 2 from the DAPHNE Stream frame header.
Definition
DAPHNEEthStreamFrame.hpp:98
dunedaq::fddetdataformats::DAPHNEEthStreamFrame::get_timestamp
uint64_t get_timestamp() const
Get the starting 64-bit timestamp of the frame.
Definition
DAPHNEEthStreamFrame.hpp:80
Generated on
for DUNE-DAQ by
1.17.0