DUNE-DAQ
DUNE Trigger and Data Acquisition software
Loading...
Searching...
No Matches
daqethheader.cpp
Go to the documentation of this file.
1
10
11#include <pybind11/operators.h>
12#include <pybind11/pybind11.h>
13#include <pybind11/stl.h>
14
15#include <sstream>
16
17namespace py = pybind11;
18
20
21void
23{
24
25 py::class_<DAQEthHeader>(m, "DAQEthHeader", py::buffer_protocol())
26 .def(py::init([](py::capsule capsule) {
27 auto hsfp = *static_cast<DAQEthHeader*>(capsule.get_pointer());
28 return hsfp;
29 }))
30 .def(py::init([](py::bytes bytes) {
31 py::buffer_info info(py::buffer(bytes).request());
32 auto wfp = *static_cast<DAQEthHeader*>(info.ptr);
33 return wfp;
34 }))
35 .def_property(
36 "version",
37 [](DAQEthHeader& self) -> uint32_t { return self.version; },
38 [](DAQEthHeader& self, uint32_t version) { self.version = version; })
39 .def_property(
40 "det_id",
41 [](DAQEthHeader& self) -> uint32_t { return self.det_id; },
42 [](DAQEthHeader& self, uint32_t det_id) { self.det_id = det_id; })
43 .def_property(
44 "crate_id",
45 [](DAQEthHeader& self) -> uint32_t { return self.crate_id; },
46 [](DAQEthHeader& self, uint32_t crate_id) { self.crate_id = crate_id; })
47 .def_property(
48 "slot_id",
49 [](DAQEthHeader& self) -> uint32_t { return self.slot_id; },
50 [](DAQEthHeader& self, uint32_t slot_id) { self.slot_id = slot_id; })
51 .def_property(
52 "stream_id",
53 [](DAQEthHeader& self) -> uint32_t { return self.stream_id; },
54 [](DAQEthHeader& self, uint32_t stream_id) { self.stream_id = stream_id; })
55 .def_property(
56 "reserved",
57 [](DAQEthHeader& self) -> uint32_t { return self.reserved; },
58 [](DAQEthHeader& self, uint32_t reserved) { self.reserved = reserved; })
59 .def_property(
60 "seq_id",
61 [](DAQEthHeader& self) -> uint32_t { return self.seq_id; },
62 [](DAQEthHeader& self, uint32_t seq_id) { self.seq_id = seq_id; })
63 .def_property(
64 "block_length",
65 [](DAQEthHeader& self) -> uint32_t { return self.block_length; },
66 [](DAQEthHeader& self, uint32_t block_length) { self.block_length = block_length; })
67 .def_property(
68 "timestamp",
69 [](DAQEthHeader& self) -> uint64_t { return self.timestamp; },
70 [](DAQEthHeader& self, uint64_t timestamp) { self.timestamp = timestamp; })
71 .def("get_timestamp", &DAQEthHeader::get_timestamp)
72 .def_static("sizeof", []() { return sizeof(DAQEthHeader); });
73}
74
75} // namespace dunedaq::detdataformats::python
void register_daqethheader(py::module &m)
DAQEthHeader is a versioned and unified structure for every FE electronics.