1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 21:54:55 -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
+26 -20
View File
@@ -332,14 +332,24 @@ void FCDProInput::applySettings(const FCDProSettings& settings, bool force)
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<Pro>::sampleRate,
settings.m_transverterMode);
if (m_dev != 0)
{
@@ -366,6 +376,17 @@ void FCDProInput::applySettings(const FCDProSettings& settings, bool force)
}
}
if ((m_settings.m_fcPos != settings.m_fcPos) || force)
{
reverseAPIKeys.append("fcPos");
if (m_FCDThread != 0) {
m_FCDThread->setFcPos((int) settings.m_fcPos);
}
qDebug() << "FCDProInput::applySettings: set fc pos (enum) to " << (int) settings.m_fcPos;
}
if ((m_settings.m_lnaGainIndex != settings.m_lnaGainIndex) || force)
{
reverseAPIKeys.append("lnaGainIndex");
@@ -510,16 +531,6 @@ void FCDProInput::applySettings(const FCDProSettings& settings, bool force)
}
}
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");
@@ -812,11 +823,6 @@ void FCDProInput::set_gain6(int index)
}
}
void FCDProInput::set_lo_ppm()
{
set_center_freq((double) m_settings.m_centerFrequency);
}
int FCDProInput::webapiRunGet(
SWGSDRangel::SWGDeviceState& response,
QString& errorMessage)