From 65cccbdd75585bb1f97fdb597731fed31d05744f Mon Sep 17 00:00:00 2001 From: f4exb Date: Tue, 18 Apr 2017 13:50:28 +0200 Subject: [PATCH] LimeSDR input: perform automatic calibration after configuration change --- .../limesdrinput/limesdrinput.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/plugins/samplesource/limesdrinput/limesdrinput.cpp b/plugins/samplesource/limesdrinput/limesdrinput.cpp index 07e9e90a9..26f6f89b6 100644 --- a/plugins/samplesource/limesdrinput/limesdrinput.cpp +++ b/plugins/samplesource/limesdrinput/limesdrinput.cpp @@ -311,6 +311,7 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc bool forwardChangeOwnDSP = false; bool forwardChangeRxDSP = false; bool forwardChangeAllDSP = false; + bool doCalibration = false; // QMutexLocker mutexLocker(&m_mutex); if ((m_settings.m_dcBlock != settings.m_dcBlock) || force) @@ -340,6 +341,7 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc } else { + doCalibration = true; qDebug() << "LimeSDRInput::applySettings: Gain set to " << m_settings.m_gain; } } @@ -369,6 +371,7 @@ bool LimeSDRInput::applySettings(const LimeSDRInputSettings& settings, bool forc { m_deviceShared.m_deviceParams->m_log2OvSRRx = m_settings.m_log2HardDecim; m_deviceShared.m_deviceParams->m_sampleRate = m_settings.m_devSampleRate; + doCalibration = true; qDebug("LimeSDRInput::applySettings: set sample rate set to %d with oversampling of %d", m_settings.m_devSampleRate, 1<getDevice(), + LMS_CH_RX, + m_deviceShared.m_channel, + m_settings.m_lpfBW, + 0) < 0) + { + qCritical("LimeSDRInput::applySettings: calibration failed on Rx channel %lu", m_deviceShared.m_channel); + } + else + { + qDebug("LimeSDRInput::applySettings: calibration successful on Rx channel %lu", m_deviceShared.m_channel); + } + } + if (forwardChangeAllDSP) { const std::vector& sourceBuddies = m_deviceAPI->getSourceBuddies();