mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
python: Add find() to the Python API
This a mapping of uhd::device::find() into uhd.find() on the Python
side. The uhd::device is intentionally not mapped into Python (prefer
MultiUSRP or RfnocGraph instead), so the namespace is moved up one
level.
Example:
>>> import uhd
>>> # Now print the device args for all found B200s:
>>> for dev_args in uhd.find("type=b200")): print(dev_args.to_string())
This commit is contained in:
parent
eaf0062254
commit
60fb5d5f13
19
host/lib/device_python.cpp
Normal file
19
host/lib/device_python.cpp
Normal file
@ -0,0 +1,19 @@
|
||||
//
|
||||
// Copyright 2020 Ettus Research, a National Instruments Brand
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
//
|
||||
|
||||
#include <pybind11/complex.h>
|
||||
#include <pybind11/pybind11.h>
|
||||
#include <pybind11/stl.h>
|
||||
|
||||
namespace py = pybind11;
|
||||
|
||||
#include "device_python.hpp"
|
||||
#include <uhd/device.hpp>
|
||||
|
||||
void export_device(py::module& m)
|
||||
{
|
||||
m.def("find", [](const uhd::device_addr_t& hint) { return uhd::device::find(hint); });
|
||||
}
|
||||
9
host/lib/device_python.hpp
Normal file
9
host/lib/device_python.hpp
Normal file
@ -0,0 +1,9 @@
|
||||
//
|
||||
// Copyright 2020 Ettus Research, a National Instruments Brand
|
||||
//
|
||||
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||
//
|
||||
|
||||
#pragma once
|
||||
|
||||
void export_device(py::module& m);
|
||||
@ -32,6 +32,7 @@ execute_process(
|
||||
add_library(pyuhd SHARED
|
||||
pyuhd.cpp
|
||||
${CMAKE_SOURCE_DIR}/lib/property_tree_python.cpp
|
||||
${CMAKE_SOURCE_DIR}/lib/device_python.cpp
|
||||
${CMAKE_SOURCE_DIR}/lib/usrp/multi_usrp_python.cpp
|
||||
)
|
||||
# python expects extension modules with a particular suffix
|
||||
|
||||
@ -14,6 +14,7 @@
|
||||
namespace py = pybind11;
|
||||
|
||||
#include "cal/cal_python.hpp"
|
||||
#include "device_python.hpp"
|
||||
#include "property_tree_python.hpp"
|
||||
#include "rfnoc/ddc_block_control_python.hpp"
|
||||
#include "rfnoc/duc_block_control_python.hpp"
|
||||
@ -61,6 +62,9 @@ PYBIND11_MODULE(libpyuhd, m)
|
||||
// (otherwise we will see segmentation faults)
|
||||
init_numpy();
|
||||
|
||||
// Register uhd::device::find
|
||||
export_device(m);
|
||||
|
||||
// Register paths submodule
|
||||
auto paths_module = m.def_submodule("paths", "Path Utilities");
|
||||
export_paths(paths_module);
|
||||
|
||||
@ -14,6 +14,7 @@ from . import rfnoc
|
||||
from . import dsp
|
||||
from . import chdr
|
||||
from .libpyuhd.paths import *
|
||||
from .libpyuhd import find
|
||||
from .property_tree import PropertyTree
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user