1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 13:47:01 -04:00

FCD: added decimation and center frequency shift

This commit is contained in:
f4exb
2019-01-05 00:31:16 +01:00
parent 050ae9d2e8
commit 65e7519cd1
19 changed files with 424 additions and 125 deletions
@@ -334,14 +334,24 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
if (force || (m_settings.m_transverterDeltaFrequency != settings.m_transverterDeltaFrequency)) {
reverseAPIKeys.append("transverterDeltaFrequency");
}
if ((m_settings.m_LOppmTenths != settings.m_LOppmTenths) || force) {
reverseAPIKeys.append("LOppmTenths");
}
if (force || (m_settings.m_centerFrequency != settings.m_centerFrequency)
|| (m_settings.m_transverterMode != settings.m_transverterMode)
|| (m_settings.m_transverterDeltaFrequency != settings.m_transverterDeltaFrequency))
|| (m_settings.m_LOppmTenths != settings.m_LOppmTenths)
|| (m_settings.m_fcPos != settings.m_fcPos)
|| (m_settings.m_log2Decim != settings.m_log2Decim)
|| (m_settings.m_transverterMode != settings.m_transverterMode)
|| (m_settings.m_transverterDeltaFrequency != settings.m_transverterDeltaFrequency))
{
qint64 deviceCenterFrequency = settings.m_centerFrequency;
deviceCenterFrequency -= settings.m_transverterMode ? settings.m_transverterDeltaFrequency : 0;
deviceCenterFrequency = deviceCenterFrequency < 0 ? 0 : deviceCenterFrequency;
qint64 deviceCenterFrequency = DeviceSampleSource::calculateDeviceCenterFrequency(
settings.m_centerFrequency,
settings.m_transverterDeltaFrequency,
settings.m_log2Decim,
(DeviceSampleSource::fcPos_t) settings.m_fcPos,
fcd_traits<ProPlus>::sampleRate,
settings.m_transverterMode);
if (m_dev != 0) {
set_center_freq((double) deviceCenterFrequency);
@@ -367,6 +377,17 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
}
}
if ((m_settings.m_fcPos != settings.m_fcPos) || force)
{
reverseAPIKeys.append("fcPos");
if (m_FCDThread != 0) {
m_FCDThread->setFcPos((int) settings.m_fcPos);
}
qDebug() << "FCDProPlusInput::applySettings: set fc pos (enum) to " << (int) settings.m_fcPos;
}
if ((m_settings.m_lnaGain != settings.m_lnaGain) || force)
{
reverseAPIKeys.append("lnaGain");
@@ -421,16 +442,6 @@ void FCDProPlusInput::applySettings(const FCDProPlusSettings& settings, bool for
}
}
if ((m_settings.m_LOppmTenths != settings.m_LOppmTenths) || force)
{
reverseAPIKeys.append("LOppmTenths");
m_settings.m_LOppmTenths = settings.m_LOppmTenths;
if (m_dev != 0) {
set_lo_ppm();
}
}
if ((m_settings.m_dcBlock != settings.m_dcBlock) || force)
{
reverseAPIKeys.append("dcBlock");
@@ -539,11 +550,6 @@ void FCDProPlusInput::set_rf_filter(int filterIndex)
}
}
void FCDProPlusInput::set_lo_ppm()
{
set_center_freq((double) m_settings.m_centerFrequency);
}
int FCDProPlusInput::webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage)