22 py::class_<WIBFrame>(m,
"WIBFrame", py::buffer_protocol())
24 .def(py::init([](py::capsule capsule) {
25 auto wfp = *
static_cast<WIBFrame*
>(capsule.get_pointer());
28 .def(py::init([](py::bytes bytes) {
29 py::buffer_info info(py::buffer(bytes).request());
30 auto wfp = *
static_cast<WIBFrame*
>(info.ptr);
33 .def(
"get_wib_header",
35 py::return_value_policy::reference_internal)
44 .def_static(
"sizeof", []() {
return sizeof(
WIBFrame); })
46 [](
WIBFrame* fr) -> py::bytes {
return py::bytes(
reinterpret_cast<char*
>(fr),
sizeof(
WIBFrame)); });
48 py::class_<WIBHeader>(m,
"WIBHeader")
49 .def_property_readonly(
"sof", [](
WIBHeader& self) -> uint32_t {
return self.
sof; })
50 .def_property_readonly(
"version", [](
WIBHeader& self) -> uint32_t {
return self.
version; })
51 .def_property_readonly(
"fiber_no", [](
WIBHeader& self) -> uint32_t {
return self.
fiber_no; })
52 .def_property_readonly(
"crate_no", [](
WIBHeader& self) -> uint32_t {
return self.
crate_no; })
53 .def_property_readonly(
"slot_no", [](
WIBHeader& self) -> uint32_t {
return self.
slot_no; })
54 .def_property_readonly(
"mm", [](
WIBHeader& self) -> uint32_t {
return self.
mm; })
55 .def_property_readonly(
"oos", [](
WIBHeader& self) -> uint32_t {
return self.
oos; })
56 .def_property_readonly(
"mm", [](
WIBHeader& self) -> uint32_t {
return self.
mm; })
57 .def_property_readonly(
"wib_errors", [](
WIBHeader& self) -> uint32_t {
return self.
wib_errors; })
60 py::class_<ColdataHeader>(m,
"ColdataHeader")
61 .def_property_readonly(
"s1_error", [](
ColdataHeader& self) -> uint32_t {
return self.s1_error; })
62 .def_property_readonly(
"s2_error", [](
ColdataHeader& self) -> uint32_t {
return self.s2_error; })
63 .def_property_readonly(
"coldata_convert_count",
64 [](
ColdataHeader& self) -> uint32_t {
return self.coldata_convert_count; })
65 .def_property_readonly(
"error_register", [](
ColdataHeader& self) -> uint32_t {
return self.error_register; })
66 .def_property_readonly(
"hdr_1", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_1; })
67 .def_property_readonly(
"hdr_3", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_3; })
68 .def_property_readonly(
"hdr_2", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_2; })
69 .def_property_readonly(
"hdr_4", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_4; })
70 .def_property_readonly(
"hdr_5", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_5; })
71 .def_property_readonly(
"hdr_7", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_7; })
72 .def_property_readonly(
"hdr_6", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_6; })
73 .def_property_readonly(
"hdr_8", [](
ColdataHeader& self) -> uint32_t {
return self.hdr_8; })