24 py::class_<WIBEthFrame::WIBEthHeader>(m,
"WIBEthHeader")
74 "colddata_timestamp_1",
80 "colddata_timestamp_0",
89 .def_property_readonly_static(
"s_expected_bytes", [](py::object ) {
93 py::class_<WIBEthFrame>(m,
"WIBEthFrame", py::buffer_protocol())
95 .def(py::init([](py::capsule capsule) {
96 auto wfp = *
static_cast<WIBEthFrame*
>(capsule.get_pointer());
99 .def(py::init([](py::bytes bytes) {
100 py::buffer_info info(py::buffer(bytes).request());
107 py::return_value_policy::reference_internal)
111 py::return_value_policy::reference_internal)
112 .def_property_readonly(
115 py::return_value_policy::reference_internal)
116 .def_property_readonly(
119 py::return_value_policy::reference_internal)
127 .def_property_readonly_static(
"s_bits_per_adc", [](py::object ) {
130 .def_property_readonly_static(
"s_bits_per_word", [](py::object ) {
133 .def_property_readonly_static(
"s_time_samples_per_frame", [](py::object ) {
136 .def_property_readonly_static(
"s_channels_per_half_femb", [](py::object ) {
139 .def_property_readonly_static(
"s_half_fembs_per_frame", [](py::object ) {
142 .def_property_readonly_static(
"s_num_channels", [](py::object ) {
145 .def_property_readonly_static(
"s_num_adc_words_per_ts", [](py::object ) {
148 .def_property_readonly_static(
"s_expected_bytes", [](py::object ) {
151 .def_static(
"sizeof", []() {
return sizeof(
WIBEthFrame); })
152 .def(
"get_bytes", [](
WIBEthFrame* fr) -> py::bytes {
153 return py::bytes(
reinterpret_cast<char*
>(fr),
sizeof(
WIBEthFrame));