diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp b/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp index 5d9e3fdca..55a743c73 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.cpp @@ -17,6 +17,7 @@ #include #include "device/devicesourceapi.h" +#include "plutosdrinput.h" #include "ui_plutosdrinputgui.h" #include "plutosdrinputgui.h" @@ -24,8 +25,40 @@ PlutoSDRInputGui::PlutoSDRInputGui(DeviceSourceAPI *deviceAPI, QWidget* parent) QWidget(parent), ui(new Ui::PlutoSDRInputGUI), m_deviceAPI(deviceAPI), - m_settings() + m_settings(), + m_forceSettings(true), + m_sampleSource(NULL), + m_sampleRate(0), + m_deviceCenterFrequency(0), + m_lastEngineState((DSPDeviceSourceEngine::State)-1) { + m_sampleSource = new PlutoSDRInput(m_deviceAPI); + m_deviceAPI->setSource(m_sampleSource); + + float minF, maxF, stepF; + // TODO: call device core to get values + minF = 100000; + maxF = 4000000; + stepF = 1000; + + ui->setupUi(this); + ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::GrayGold)); + ui->centerFrequency->setValueRange(7, 325000U, 3800000U); + + ui->sampleRate->setColorMapper(ColorMapper(ColorMapper::GrayGreenYellow)); + ui->sampleRate->setValueRange(8, (uint32_t) minF, (uint32_t) maxF); + + ui->lpf->setColorMapper(ColorMapper(ColorMapper::GrayYellow)); + ui->lpf->setValueRange(6, (minF/1000)+1, maxF/1000); + + ui->lpFIR->setColorMapper(ColorMapper(ColorMapper::GrayYellow)); + ui->lpFIR->setValueRange(5, 1U, 56000U); + + connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(updateHardware())); + connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus())); + m_statusTimer.start(500); + + connect(m_deviceAPI->getDeviceOutputMessageQueue(), SIGNAL(messageEnqueued()), this, SLOT(handleDSPMessages()), Qt::QueuedConnection); } PlutoSDRInputGui::~PlutoSDRInputGui() diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.h b/plugins/samplesource/plutosdrinput/plutosdrinputgui.h index b312705b4..79fb70d2b 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.h +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.h @@ -17,13 +17,16 @@ #ifndef PLUGINS_SAMPLESOURCE_PLUTOSDRINPUT_PLUTOSDRINPUTGUI_H_ #define PLUGINS_SAMPLESOURCE_PLUTOSDRINPUT_PLUTOSDRINPUTGUI_H_ -#include #include #include +#include + +#include #include "plutosdrinputsettings.h" class DeviceSourceAPI; +class DeviceSampleSource; namespace Ui { class PlutoSDRInputGUI; @@ -50,6 +53,13 @@ private: Ui::PlutoSDRInputGUI* ui; DeviceSourceAPI* m_deviceAPI; PlutoSDRInputSettings m_settings; + bool m_forceSettings; + QTimer m_updateTimer; + QTimer m_statusTimer; + DeviceSampleSource* m_sampleSource; + int m_sampleRate; + quint64 m_deviceCenterFrequency; //!< Center frequency in device + int m_lastEngineState; }; #endif /* PLUGINS_SAMPLESOURCE_PLUTOSDRINPUT_PLUTOSDRINPUTGUI_H_ */ diff --git a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui index 233c8c532..0580cc607 100644 --- a/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui +++ b/plugins/samplesource/plutosdrinput/plutosdrinputgui.ui @@ -297,7 +297,7 @@ - + 2 @@ -399,14 +399,14 @@ - + Fc - + 55 @@ -446,6 +446,10 @@ + + + + @@ -496,23 +500,19 @@ - - - - - - Qt::Horizontal - - - - - - - 2 - - - 2 - + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -548,6 +548,7 @@ Analog lowpass filer bandwidth (kHz) + lpfUnits @@ -557,6 +558,23 @@ + + + + + + Qt::Horizontal + + + + + + + 2 + + + 2 + @@ -596,7 +614,7 @@ - + kHz @@ -663,6 +681,19 @@ + + + + Qt::Horizontal + + + + 40 + 20 + + + +