diff --git a/include-gpl/mainwindow.h b/include-gpl/mainwindow.h index 30d3018fc..f58fd2177 100644 --- a/include-gpl/mainwindow.h +++ b/include-gpl/mainwindow.h @@ -123,8 +123,6 @@ private slots: void on_action_Stop_triggered(); void on_action_Start_Recording_triggered(); void on_action_Stop_Recording_triggered(); - void on_dcOffset_toggled(bool checked); - void on_iqImbalance_toggled(bool checked); void on_action_View_Fullscreen_toggled(bool checked); void on_presetSave_clicked(); void on_presetUpdate_clicked(); diff --git a/include-gpl/settings/preset.h b/include-gpl/settings/preset.h index ad87e206d..9f33d78f6 100644 --- a/include-gpl/settings/preset.h +++ b/include-gpl/settings/preset.h @@ -37,15 +37,6 @@ public: void setLayout(const QByteArray& data) { m_layout = data; } const QByteArray& getLayout() const { return m_layout; } - void setDCOffsetCorrection(bool value) { m_dcOffsetCorrection = value; } - bool getDCOffsetCorrection() const { return m_dcOffsetCorrection; } - - void setIQImbalanceCorrection(bool value) { m_iqImbalanceCorrection = value; } - bool getIQImbalanceCorrection() const { return m_iqImbalanceCorrection; } - - void setScopeConfig(const QByteArray& data) { m_scopeConfig = data; } - const QByteArray& getScopeConfig() const { return m_scopeConfig; } - void clearChannels() { m_channelConfigs.clear(); } void addChannel(const QString& channel, const QByteArray& config) { m_channelConfigs.append(ChannelConfig(channel, config)); } int getChannelCount() const { return m_channelConfigs.count(); } @@ -67,7 +58,6 @@ protected: // general configuration QByteArray m_spectrumConfig; - QByteArray m_scopeConfig; // dc offset and i/q imbalance correction TODO: move it into the source data bool m_dcOffsetCorrection; diff --git a/plugins/channel/wfm/wfmdemodgui.cpp b/plugins/channel/wfm/wfmdemodgui.cpp index 4c9d8247c..c19c66477 100644 --- a/plugins/channel/wfm/wfmdemodgui.cpp +++ b/plugins/channel/wfm/wfmdemodgui.cpp @@ -214,6 +214,9 @@ WFMDemodGUI::WFMDemodGUI(PluginAPI* pluginAPI, QWidget* parent) : m_basicSettingsShown(false) { ui->setupUi(this); + ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold)); + ui->deltaFrequency->setValueRange(7, 0U, 9999999U); + setAttribute(Qt::WA_DeleteOnClose, true); connect(this, SIGNAL(widgetRolled(QWidget*,bool)), this, SLOT(onWidgetRolled(QWidget*,bool))); connect(this, SIGNAL(menuDoubleClickEvent()), this, SLOT(onMenuDoubleClicked())); diff --git a/plugins/samplesource/hackrf/hackrfgui.cpp b/plugins/samplesource/hackrf/hackrfgui.cpp index ed7d92c6b..fc00d8652 100644 --- a/plugins/samplesource/hackrf/hackrfgui.cpp +++ b/plugins/samplesource/hackrf/hackrfgui.cpp @@ -113,6 +113,9 @@ void HackRFGui::displaySettings() ui->LOppm->setValue(m_settings.m_LOppmTenths); ui->LOppmText->setText(QString("%1").arg(QString::number(m_settings.m_LOppmTenths/10.0, 'f', 1))); + ui->dcOffset->setChecked(m_settings.m_dcBlock); + ui->iqImbalance->setChecked(m_settings.m_iqCorrection); + ui->sampleRate->setCurrentIndex(m_settings.m_devSampleRateIndex); ui->biasT->setChecked(m_settings.m_biasT); @@ -197,6 +200,18 @@ void HackRFGui::on_LOppm_valueChanged(int value) sendSettings(); } +void HackRFGui::on_dcOffset_toggled(bool checked) +{ + m_settings.m_dcBlock = checked; + sendSettings(); +} + +void HackRFGui::on_iqImbalance_toggled(bool checked) +{ + m_settings.m_iqCorrection = checked; + sendSettings(); +} + void HackRFGui::on_sampleRate_currentIndexChanged(int index) { m_settings.m_devSampleRateIndex = index; diff --git a/plugins/samplesource/hackrf/hackrfgui.h b/plugins/samplesource/hackrf/hackrfgui.h index bc2e77e2e..6355bd8b6 100644 --- a/plugins/samplesource/hackrf/hackrfgui.h +++ b/plugins/samplesource/hackrf/hackrfgui.h @@ -72,6 +72,8 @@ private: private slots: void on_centerFrequency_changed(quint64 value); void on_LOppm_valueChanged(int value); + void on_dcOffset_toggled(bool checked); + void on_iqImbalance_toggled(bool checked); void on_sampleRate_currentIndexChanged(int index); void on_biasT_stateChanged(int state); void on_decim_valueChanged(int value); diff --git a/plugins/samplesource/hackrf/hackrfgui.ui b/plugins/samplesource/hackrf/hackrfgui.ui index 617594c13..7417029ca 100644 --- a/plugins/samplesource/hackrf/hackrfgui.ui +++ b/plugins/samplesource/hackrf/hackrfgui.ui @@ -6,8 +6,8 @@ 0 0 - 215 - 220 + 256 + 218 @@ -136,6 +136,37 @@ + + + + + + DC Offset auto correction + + + DC Offset + + + + + + + IQ Imbalance auto correction + + + IQ Imbalance + + + + + + + Auto corr + + + + + @@ -148,13 +179,6 @@ 3 - - - - Bias T - - - @@ -175,6 +199,29 @@ + + + + BBF + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + @@ -224,7 +271,7 @@ - + 3 @@ -235,19 +282,6 @@ - - - - Qt::Horizontal - - - - 40 - 20 - - - - @@ -268,6 +302,16 @@ + + + Qt::RightToLeft + + + Bias T + + + + Extra LNA +14dB @@ -350,36 +394,6 @@ - - - - 3 - - - - - BBF - - - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - @@ -441,6 +455,11 @@
gui/valuedial.h
1 + + ButtonSwitch + QToolButton +
gui/buttonswitch.h
+
diff --git a/plugins/samplesource/hackrf/hackrfinput.cpp b/plugins/samplesource/hackrf/hackrfinput.cpp index d711b26ca..3df7d04e0 100644 --- a/plugins/samplesource/hackrf/hackrfinput.cpp +++ b/plugins/samplesource/hackrf/hackrfinput.cpp @@ -180,6 +180,18 @@ bool HackRFInput::applySettings(const HackRFSettings& settings, bool force) qDebug() << "HackRFInput::applySettings"; + if (m_settings.m_dcBlock != settings.m_dcBlock) + { + m_settings.m_dcBlock = settings.m_dcBlock; + DSPEngine::instance()->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqCorrection); + } + + if (m_settings.m_iqCorrection != settings.m_iqCorrection) + { + m_settings.m_iqCorrection = settings.m_iqCorrection; + DSPEngine::instance()->configureCorrections(m_settings.m_dcBlock, m_settings.m_iqCorrection); + } + if ((m_settings.m_devSampleRateIndex != settings.m_devSampleRateIndex) || force) { forwardChange = true; diff --git a/plugins/samplesource/hackrf/hackrfsettings.cpp b/plugins/samplesource/hackrf/hackrfsettings.cpp index 096f397f8..7de8b3553 100644 --- a/plugins/samplesource/hackrf/hackrfsettings.cpp +++ b/plugins/samplesource/hackrf/hackrfsettings.cpp @@ -82,6 +82,8 @@ bool HackRFSettings::deserialize(const QByteArray& data) d.readU32(7, &m_lnaGain, 16); d.readU32(8, &m_bandwidthIndex, 0); d.readU32(9, &m_vgaGain, 16); + d.readBool(10, &m_dcBlock, false); + d.readBool(11, &m_iqCorrection, false); return true; } diff --git a/sdrbase/mainwindow.cpp b/sdrbase/mainwindow.cpp index a799172a3..e0c6c0672 100644 --- a/sdrbase/mainwindow.cpp +++ b/sdrbase/mainwindow.cpp @@ -68,21 +68,21 @@ MainWindow::MainWindow(QWidget* parent) : // work around broken Qt dock widget ordering removeDockWidget(ui->inputDock); - removeDockWidget(ui->processingDock); + removeDockWidget(ui->rxDisplayDock); removeDockWidget(ui->presetDock); removeDockWidget(ui->channelDock); addDockWidget(Qt::LeftDockWidgetArea, ui->inputDock); - addDockWidget(Qt::LeftDockWidgetArea, ui->processingDock); + addDockWidget(Qt::LeftDockWidgetArea, ui->rxDisplayDock); addDockWidget(Qt::LeftDockWidgetArea, ui->presetDock); addDockWidget(Qt::RightDockWidgetArea, ui->channelDock); ui->inputDock->show(); - ui->processingDock->show(); + ui->rxDisplayDock->show(); ui->presetDock->show(); ui->channelDock->show(); ui->menu_Window->addAction(ui->inputDock->toggleViewAction()); - ui->menu_Window->addAction(ui->processingDock->toggleViewAction()); + ui->menu_Window->addAction(ui->rxDisplayDock->toggleViewAction()); ui->menu_Window->addAction(ui->presetDock->toggleViewAction()); ui->menu_Window->addAction(ui->channelDock->toggleViewAction()); @@ -211,8 +211,6 @@ void MainWindow::loadPresetSettings(const Preset* preset) qDebug() << "MainWindow::loadPresetSettings: preset: " << preset->getSource().toStdString().c_str(); ui->glSpectrumGUI->deserialize(preset->getSpectrumConfig()); - ui->dcOffset->setChecked(preset->getDCOffsetCorrection()); - ui->iqImbalance->setChecked(preset->getIQImbalanceCorrection()); m_pluginManager->loadSettings(preset); @@ -433,18 +431,6 @@ void MainWindow::on_action_Stop_Recording_triggered() m_fileSink->stopRecording(); } -void MainWindow::on_dcOffset_toggled(bool checked) -{ - m_settings.getCurrent()->setDCOffsetCorrection(checked); - m_dspEngine->configureCorrections(m_settings.getCurrent()->getDCOffsetCorrection(), m_settings.getCurrent()->getIQImbalanceCorrection()); -} - -void MainWindow::on_iqImbalance_toggled(bool checked) -{ - m_settings.getCurrent()->setIQImbalanceCorrection(checked); - m_dspEngine->configureCorrections(m_settings.getCurrent()->getDCOffsetCorrection(), m_settings.getCurrent()->getIQImbalanceCorrection()); -} - void MainWindow::on_action_View_Fullscreen_toggled(bool checked) { if(checked) diff --git a/sdrbase/mainwindow.ui b/sdrbase/mainwindow.ui index 477bc25a6..b5b761490 100644 --- a/sdrbase/mainwindow.ui +++ b/sdrbase/mainwindow.ui @@ -256,9 +256,9 @@
- + - Processing and Display + Rx Display 1 @@ -286,45 +286,6 @@ 2 - - - - 3 - - - - - - 0 - 0 - - - - Compensate DC offset - - - DC Offset Corr - - - - - - - - 0 - 0 - - - - Compensate I/Q imbalance - - - I/Q Imbal. Corr - - - - - @@ -492,11 +453,6 @@
gui/glspectrumgui.h
1 - - ButtonSwitch - QToolButton -
gui/buttonswitch.h
-
ChannelWindow QWidget @@ -509,8 +465,6 @@ presetSave presetDelete presetLoad - dcOffset - iqImbalance diff --git a/sdrbase/settings/preset.cpp b/sdrbase/settings/preset.cpp index 29ca43cdd..f0dbce66a 100644 --- a/sdrbase/settings/preset.cpp +++ b/sdrbase/settings/preset.cpp @@ -14,9 +14,6 @@ void Preset::resetToDefaults() m_description = "no name"; m_centerFrequency = 0; m_spectrumConfig.clear(); - m_scopeConfig.clear(); - m_dcOffsetCorrection = false; - m_iqImbalanceCorrection = false; m_layout.clear(); m_spectrumConfig.clear(); m_channelConfigs.clear(); @@ -34,11 +31,8 @@ QByteArray Preset::serialize() const s.writeU64(3, m_centerFrequency); s.writeBlob(4, m_layout); s.writeBlob(5, m_spectrumConfig); - s.writeBool(6, m_dcOffsetCorrection); - s.writeBool(7, m_iqImbalanceCorrection); - s.writeBlob(8, m_scopeConfig); - s.writeString(9, m_source); - s.writeBlob(10, m_sourceConfig); + s.writeString(6, m_source); + s.writeBlob(7, m_sourceConfig); s.writeS32(200, m_channelConfigs.size()); @@ -68,13 +62,10 @@ bool Preset::deserialize(const QByteArray& data) d.readU64(3, &m_centerFrequency, 0); d.readBlob(4, &m_layout); d.readBlob(5, &m_spectrumConfig); - d.readBool(6, &m_dcOffsetCorrection, false); - d.readBool(7, &m_iqImbalanceCorrection, false); - d.readBlob(8, &m_scopeConfig); - d.readString(9, &m_source); - d.readBlob(10, &m_sourceConfig); + d.readString(6, &m_source); + d.readBlob(7, &m_sourceConfig); - qDebug() << " m_group: " << m_group.toStdString().c_str(); + qDebug() << "Preset::deserialize: m_group: " << m_group.toStdString().c_str(); qint32 channelCount = 0; d.readS32(200, &channelCount, 0);