aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib/usrp/multi_usrp_rfnoc.cpp
diff options
context:
space:
mode:
authorMartin Braun <martin.braun@ettus.com>2019-10-24 10:35:16 -0700
committerMartin Braun <martin.braun@ettus.com>2019-11-26 12:21:33 -0800
commitd5580fcec8611a83336d9634bd81b49e77635f68 (patch)
tree1516de69ea1891bb11205b63ddb319e521df9933 /host/lib/usrp/multi_usrp_rfnoc.cpp
parent4e6177ed5564180fe7a0da705490087e736371b6 (diff)
downloaduhd-d5580fcec8611a83336d9634bd81b49e77635f68.tar.gz
uhd-d5580fcec8611a83336d9634bd81b49e77635f68.tar.bz2
uhd-d5580fcec8611a83336d9634bd81b49e77635f68.zip
multi_usrp: Add set_rx_spp() call
This API call is a more explicit way of setting the spp than passing in an spp value in the args of the stream args when creating streamers. For pre-RFNoC devices, this is done by injecting the spp arg back into the stream args. For RFNoC devices, the set_property() call on the radio is called.
Diffstat (limited to 'host/lib/usrp/multi_usrp_rfnoc.cpp')
-rw-r--r--host/lib/usrp/multi_usrp_rfnoc.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/host/lib/usrp/multi_usrp_rfnoc.cpp b/host/lib/usrp/multi_usrp_rfnoc.cpp
index b3851ba9e..d6f16824d 100644
--- a/host/lib/usrp/multi_usrp_rfnoc.cpp
+++ b/host/lib/usrp/multi_usrp_rfnoc.cpp
@@ -16,8 +16,9 @@
#include <uhd/utils/graph_utils.hpp>
#include <uhdlib/rfnoc/rfnoc_device.hpp>
#include <uhdlib/usrp/gpio_defs.hpp>
+#include <uhdlib/utils/narrow.hpp>
#include <unordered_set>
-#include <boost/pointer_cast.hpp>
+#include <boost/format.hpp>
#include <algorithm>
#include <chrono>
#include <memory>
@@ -1044,6 +1045,20 @@ public:
_rx_rates[chan] = actual_rate;
}
+ void set_rx_spp(const size_t spp, const size_t chan = ALL_CHANS)
+ {
+ std::lock_guard<std::recursive_mutex> l(_graph_mutex);
+ if (chan == ALL_CHANS) {
+ for (size_t chan = 0; chan < _rx_chans.size(); ++chan) {
+ set_rx_spp(spp, chan);
+ }
+ return;
+ }
+ auto rx_chain = _get_rx_chan(chan);
+ rx_chain.radio->set_property<int>(
+ "spp", narrow_cast<int>(spp), rx_chain.block_chan);
+ }
+
double get_rx_rate(size_t chan)
{
std::lock_guard<std::recursive_mutex> l(_graph_mutex);