From 73c0b5516a4f5669f8f249ddb383e67eb8cf76ca Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 10 May 2018 14:58:07 +0200 Subject: [PATCH] BladeRF input: rework of center frequency setting --- .../bladerfinput/bladerfinput.cpp | 50 +++++-------------- 1 file changed, 12 insertions(+), 38 deletions(-) diff --git a/plugins/samplesource/bladerfinput/bladerfinput.cpp b/plugins/samplesource/bladerfinput/bladerfinput.cpp index 1a9f5ef1a..5fa0dbafd 100644 --- a/plugins/samplesource/bladerfinput/bladerfinput.cpp +++ b/plugins/samplesource/bladerfinput/bladerfinput.cpp @@ -534,55 +534,29 @@ bool BladerfInput::applySettings(const BladeRFInputSettings& settings, bool forc } if ((m_settings.m_centerFrequency != settings.m_centerFrequency) + || (m_settings.m_devSampleRate != settings.m_devSampleRate) || (m_settings.m_fcPos != settings.m_fcPos) || (m_settings.m_log2Decim != settings.m_log2Decim) || force) { + qint64 deviceCenterFrequency = DeviceSampleSource::calculateDeviceCenterFrequency( + settings.m_centerFrequency, + 0, + settings.m_log2Decim, + (DeviceSampleSource::fcPos_t) settings.m_fcPos, + settings.m_devSampleRate); + m_settings.m_centerFrequency = settings.m_centerFrequency; m_settings.m_log2Decim = settings.m_log2Decim; m_settings.m_fcPos = settings.m_fcPos; - qint64 deviceCenterFrequency = m_settings.m_centerFrequency; - deviceCenterFrequency = deviceCenterFrequency < 0 ? 0 : deviceCenterFrequency; - qint64 f_img = deviceCenterFrequency; - qint64 f_cut = deviceCenterFrequency + m_settings.m_bandwidth/2; - quint32 devSampleRate = m_settings.m_devSampleRate; - forwardChange = true; - if ((m_settings.m_log2Decim == 0) || (settings.m_fcPos == BladeRFInputSettings::FC_POS_CENTER)) - { - f_img = deviceCenterFrequency; - } - else - { - if (settings.m_fcPos == BladeRFInputSettings::FC_POS_INFRA) - { - deviceCenterFrequency += (devSampleRate / 4); - f_img = deviceCenterFrequency + devSampleRate/2; - } - else if (settings.m_fcPos == BladeRFInputSettings::FC_POS_SUPRA) - { - deviceCenterFrequency -= (devSampleRate / 4); - f_img = deviceCenterFrequency - devSampleRate/2; - } - } - if (m_dev != 0) { - if (bladerf_set_frequency( m_dev, BLADERF_MODULE_RX, deviceCenterFrequency ) != 0) - { - qDebug("BladerfInput::applySettings: bladerf_set_frequency(%lld) failed", m_settings.m_centerFrequency); - } - else - { - qDebug() << "BladerfInput::applySettings: center freq: " << m_settings.m_centerFrequency << " Hz" - << " device center freq: " << deviceCenterFrequency << " Hz" - << " device sample rate: " << m_settings.m_devSampleRate << "S/s" - << " Actual sample rate: " << m_settings.m_devSampleRate/(1<