diff options
Diffstat (limited to 'gr-blocks/python/blocks/bindings/pdu_python.cc')
-rw-r--r-- | gr-blocks/python/blocks/bindings/pdu_python.cc | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/gr-blocks/python/blocks/bindings/pdu_python.cc b/gr-blocks/python/blocks/bindings/pdu_python.cc new file mode 100644 index 0000000000..267dbdb330 --- /dev/null +++ b/gr-blocks/python/blocks/bindings/pdu_python.cc @@ -0,0 +1,71 @@ +/* + * Copyright 2020 Free Software Foundation, Inc. + * + * This file is part of GNU Radio + * + * SPDX-License-Identifier: GPL-3.0-or-later + * + */ + +/***********************************************************************************/ +/* This file is automatically generated using bindtool and can be manually edited */ +/* The following lines can be configured to regenerate this file during cmake */ +/* If manual edits are made, the following tags should be modified accordingly. */ +/* BINDTOOL_GEN_AUTOMATIC(0) */ +/* BINDTOOL_USE_PYGCCXML(0) */ +/* BINDTOOL_HEADER_FILE(pdu.h) */ +/* BINDTOOL_HEADER_FILE_HASH(8c678dd50c4df86cbc74dc58b1b5010d) */ +/***********************************************************************************/ + +#include <pybind11/complex.h> +#include <pybind11/pybind11.h> +#include <pybind11/stl.h> + +namespace py = pybind11; + +#include <gnuradio/blocks/pdu.h> +// pydoc.h is automatically generated in the build directory +#include <pdu_pydoc.h> + +void bind_pdu(py::module& m) +{ + + + py::module m_pdu = m.def_submodule("pdu"); + + // TODO - clean up pdu subnamespace -- should these enums go under pdu, or under + // blocks? + py::enum_<::gr::blocks::pdu::vector_type>(m, "vector_type") + .value("byte_t", ::gr::blocks::pdu::byte_t) // 0 + .value("float_t", ::gr::blocks::pdu::float_t) // 1 + .value("complex_t", ::gr::blocks::pdu::complex_t) // 2 + .export_values(); + + + m_pdu.def("pdu_port_id", &::gr::blocks::pdu::pdu_port_id, D(pdu, pdu_port_id)); + + + m_pdu.def( + "itemsize", &::gr::blocks::pdu::itemsize, py::arg("type"), D(pdu, itemsize)); + + + m_pdu.def("type_matches", + &::gr::blocks::pdu::type_matches, + py::arg("type"), + py::arg("v"), + D(pdu, type_matches)); + + + m_pdu.def("make_pdu_vector", + &::gr::blocks::pdu::make_pdu_vector, + py::arg("type"), + py::arg("buf"), + py::arg("items"), + D(pdu, make_pdu_vector)); + + + m_pdu.def("type_from_pmt", + &::gr::blocks::pdu::type_from_pmt, + py::arg("vector"), + D(pdu, type_from_pmt)); +} |