aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/multi_usrp_python.hpp
diff options
context:
space:
mode:
authorBrent Stapleton <brent.stapleton@ettus.com>2019-06-07 13:22:05 -0700
committerMartin Braun <martin.braun@ettus.com>2019-11-26 11:49:42 -0800
commit23f4f8cf4ea72d59740afcb5663e4541f93e821a (patch)
treec4ab11c76a7a37a197ab464e368002a91d7878c1 /host/lib/usrp/multi_usrp_python.hpp
parent027cf1fe9b484197bc7f2aeb2f1bb588442d0bdc (diff)
downloaduhd-23f4f8cf4ea72d59740afcb5663e4541f93e821a.tar.gz
uhd-23f4f8cf4ea72d59740afcb5663e4541f93e821a.tar.bz2
uhd-23f4f8cf4ea72d59740afcb5663e4541f93e821a.zip
rfnoc: Add multi_usrp_rfnoc, modify multi_usrp
This adds a separate version of multi_usrp for RFNoC devices. It is compatible with RFNoC devices only, and prefers C++ APIs over property tree usage. The factory of multi_usrp is modified such that it picks the correct version, users of multi_usrp don't care about this change. This also introduces some API changes: - Removing redundant GPIO functions. Now all GPIO control, setting, and readback is done with uint32_t's. - Adding getter/setter for GPIO source. This was done to simplify the other GPIO settings, as the source for each pin is not always a binary. The CTRL mode, for example, can either be ATR or GPIO. However, the source can be controlled by various radios or "PS" or some other source. - Removing the mask from the RFNoC radio controllers' set_gpio_attr(). - Adding state caching to gpio_atr_3000, and a getter for it. Whenever an attribute is set, that value is cached, and can now be retreieved. - Remove low-level register API. Since UHD 3.10, there is no USRP that implements that API. Modifying the filter API in the following ways: - Splitting filter API getter/setter/list into separate RX and TX functions - Adding channel numbers as an argument - The filter name will no longer be a property tree path, but rather a filter name. For RFNoC devices, this will take the form `BLOCK_ID:FILTER_NAME`. For non-RFNoC devices, this will just be the filter name (e.g. `HB_1`) - Removing search mask from listing function. Users can do their own searching Co-Authored-By: Martin Braun <martin.braun@ettus.com>
Diffstat (limited to 'host/lib/usrp/multi_usrp_python.hpp')
-rw-r--r--host/lib/usrp/multi_usrp_python.hpp24
1 files changed, 9 insertions, 15 deletions
diff --git a/host/lib/usrp/multi_usrp_python.hpp b/host/lib/usrp/multi_usrp_python.hpp
index 48da794fb..c9d89888b 100644
--- a/host/lib/usrp/multi_usrp_python.hpp
+++ b/host/lib/usrp/multi_usrp_python.hpp
@@ -14,18 +14,11 @@
void export_multi_usrp(py::module& m)
{
using multi_usrp = uhd::usrp::multi_usrp;
- using register_info_t = multi_usrp::register_info_t;
const auto ALL_MBOARDS = multi_usrp::ALL_MBOARDS;
const auto ALL_CHANS = multi_usrp::ALL_CHANS;
const auto ALL_LOS = multi_usrp::ALL_LOS;
- py::class_<register_info_t>(m, "register_info")
- .def_readwrite("bitwidth", &register_info_t::bitwidth)
- .def_readwrite("readable", &register_info_t::readable)
- .def_readwrite("writable", &register_info_t::writable)
- ;
-
py::class_<multi_usrp, multi_usrp::sptr>(m, "multi_usrp")
// Factory
@@ -172,18 +165,19 @@ void export_multi_usrp(py::module& m)
// GPIO methods
.def("get_gpio_banks" , &multi_usrp::get_gpio_banks)
- .def("set_gpio_attr" , (void (multi_usrp::*)(const std::string&, const std::string&, const std::string&, const uint32_t, const size_t)) &multi_usrp::set_gpio_attr, py::arg("bank"), py::arg("attr"), py::arg("value"), py::arg("mask") = 0xffffffff, py::arg("mboard") = 0)
.def("set_gpio_attr" , (void (multi_usrp::*)(const std::string&, const std::string&, const uint32_t, const uint32_t, const size_t)) &multi_usrp::set_gpio_attr, py::arg("bank"), py::arg("attr"), py::arg("value"), py::arg("mask") = 0xffffffff, py::arg("mboard") = 0)
.def("get_gpio_attr" , &multi_usrp::get_gpio_attr, py::arg("bank"), py::arg("attr"), py::arg("mboard") = 0)
- .def("enumerate_registers" , &multi_usrp::enumerate_registers, py::arg("mboard") = 0)
- .def("get_register_info" , &multi_usrp::get_register_info, py::arg("path"), py::arg("mboard") = 0)
- .def("write_register" , &multi_usrp::write_register, py::arg("path"), py::arg("field"), py::arg("value"), py::arg("mboard") = 0)
- .def("read_register" , &multi_usrp::read_register, py::arg("path"), py::arg("field"), py::arg("mboard") = 0)
+ .def("get_gpio_srcs" , &multi_usrp::get_gpio_srcs, py::arg("bank"), py::arg("mboard") = 0)
+ .def("get_gpio_src" , &multi_usrp::get_gpio_src, py::arg("bank"), py::arg("mboard") = 0)
+ .def("set_gpio_src" , &multi_usrp::set_gpio_src, py::arg("bank"), py::arg("src"), py::arg("mboard") = 0)
// Filter API methods
- .def("get_filter_names" , &multi_usrp::get_filter_names, py::arg("search_mask") = "")
- .def("get_filter" , &multi_usrp::get_filter)
- .def("set_filter" , &multi_usrp::set_filter)
+ .def("get_rx_filter_names" , &multi_usrp::get_rx_filter_names)
+ .def("get_rx_filter" , &multi_usrp::get_rx_filter)
+ .def("set_rx_filter" , &multi_usrp::set_rx_filter)
+ .def("get_tx_filter_names" , &multi_usrp::get_tx_filter_names)
+ .def("get_tx_filter" , &multi_usrp::get_tx_filter)
+ .def("set_tx_filter" , &multi_usrp::set_tx_filter)
;
}