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"
,
38
[](py::object
/*self*/
) {
return
sizeof
(
DAPHNEEthStreamFrame::ChannelWord
); });
39
40
py::class_<DAPHNEEthStreamFrame::Header>(m,
"DAPHNEEthStreamHeader"
)
41
.def_property(
42
"channel_words"
,
43
[](
DAPHNEEthStreamFrame::Header
& self) -> py::list {
44
py::list result;
45
for
(
int
i = 0; i < 4; i++) {
46
result.append(self.channel_words[i]);
47
}
48
return
result;
49
},
50
[](
DAPHNEEthStreamFrame::Header
& self, py::list channel_words) {
51
for
(
int
i = 0; i < 4 && i < static_cast<int>(len(channel_words)); i++) {
52
self.channel_words[i] = channel_words[i].cast<
DAPHNEEthStreamFrame::ChannelWord
>();
53
}
54
})
55
.def_property_readonly_static(
"s_expected_bytes"
,
56
[](py::object
/*self*/
) {
return
sizeof
(
DAPHNEEthStreamFrame::Header
); });
57
58
py::class_<DAPHNEEthStreamFrame>(m,
"DAPHNEEthStreamFrame"
, py::buffer_protocol())
59
.def(py::init())
60
.def(py::init([](py::capsule capsule) {
61
auto
wfp = *
static_cast<
DAPHNEEthStreamFrame
*
>
(capsule.get_pointer());
62
return
wfp;
63
}))
64
.def(py::init([](py::bytes bytes) {
65
py::buffer_info info(py::buffer(bytes).request());
66
auto
wfp = *
static_cast<
DAPHNEEthStreamFrame
*
>
(info.ptr);
67
return
wfp;
68
}))
69
.def(
70
"get_daqheader"
,
71
[](
DAPHNEEthStreamFrame
& self) ->
const
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
72
py::return_value_policy::reference_internal)
73
.def(
74
"get_daphneheader"
,
75
[](
DAPHNEEthStreamFrame
& self) ->
const
DAPHNEEthStreamFrame::Header
& {
return
self.header; },
76
py::return_value_policy::reference_internal)
77
.def(
78
"get_header"
,
79
[](
DAPHNEEthStreamFrame
& self) ->
const
DAPHNEEthStreamFrame::Header
& {
return
self.header; },
80
py::return_value_policy::reference_internal)
81
.def_property_readonly(
82
"daq_header"
,
83
[](
DAPHNEEthStreamFrame
& self) ->
detdataformats::DAQEthHeader
& {
return
self.daq_header; },
84
py::return_value_policy::reference_internal)
85
.def_property_readonly(
86
"header"
,
87
[](
DAPHNEEthStreamFrame
& self) ->
DAPHNEEthStreamFrame::Header
& {
return
self.header; },
88
py::return_value_policy::reference_internal)
89
.def(
"get_adc"
, &
DAPHNEEthStreamFrame::get_adc
)
90
.def(
"set_adc"
, &
DAPHNEEthStreamFrame::set_adc
)
91
.def(
"get_timestamp"
, &
DAPHNEEthStreamFrame::get_timestamp
)
92
.def(
"set_timestamp"
, &
DAPHNEEthStreamFrame::set_timestamp
)
93
.def(
"__lt__"
, [](
const
DAPHNEEthStreamFrame
& lhs,
const
DAPHNEEthStreamFrame
& rhs) {
return
lhs < rhs; })
94
.def(
"get_channel"
, &
DAPHNEEthStreamFrame::get_channel
)
95
.def(
"set_channel"
, &
DAPHNEEthStreamFrame::set_channel
)
96
.def_property_readonly_static(
"version"
, [](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::version
; })
97
.def_property_readonly_static(
"s_bits_per_adc"
,
98
[](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::s_bits_per_adc
; })
99
.def_property_readonly_static(
"s_bits_per_word"
,
100
[](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::s_bits_per_word
; })
101
.def_property_readonly_static(
"s_adcs_per_channel"
,
102
[](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::s_adcs_per_channel
; })
103
.def_property_readonly_static(
"s_num_channels"
,
104
[](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::s_num_channels
; })
105
.def_property_readonly_static(
"s_num_adc_words"
,
106
[](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::s_num_adc_words
; })
107
.def_property_readonly_static(
"s_expected_bytes"
,
108
[](py::object
/*self*/
) {
return
DAPHNEEthStreamFrame::s_expected_bytes
; })
109
.def(
"get_channel0"
, &
DAPHNEEthStreamFrame::get_channel0
)
110
.def(
"get_channel1"
, &
DAPHNEEthStreamFrame::get_channel1
)
111
.def(
"get_channel2"
, &
DAPHNEEthStreamFrame::get_channel2
)
112
.def(
"get_channel3"
, &
DAPHNEEthStreamFrame::get_channel3
)
113
.def_static(
"sizeof"
, []() {
return
sizeof
(
DAPHNEEthStreamFrame
); })
114
.def(
"get_bytes"
, [](
DAPHNEEthStreamFrame
* fr) -> py::bytes {
115
return
py::bytes(
reinterpret_cast<
char
*
>
(fr),
sizeof
(
DAPHNEEthStreamFrame
));
// NOLINT reinterpret_cast
116
});
117
}
// NOLINT (defensible use of "overly long" function)
118
119
// NOLINTEND(build/unsigned)
120
121
}
// 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.18.0