aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/UHD.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2019-03-14 08:32:26 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2019-03-14 08:32:26 +0100
commit35599ee9c8a2822c0f480673b4d8d8e87049094c (patch)
tree56be40a6f632dd5cdf00e902e3b1fa2d30cccdd1 /src/output/UHD.cpp
parente0992467867e4832b3333fb0cb5a638d05250bd3 (diff)
downloaddabmod-35599ee9c8a2822c0f480673b4d8d8e87049094c.tar.gz
dabmod-35599ee9c8a2822c0f480673b4d8d8e87049094c.tar.bz2
dabmod-35599ee9c8a2822c0f480673b4d8d8e87049094c.zip
Add analog bandwidth configuration to UHD and Soapy outputs
Diffstat (limited to 'src/output/UHD.cpp')
-rw-r--r--src/output/UHD.cpp23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/output/UHD.cpp b/src/output/UHD.cpp
index c6c500b..e85e66f 100644
--- a/src/output/UHD.cpp
+++ b/src/output/UHD.cpp
@@ -2,7 +2,7 @@
Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Her Majesty the
Queen in Right of Canada (Communications Research Center Canada)
- Copyright (C) 2018
+ Copyright (C) 2019
Matthias P. Braendli, matthias.braendli@mpb.li
http://opendigitalradio.org
@@ -193,6 +193,15 @@ UHD::UHD(SDRDeviceConfig& config) :
throw std::runtime_error("Cannot set USRP sample rate. Aborted.");
}
+ if (m_conf.bandwidth > 0) {
+ m_usrp->set_tx_bandwidth(m_conf.bandwidth);
+ m_usrp->set_rx_bandwidth(m_conf.bandwidth);
+
+ etiLog.level(info) << "OutputUHD:Actual TX bandwidth: " <<
+ std::fixed << std::setprecision(2) <<
+ m_usrp->get_tx_bandwidth();
+ }
+
tune(m_conf.lo_offset, m_conf.frequency);
m_conf.frequency = m_usrp->get_tx_freq();
@@ -294,6 +303,18 @@ double UHD::get_txgain(void) const
return m_usrp->get_tx_gain();
}
+void UHD::set_bandwidth(double bandwidth)
+{
+ m_usrp->set_tx_bandwidth(bandwidth);
+ m_usrp->set_rx_bandwidth(bandwidth);
+ m_conf.bandwidth = m_usrp->get_tx_bandwidth();
+}
+
+double UHD::get_bandwidth(void) const
+{
+ return m_usrp->get_tx_bandwidth();
+}
+
void UHD::transmit_frame(const struct FrameData& frame)
{
const double tx_timeout = 20.0;