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

Deep redesign: Better support for FCD dongles #12: finalized support of FCD Pro

This commit is contained in:
f4exb
2015-09-08 01:27:18 +02:00
parent ddd6fb539c
commit f23a115c23
7 changed files with 125 additions and 124 deletions
+19 -13
View File
@@ -40,7 +40,6 @@ void FCDProInput::Settings::resetToDefaults()
{
centerFrequency = 435000000;
LOppmTenths = 0;
biasT = 0;
lnaGainIndex = 0;
rfFilterIndex = 0;
lnaEnhanceIndex = 0;
@@ -65,7 +64,6 @@ QByteArray FCDProInput::Settings::serialize() const
data.m_data.m_frequency = centerFrequency;
data.m_LOppmTenths = LOppmTenths;
data.m_biasT = biasT;
data.m_lnaGainIndex = lnaGainIndex;
data.m_rfFilterIndex = rfFilterIndex;
data.m_lnaEnhanceIndex = lnaEnhanceIndex;
@@ -98,12 +96,12 @@ bool FCDProInput::Settings::deserialize(const QByteArray& serializedData)
centerFrequency = data.m_data.m_frequency;
LOppmTenths = data.m_LOppmTenths;
biasT = data.m_biasT;
lnaGainIndex = data.m_lnaGainIndex;
rfFilterIndex = data.m_rfFilterIndex;
lnaEnhanceIndex = data.m_lnaEnhanceIndex;
bandIndex = data.m_bandIndex;
mixerGainIndex = data.m_mixerGainIndex;
mixerFilterIndex = data.m_mixerFilterIndex;
biasCurrentIndex = data.m_biasCurrentIndex;
modeIndex = data.m_modeIndex;
gain1Index = data.m_gain1Index;
@@ -246,16 +244,6 @@ void FCDProInput::applySettings(const Settings& settings, bool force)
signalChange = true;
}
if ((m_settings.biasT != settings.biasT) || force)
{
m_settings.biasT = settings.biasT;
if (m_dev != 0)
{
set_bias_t(settings.biasT > 0);
}
}
if ((m_settings.lnaGainIndex != settings.lnaGainIndex) || force)
{
m_settings.lnaGainIndex = settings.lnaGainIndex;
@@ -416,6 +404,16 @@ void FCDProInput::applySettings(const Settings& settings, bool force)
}
}
if ((m_settings.LOppmTenths != settings.LOppmTenths) || force)
{
m_settings.LOppmTenths = settings.LOppmTenths;
if (m_dev != 0)
{
set_lo_ppm();
}
}
if (signalChange)
{
DSPSignalNotification *notif = new DSPSignalNotification(fcd_traits<Pro>::sampleRate, m_settings.centerFrequency);
@@ -425,10 +423,13 @@ void FCDProInput::applySettings(const Settings& settings, bool force)
void FCDProInput::set_center_freq(double freq)
{
freq += freq*(((double) m_settings.LOppmTenths)/10000000.0);
if (fcdAppSetFreq(m_dev, freq) == FCD_MODE_NONE)
{
qDebug("No FCD HID found for frquency change");
}
}
void FCDProInput::set_bias_t(bool on)
@@ -679,3 +680,8 @@ void FCDProInput::set_gain6(int index)
qWarning() << "FCDProPlusInput::set_gain6: failed to set at " << cmd_value;
}
}
void FCDProInput::set_lo_ppm()
{
set_center_freq((double) m_settings.centerFrequency);
}