diff options
author | Josh Morman <mormjb@gmail.com> | 2020-06-10 10:30:12 -0400 |
---|---|---|
committer | Josh Morman <mormjb@gmail.com> | 2020-06-10 13:26:30 -0400 |
commit | 0f7369481c40f4b841de8d4f6eca825e7e7b4bda (patch) | |
tree | 4498000e906a58639a0bd3a5243ba74ea85d91f9 /gr-uhd/python/uhd/bindings/usrp_source_python.cc | |
parent | 868ec8eecaa1d06696bc072bcf5db300d00da130 (diff) |
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
Diffstat (limited to 'gr-uhd/python/uhd/bindings/usrp_source_python.cc')
-rw-r--r-- | gr-uhd/python/uhd/bindings/usrp_source_python.cc | 22 |
1 files changed, 19 insertions, 3 deletions
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, |