From 0f7369481c40f4b841de8d4f6eca825e7e7b4bda Mon Sep 17 00:00:00 2001 From: Josh Morman <mormjb@gmail.com> Date: Wed, 10 Jun 2020 10:30:12 -0400 Subject: uhd: fix pybind11 bindings Instead of relying on the pyuhd pybind11 bindings, create new gr::uhd pybind11 bindings that wrap the underlying types. Trying to use the pyuhd bindings directly has many issues Also, push some of the overloading into the constructors as opposed to in the __init__ functions with constructor interception --- gr-uhd/python/uhd/bindings/usrp_source_python.cc | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'gr-uhd/python/uhd/bindings/usrp_source_python.cc') diff --git a/gr-uhd/python/uhd/bindings/usrp_source_python.cc b/gr-uhd/python/uhd/bindings/usrp_source_python.cc index 6834e23cd8..19f3d6017d 100644 --- a/gr-uhd/python/uhd/bindings/usrp_source_python.cc +++ b/gr-uhd/python/uhd/bindings/usrp_source_python.cc @@ -25,10 +25,26 @@ void bind_usrp_source(py::module& m) using usrp_source = ::gr::uhd::usrp_source; - py::class_<usrp_source, gr::uhd::usrp_block, std::shared_ptr<usrp_source>>( - m, "usrp_source", D(usrp_source)) + py::class_<usrp_source, + gr::uhd::usrp_block, + gr::sync_block, + gr::block, + gr::basic_block, + std::shared_ptr<usrp_source>>(m, "usrp_source", D(usrp_source)) + + .def(py::init( + (std::shared_ptr<gr::uhd::usrp_source>(*)(const ::uhd::device_addr_t&, + const ::uhd::stream_args_t&, + const bool)) & + usrp_source::make), + py::arg("device_addr"), + py::arg("stream_args"), + py::arg("issue_stream_cmd_on_start") = true, + D(usrp_source, make)) - .def(py::init(&usrp_source::make), + .def(py::init((std::shared_ptr<gr::uhd::usrp_source>(*)( + const std::string&, const ::uhd::stream_args_t&, const bool)) & + usrp_source::make), py::arg("device_addr"), py::arg("stream_args"), py::arg("issue_stream_cmd_on_start") = true, -- cgit v1.2.3