From 470e11a1f8a2f8f4b5cef39f7bf77d83c71966d8 Mon Sep 17 00:00:00 2001 From: Martin Braun Date: Tue, 9 Jun 2020 16:30:26 +0200 Subject: filter API: Fix Python bindings and multi_usrp calls This fixes the following issues: - The Python bindings did not declare parents for the various filter object classes properly. This meant that set_?x_filter wouldn't work, because the user would pass a specific type (e.g., analog_filter_lp), but the class would not recognize it as a filter_info_base. - In multi_usrp.cpp, filter names are also property tree paths to make them unique. However, the setters and getters for filters would then prepend the FE path again, thus breaking those calls. --- host/lib/usrp/multi_usrp.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'host/lib/usrp/multi_usrp.cpp') diff --git a/host/lib/usrp/multi_usrp.cpp b/host/lib/usrp/multi_usrp.cpp index c41b31083..04d054b60 100644 --- a/host/lib/usrp/multi_usrp.cpp +++ b/host/lib/usrp/multi_usrp.cpp @@ -1905,8 +1905,7 @@ public: throw uhd::runtime_error("Attempting to get non-existing filter: " + name); } - return _tree->access(rx_rf_fe_root(chan) / name / "value") - .get(); + return _tree->access(fs_path(name) / "value").get(); } void set_rx_filter( @@ -1919,8 +1918,7 @@ public: throw uhd::runtime_error("Attempting to set non-existing filter: " + name); } - _tree->access(rx_rf_fe_root(chan) / name / "value") - .set(filter); + _tree->access(fs_path(name) / "value").set(filter); } std::vector get_tx_filter_names(const size_t chan) -- cgit v1.2.3