22 py::class_<TDE16Frame>(m,
"TDE16Frame", py::buffer_protocol())
24 .def(py::init([](py::capsule capsule) {
25 auto wfp = *
static_cast<TDE16Frame*
>(capsule.get_pointer());
28 .def(py::init([](py::bytes bytes) {
29 py::buffer_info info(py::buffer(bytes).request());
30 auto wfp = *
static_cast<TDE16Frame*
>(info.ptr);
39 py::return_value_policy::reference_internal)
43 py::return_value_policy::reference_internal)
45 .def_static(
"sizeof", []() {
return sizeof(
TDE16Frame); })
47 [](
TDE16Frame* fr) -> py::bytes {
return py::bytes(
reinterpret_cast<char*
>(fr),
sizeof(
TDE16Frame)); });
49 py::class_<TDEHeader>(m,
"TDEHeader")
50 .def_property_readonly(
"channel", [](
TDEHeader& self) -> uint16_t {
return self.channel; })
51 .def_property_readonly(
"version", [](
TDEHeader& self) -> uint16_t {
return self.version; })
52 .def_property_readonly(
"tde_header", [](
TDEHeader& self) -> uint16_t {
return self.tde_header; })
53 .def_property_readonly(
"tde_errors", [](
TDEHeader& self) -> uint16_t {
return self.tde_errors; })
54 .def_property_readonly(
"TAItime", [](
TDEHeader& self) -> uint64_t {
return self.TAItime; });