diff options
author | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-03-14 08:32:26 +0100 |
---|---|---|
committer | Matthias P. Braendli <matthias.braendli@mpb.li> | 2019-03-14 08:32:26 +0100 |
commit | 35599ee9c8a2822c0f480673b4d8d8e87049094c (patch) | |
tree | 56be40a6f632dd5cdf00e902e3b1fa2d30cccdd1 /src/output/UHD.cpp | |
parent | e0992467867e4832b3333fb0cb5a638d05250bd3 (diff) | |
download | dabmod-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.cpp | 23 |
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; |