21 {
22
23 py::class_<DAQEthHeader>(m, "DAQEthHeader", py::buffer_protocol())
24 .def(py::init([](py::capsule capsule) {
25 auto hsfp = *
static_cast<DAQEthHeader*
>(capsule.get_pointer());
26 return hsfp;
27 } ))
28 .def(py::init([](py::bytes bytes){
29 py::buffer_info info(py::buffer(bytes).request());
31 return wfp;
32 }))
33 .def_property("version",
34 [](DAQEthHeader& self) -> uint32_t { return self.version; },
35 [](DAQEthHeader& self, uint32_t
version) { self.version =
version; }
36 )
37 .def_property("det_id",
38 [](DAQEthHeader& self) -> uint32_t { return self.det_id; },
39 [](DAQEthHeader& self, uint32_t
det_id) { self.det_id =
det_id; }
40 )
41 .def_property("crate_id",
42 [](DAQEthHeader& self) -> uint32_t { return self.crate_id; },
44 )
45 .def_property("slot_id",
46 [](DAQEthHeader& self) -> uint32_t { return self.slot_id; },
47 [](DAQEthHeader& self, uint32_t slot_id) { self.slot_id = slot_id; }
48 )
49 .def_property("stream_id",
50 [](DAQEthHeader& self) -> uint32_t { return self.stream_id; },
51 [](DAQEthHeader& self, uint32_t stream_id) { self.stream_id = stream_id; }
52 )
53 .def_property("reserved",
54 [](DAQEthHeader& self) -> uint32_t { return self.reserved; },
55 [](DAQEthHeader& self, uint32_t reserved) { self.reserved = reserved; }
56 )
57 .def_property("seq_id",
58 [](DAQEthHeader& self) -> uint32_t { return self.seq_id; },
59 [](DAQEthHeader& self, uint32_t seq_id) { self.seq_id = seq_id; }
60 )
61 .def_property("block_length",
62 [](DAQEthHeader& self) -> uint32_t { return self.block_length; },
63 [](DAQEthHeader& self, uint32_t block_length) { self.block_length = block_length; }
64 )
65 .def_property("timestamp",
66 [](DAQEthHeader& self) -> uint64_t { return self.timestamp; },
67 [](DAQEthHeader& self, uint64_t timestamp) { self.timestamp = timestamp; }
68 )
69 .def("get_timestamp", &DAQEthHeader::get_timestamp)
70 ;
71}