From c348cc62e0590dfc465d9ad5f09c4facc3462e2a Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 27 Aug 2015 06:27:40 +0200 Subject: [PATCH] Deep redesign: Fixed FCD interface so that it (only) basically works --- plugins/samplesource/fcd/fcdgui.cpp | 8 +++++--- plugins/samplesource/fcd/fcdinput.cpp | 19 +++++++++++++++---- plugins/samplesource/fcd/fcdthread.cpp | 2 +- plugins/samplesource/fcd/fcdthread.h | 2 +- plugins/samplesource/fcd/qthid.h | 2 +- 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/plugins/samplesource/fcd/fcdgui.cpp b/plugins/samplesource/fcd/fcdgui.cpp index 243b6d4e7..8e7c86dd2 100644 --- a/plugins/samplesource/fcd/fcdgui.cpp +++ b/plugins/samplesource/fcd/fcdgui.cpp @@ -1,6 +1,7 @@ #include "fcdgui.h" #include "ui_fcdgui.h" #include "plugin/pluginapi.h" +#include "gui/colormapper.h" #include "dsp/dspengine.h" FCDGui::FCDGui(PluginAPI* pluginAPI, QWidget* parent) : @@ -11,7 +12,8 @@ FCDGui::FCDGui(PluginAPI* pluginAPI, QWidget* parent) : m_sampleSource(NULL) { ui->setupUi(this); - ui->centerFrequency->setValueRange(7, 420000U, 1900000U); + ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); + ui->centerFrequency->setValueRange(7, 64000U, 1700000U); connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(updateHardware())); displaySettings(); @@ -100,7 +102,7 @@ void FCDGui::updateHardware() void FCDGui::on_checkBoxR_stateChanged(int state) { - if (state == Qt::Checked) + if (state == Qt::Checked) // FIXME: this is for the Pro+ version only! { ui->centerFrequency->setValueRange(7, 150U, 240000U); ui->centerFrequency->setValue(7000); @@ -109,7 +111,7 @@ void FCDGui::on_checkBoxR_stateChanged(int state) } else { - ui->centerFrequency->setValueRange(7, 420000U, 1900000U); + ui->centerFrequency->setValueRange(7, 64000U, 1900000U); ui->centerFrequency->setValue(435000); m_settings.centerFrequency = 435000 * 1000; m_settings.range = 0; diff --git a/plugins/samplesource/fcd/fcdinput.cpp b/plugins/samplesource/fcd/fcdinput.cpp index 52ed3abb2..a801162c2 100644 --- a/plugins/samplesource/fcd/fcdinput.cpp +++ b/plugins/samplesource/fcd/fcdinput.cpp @@ -15,6 +15,9 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// +// FIXME: FCD is handled very badly! + +#include #include #include #include "fcdinput.h" @@ -154,6 +157,7 @@ bool FCDInput::handleMessage(const Message& message) { if(MsgConfigureFCD::match(message)) { + qDebug() << "FCDInput::handleMessage: MsgConfigureFCD"; MsgConfigureFCD& conf = (MsgConfigureFCD&) message; applySettings(conf.getSettings(), false); return true; @@ -166,22 +170,29 @@ bool FCDInput::handleMessage(const Message& message) void FCDInput::applySettings(const Settings& settings, bool force) { - bool sampleSourcChange = false; + bool signalChange = false; if ((m_settings.centerFrequency != settings.centerFrequency)) { + qDebug() << "FCDInput::applySettings: fc: " << settings.centerFrequency; m_settings.centerFrequency = settings.centerFrequency; set_center_freq((double) m_settings.centerFrequency); - sampleSourcChange = true; + signalChange = true; } - if (!sampleSourcChange || force) + if ((m_settings.gain != settings.gain) || force) { set_lna_gain(settings.gain > 0); + m_settings.gain = settings.gain; + } + + if ((m_settings.bias != settings.bias) || force) + { set_bias_t(settings.bias > 0); + m_settings.bias = settings.bias; } - if (sampleSourcChange) + if (signalChange) { DSPSignalNotification *notif = new DSPSignalNotification(960000, m_settings.centerFrequency); getOutputMessageQueue()->push(notif); diff --git a/plugins/samplesource/fcd/fcdthread.cpp b/plugins/samplesource/fcd/fcdthread.cpp index a808f2932..46167d6b3 100644 --- a/plugins/samplesource/fcd/fcdthread.cpp +++ b/plugins/samplesource/fcd/fcdthread.cpp @@ -42,7 +42,7 @@ void FCDThread::stopWork() void FCDThread::run() { - if ( !OpenSource("hw:CARD=V20") ) + if ( !OpenSource("hw:CARD=V10") ) // FIXME: original is V10 pro is V20. Make it an option return; // TODO: fallback to original fcd diff --git a/plugins/samplesource/fcd/fcdthread.h b/plugins/samplesource/fcd/fcdthread.h index 0594ac6ff..b993d2296 100644 --- a/plugins/samplesource/fcd/fcdthread.h +++ b/plugins/samplesource/fcd/fcdthread.h @@ -25,7 +25,7 @@ #include "dsp/inthalfbandfilter.h" #include -#define FCDPP_RATE 192000 +#define FCDPP_RATE 192000 // FIXME: The Pro / Pro+ switch should be handled better than this! #define BLOCKSIZE 8192 class FCDThread : public QThread { diff --git a/plugins/samplesource/fcd/qthid.h b/plugins/samplesource/fcd/qthid.h index 3b1f8b54c..0da5074a0 100644 --- a/plugins/samplesource/fcd/qthid.h +++ b/plugins/samplesource/fcd/qthid.h @@ -34,7 +34,7 @@ typedef bool BOOL; -#define FCDPP +//#define FCDPP // FIXME: the Pro / Pro+ switch should be handled better than this! const unsigned short _usVID=0x04D8; /*!< USB vendor ID. */ #ifdef FCDPP const unsigned short _usPID=0xFB31; /*!< USB product ID. */