22 py::class_<WIB2Frame>(m,
"WIB2Frame", py::buffer_protocol())
24 .def(py::init([](py::capsule capsule) {
25 auto wfp = *
static_cast<WIB2Frame*
>(capsule.get_pointer());
28 .def(py::init([](py::bytes bytes) {
29 py::buffer_info info(py::buffer(bytes).request());
30 auto wfp = *
static_cast<WIB2Frame*
>(info.ptr);
38 .def_static(
"sizeof", []() {
return sizeof(
WIB2Frame); })
40 [](
WIB2Frame* fr) -> py::bytes {
return py::bytes(
reinterpret_cast<char*
>(fr),
sizeof(
WIB2Frame)); });
42 py::class_<WIB2Frame::Header>(m,
"WIB2Header")
43 .def_property_readonly(
"version", [](
WIB2Frame::Header& self) -> uint32_t {
return self.version; })
44 .def_property_readonly(
"detector_id", [](
WIB2Frame::Header& self) -> uint32_t {
return self.detector_id; })
45 .def_property_readonly(
"crate", [](
WIB2Frame::Header& self) -> uint32_t {
return self.crate; })
46 .def_property_readonly(
"slot", [](
WIB2Frame::Header& self) -> uint32_t {
return self.slot; })
47 .def_property_readonly(
"link", [](
WIB2Frame::Header& self) -> uint32_t {
return self.link; })
48 .def_property_readonly(
"timestamp_1", [](
WIB2Frame::Header& self) -> uint32_t {
return self.timestamp_1; })
49 .def_property_readonly(
"timestamp_2", [](
WIB2Frame::Header& self) -> uint32_t {
return self.timestamp_2; })
50 .def_property_readonly(
"colddata_timestamp_id",
52 .def_property_readonly(
"femb_valid", [](
WIB2Frame::Header& self) -> uint32_t {
return self.femb_valid; })
53 .def_property_readonly(
"link_mask", [](
WIB2Frame::Header& self) -> uint32_t {
return self.link_mask; })
54 .def_property_readonly(
"lock_output_status",
56 .def_property_readonly(
"femb_pulser_frame_bits",
58 .def_property_readonly(
"femb_sync_flags", [](
WIB2Frame::Header& self) -> uint32_t {
return self.femb_sync_flags; })
59 .def_property_readonly(
"colddata_timestamp",
62 py::class_<WIB2Frame::Trailer>(m,
"WIB2Trailer")
63 .def_property_readonly(
"flex_bits", [](
WIB2Frame::Trailer& self) -> uint32_t {
return self.flex_bits; })
64 .def_property_readonly(
"ws", [](
WIB2Frame::Trailer& self) -> uint32_t {
return self.ws; })
65 .def_property_readonly(
"psr_cal", [](
WIB2Frame::Trailer& self) -> uint32_t {
return self.psr_cal; })
66 .def_property_readonly(
"ready", [](
WIB2Frame::Trailer& self) -> uint32_t {
return self.ready; })
67 .def_property_readonly(
"context_code", [](
WIB2Frame::Trailer& self) -> uint32_t {
return self.context_code; });