aboutsummaryrefslogtreecommitdiffstats
path: root/src/output/Soapy.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/Soapy.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/Soapy.cpp')
-rw-r--r--src/output/Soapy.cpp28
1 files changed, 25 insertions, 3 deletions
diff --git a/src/output/Soapy.cpp b/src/output/Soapy.cpp
index 8c84b84..4846279 100644
--- a/src/output/Soapy.cpp
+++ b/src/output/Soapy.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
@@ -90,15 +90,23 @@ Soapy::Soapy(SDRDeviceConfig& config) :
std::fixed << std::setprecision(3) <<
m_conf.frequency / 1000.0 << " kHz.";
+ if (m_conf.bandwidth > 0) {
+ m_device->setBandwidth(SOAPY_SDR_TX, 0, m_conf.bandwidth);
+ m_device->setBandwidth(SOAPY_SDR_RX, 0, m_conf.bandwidth);
+ etiLog.level(info) << "SoapySDR:Actual TX bandwidth: " <<
+ std::fixed << std::setprecision(2) <<
+ m_device->getBandwidth(SOAPY_SDR_TX, 0);
+ }
+
m_device->setGain(SOAPY_SDR_TX, 0, m_conf.txgain);
- etiLog.level(info) << "SoapySDR:Actual tx gain: " <<
+ etiLog.level(info) << "SoapySDR:Actual TX gain: " <<
std::fixed << std::setprecision(2) <<
m_device->getGain(SOAPY_SDR_TX, 0);
if (not m_conf.tx_antenna.empty()) {
m_device->setAntenna(SOAPY_SDR_TX, 0, m_conf.tx_antenna);
}
- etiLog.level(info) << "SoapySDR:Actual tx antenna: " <<
+ etiLog.level(info) << "SoapySDR:Actual TX antenna: " <<
m_device->getAntenna(SOAPY_SDR_TX, 0);
if (m_device->hasHardwareTime()) {
@@ -157,6 +165,20 @@ double Soapy::get_txgain(void) const
return m_device->getGain(SOAPY_SDR_TX, 0);
}
+void Soapy::set_bandwidth(double bandwidth)
+{
+ m_conf.bandwidth = bandwidth;
+ if (not m_device) throw runtime_error("Soapy device not set up");
+ m_device->setBandwidth(SOAPY_SDR_TX, 0, m_conf.bandwidth);
+ m_device->setBandwidth(SOAPY_SDR_RX, 0, m_conf.bandwidth);
+}
+
+double Soapy::get_bandwidth(void) const
+{
+ if (not m_device) throw runtime_error("Soapy device not set up");
+ return m_device->getBandwidth(SOAPY_SDR_TX, 0);
+}
+
SDRDevice::RunStatistics Soapy::get_run_statistics(void) const
{
RunStatistics rs;