From f7d7551d010624dfdfa1390a1132e722e770022e Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 18 Feb 2017 11:21:12 +0100 Subject: [PATCH] HackRF support: changed sample rates to sample precision --- devices/hackrf/devicehackrfvalues.cpp | 41 ++++++++++++++++--- devices/hackrf/devicehackrfvalues.h | 2 +- .../hackrfoutput/hackrfoutputgui.cpp | 8 ++-- .../hackrfinput/hackrfinputgui.cpp | 8 ++-- 4 files changed, 45 insertions(+), 14 deletions(-) diff --git a/devices/hackrf/devicehackrfvalues.cpp b/devices/hackrf/devicehackrfvalues.cpp index 4c770c5c7..9ae52aa9c 100644 --- a/devices/hackrf/devicehackrfvalues.cpp +++ b/devices/hackrf/devicehackrfvalues.cpp @@ -16,17 +16,32 @@ #include "devicehackrfvalues.h" -unsigned int HackRFSampleRates::m_rates_k[] = {2400, 3200, 4000, 4800, 5600, 6000, 6400, 8000, 9600, 12000, 12800, 16000, 18000, 19200, 20000}; +unsigned int HackRFSampleRates::m_rates[] = { + 2400000, + 3200000, + 4000000, + 4800000, + 5600000, + 6000000, + 6400000, + 8000000, + 9600000, + 12000000, + 12800000, + 16000000, + 18000000, + 19200000, + 20000000}; unsigned int HackRFSampleRates::getRate(unsigned int rate_index) { if (rate_index < m_nb_rates) { - return m_rates_k[rate_index]; + return m_rates[rate_index]; } else { - return m_rates_k[0]; + return m_rates[0]; } } @@ -34,7 +49,7 @@ unsigned int HackRFSampleRates::getRateIndex(unsigned int rate) { for (unsigned int i=0; i < m_nb_rates; i++) { - if (rate == m_rates_k[i]) + if (rate == m_rates[i]) { return i; } @@ -43,7 +58,23 @@ unsigned int HackRFSampleRates::getRateIndex(unsigned int rate) return 0; } -unsigned int HackRFBandwidths::m_bw_k[] = {1750, 2500, 3500, 5000, 5500, 6000, 7000, 8000, 9000, 10000, 12000, 14000, 15000, 20000, 24000, 28000}; +unsigned int HackRFBandwidths::m_bw_k[] = { + 1750, + 2500, + 3500, + 5000, + 5500, + 6000, + 7000, + 8000, + 9000, + 10000, + 12000, + 14000, + 15000, + 20000, + 24000, + 28000}; unsigned int HackRFBandwidths::getBandwidth(unsigned int bandwidth_index) { diff --git a/devices/hackrf/devicehackrfvalues.h b/devices/hackrf/devicehackrfvalues.h index 613605170..0fcf64d75 100644 --- a/devices/hackrf/devicehackrfvalues.h +++ b/devices/hackrf/devicehackrfvalues.h @@ -22,7 +22,7 @@ public: static unsigned int getRate(unsigned int rate_index); static unsigned int getRateIndex(unsigned int rate); static const unsigned int m_nb_rates = 15; - static unsigned int m_rates_k[m_nb_rates]; + static unsigned int m_rates[m_nb_rates]; }; class HackRFBandwidths { diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp index 9a4ba11cd..a4e0266ce 100644 --- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp +++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp @@ -166,7 +166,7 @@ void HackRFOutputGui::displaySettings() ui->LOppm->setValue(m_settings.m_LOppmTenths); ui->LOppmText->setText(QString("%1").arg(QString::number(m_settings.m_LOppmTenths/10.0, 'f', 1))); - unsigned int sampleRateIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate/1000); + unsigned int sampleRateIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate); ui->sampleRate->setCurrentIndex(sampleRateIndex); ui->biasT->setChecked(m_settings.m_biasT); @@ -183,13 +183,13 @@ void HackRFOutputGui::displaySettings() void HackRFOutputGui::displaySampleRates() { - int savedIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate/1000); + int savedIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate); ui->sampleRate->blockSignals(true); ui->sampleRate->clear(); for (int i = 0; i < HackRFSampleRates::m_nb_rates; i++) { - ui->sampleRate->addItem(QString("%1M").arg(QString::number(HackRFSampleRates::m_rates_k[i]/1000.0, 'f', 1))); + ui->sampleRate->addItem(QString("%1M").arg(QString::number(HackRFSampleRates::m_rates[i] / 1000000.0f, 'f', 1))); } ui->sampleRate->blockSignals(false); @@ -249,7 +249,7 @@ void HackRFOutputGui::on_LOppm_valueChanged(int value) void HackRFOutputGui::on_sampleRate_currentIndexChanged(int index) { int newrate = HackRFSampleRates::getRate(index); - m_settings.m_devSampleRate = newrate * 1000; + m_settings.m_devSampleRate = newrate; sendSettings(); } diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp index 576e254e7..992de106e 100644 --- a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp +++ b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp @@ -178,7 +178,7 @@ void HackRFInputGui::displaySettings() ui->dcOffset->setChecked(m_settings.m_dcBlock); ui->iqImbalance->setChecked(m_settings.m_iqCorrection); - unsigned int sampleRateIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate/1000); + unsigned int sampleRateIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate); ui->sampleRate->setCurrentIndex(sampleRateIndex); ui->biasT->setChecked(m_settings.m_biasT); @@ -200,13 +200,13 @@ void HackRFInputGui::displaySettings() void HackRFInputGui::displaySampleRates() { - int savedIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate/1000); + int savedIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate); ui->sampleRate->blockSignals(true); ui->sampleRate->clear(); for (int i = 0; i < HackRFSampleRates::m_nb_rates; i++) { - ui->sampleRate->addItem(QString("%1M").arg(QString::number(HackRFSampleRates::m_rates_k[i]/1000.0, 'f', 1))); + ui->sampleRate->addItem(QString("%1M").arg(QString::number(HackRFSampleRates::m_rates[i] / 1000000.0f, 'f', 1))); } ui->sampleRate->blockSignals(false); @@ -278,7 +278,7 @@ void HackRFInputGui::on_iqImbalance_toggled(bool checked) void HackRFInputGui::on_sampleRate_currentIndexChanged(int index) { int newrate = HackRFSampleRates::getRate(index); - m_settings.m_devSampleRate = newrate * 1000; + m_settings.m_devSampleRate = newrate; sendSettings(); }