From dc519fbda7ba8d9d3faf2e844b66506327ff4b93 Mon Sep 17 00:00:00 2001 From: f4exb Date: Wed, 10 Apr 2019 23:40:45 +0200 Subject: [PATCH] XTRX input: implemented baseband or device sample rate input option --- doc/img/XTRXInput_plugin.png | Bin 33566 -> 34468 bytes doc/img/XTRXInput_plugin.xcf | Bin 143343 -> 148099 bytes .../samplesink/xtrxoutput/xtrxoutputgui.ui | 3 + .../xtrxoutput/xtrxoutputplugin.cpp | 4 +- plugins/samplesource/xtrxinput/readme.md | 17 ++++- .../samplesource/xtrxinput/xtrxinputgui.cpp | 62 ++++++++++++++++-- plugins/samplesource/xtrxinput/xtrxinputgui.h | 3 + .../samplesource/xtrxinput/xtrxinputgui.ui | 29 ++++++-- .../xtrxinput/xtrxinputplugin.cpp | 4 +- 9 files changed, 104 insertions(+), 18 deletions(-) diff --git a/doc/img/XTRXInput_plugin.png b/doc/img/XTRXInput_plugin.png index ac2bc67c841e596743b5853e892968032b32f260..ddd6044f5ad687cb4b2475512c3d5753143bcfeb 100644 GIT binary patch literal 34468 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 literal 33566 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 T$4Avffxo0B6rL1{8~Xh(7Y6hI diff --git a/doc/img/XTRXInput_plugin.xcf b/doc/img/XTRXInput_plugin.xcf index 6ef9c98ae1cf9e48f21f47b23c1b5bd3a7844283..9ce255821f14238a2d87de0145534670b141db3c 100644 GIT binary patch delta 8493 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 + + Toggle between device to host (SR) and base band (BB) sample rate input + SR diff --git a/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp b/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp index 696f7ad01..95f7cd19f 100644 --- a/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp +++ b/plugins/samplesink/xtrxoutput/xtrxoutputplugin.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2015 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // // // This program is free software; you can redistribute it and/or modify // // it under the terms of the GNU General Public License as published by // @@ -34,7 +34,7 @@ const PluginDescriptor XTRXOutputPlugin::m_pluginDescriptor = { QString("XTRX Output"), - QString("4.5.2"), + QString("4.5.4"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true, diff --git a/plugins/samplesource/xtrxinput/readme.md b/plugins/samplesource/xtrxinput/readme.md index aeae2a42e..360e0c95d 100644 --- a/plugins/samplesource/xtrxinput/readme.md +++ b/plugins/samplesource/xtrxinput/readme.md @@ -74,7 +74,9 @@ This is the sample rate at which the ADC runs in kS/s (k) or MS/s (M) before har

1.5: Stream sample rate

-Baseband I/Q sample rate in kS/s. This is the device to host sample rate (5) divided by the software decimation factor (4). +In device to host sample rate input mode (5A) this is the baseband I/Q sample rate in kS/s. This is the device to host sample rate (5) divided by the software decimation factor (4). + +In baseband sample rate input mode (5A) this is the device to host sample rate in kS/s. This is the baseband sample rate (5) multiplied by the software decimation factor (4)

1.6: Channel number

@@ -140,9 +142,18 @@ The first position in the combo is marked as "A". This is because decimation by The I/Q stream from the XTRX is downsampled by a power of two by software inside the plugin before being sent to the passband. Possible values are increasing powers of two: 1 (no decimation), 2, 4, 8, 16, 32. -

5: Device to host stream sample rate

+

5A: Device to host sample rate / Baseband sample rate input toggle

-This is the XTRX device to/from host stream sample rate in S/s. It is the same for the Rx and Tx systems. +Use this toggle button to switch the sample rate input next (5) between device to host sample rate and baseband sample rate input. The button shows the current mode: + + - **SR**: device to host sample rate input mode. The baseband sample rate (1.5) is the device to host sample rate (5) divided by the software decimation factor (4). + - **BB**: baseband sample rate input mode. The device to host sample rate (1.5) is the baseband sample rate (5) multiplied by the software decimation factor (4). + +

5: Sample rate

+ +This is the XTRX device to/from host stream sample rate or baseband sample rate in samples per second (S/s). The control (5A) is used to switch between the two input modes. The device to/from host stream sample rate is the same for the Rx and Tx systems. + +The limits are adjusted automatically. In baseband input mode the limits are driven by the decimation factor (4). You may need to increase this decimation factor to be able to reach lower values. Use the wheels to adjust the sample rate. Pressing shift simultaneously moves digit by 5 and pressing control moves it by 2. Left click on a digit sets the cursor position at this digit. Right click on a digit sets all digits on the right to zero. This effectively floors value at the digit position. Wheels are moved with the mousewheel while pointing at the wheel or by selecting the wheel with the left mouse click and using the keyboard arrows. diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.cpp b/plugins/samplesource/xtrxinput/xtrxinputgui.cpp index 89940ce37..9a141969b 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.cpp @@ -37,6 +37,7 @@ XTRXInputGUI::XTRXInputGUI(DeviceUISet *deviceUISet, QWidget* parent) : ui(new Ui::XTRXInputGUI), m_deviceUISet(deviceUISet), m_settings(), + m_sampleRateMode(true), m_sampleRate(0), m_lastEngineState((DSPDeviceSourceEngine::State)-1), m_doApplySettings(true), @@ -277,7 +278,39 @@ void XTRXInputGUI::updateSampleRateAndFrequency() { m_deviceUISet->getSpectrum()->setSampleRate(m_sampleRate); m_deviceUISet->getSpectrum()->setCenterFrequency(m_deviceCenterFrequency); - ui->deviceRateLabel->setText(tr("%1k").arg(QString::number(m_sampleRate / 1000.0f, 'g', 5))); + displaySampleRate(); +} + +void XTRXInputGUI::displaySampleRate() +{ + float minF, maxF, stepF; + m_XTRXInput->getSRRange(minF, maxF, stepF); + + ui->sampleRate->blockSignals(true); + + if (m_sampleRateMode) + { + ui->sampleRateMode->setStyleSheet("QToolButton { background:rgb(60,60,60); }"); + ui->sampleRateMode->setText("SR"); + ui->sampleRate->setValueRange(8, (uint32_t) minF, (uint32_t) maxF); + ui->sampleRate->setValue(m_settings.m_devSampleRate); + ui->sampleRate->setToolTip("Device to host sample rate (S/s)"); + ui->deviceRateText->setToolTip("Baseband sample rate (S/s)"); + uint32_t basebandSampleRate = m_settings.m_devSampleRate/(1<deviceRateText->setText(tr("%1k").arg(QString::number(basebandSampleRate / 1000.0f, 'g', 5))); + } + else + { + ui->sampleRateMode->setStyleSheet("QToolButton { background:rgb(50,50,50); }"); + ui->sampleRateMode->setText("BB"); + ui->sampleRate->setValueRange(8, (uint32_t) minF/(1<sampleRate->setValue(m_settings.m_devSampleRate/(1<sampleRate->setToolTip("Baseband sample rate (S/s)"); + ui->deviceRateText->setToolTip("Device to host sample rate (S/s)"); + ui->deviceRateText->setText(tr("%1k").arg(QString::number(m_settings.m_devSampleRate / 1000.0f, 'g', 5))); + } + + ui->sampleRate->blockSignals(false); } void XTRXInputGUI::displaySettings() @@ -286,7 +319,7 @@ void XTRXInputGUI::displaySettings() ui->extClock->setExternalClockActive(m_settings.m_extClock); setCenterFrequencyDisplay(); - ui->sampleRate->setValue(m_settings.m_devSampleRate); + displaySampleRate(); ui->dcOffset->setChecked(m_settings.m_dcBlock); ui->iqImbalance->setChecked(m_settings.m_iqCorrection); @@ -503,7 +536,12 @@ void XTRXInputGUI::on_iqImbalance_toggled(bool checked) void XTRXInputGUI::on_sampleRate_changed(quint64 value) { - m_settings.m_devSampleRate = value; + if (m_sampleRateMode) { + m_settings.m_devSampleRate = value; + } else { + m_settings.m_devSampleRate = value * (1 << m_settings.m_log2SoftDecim); + } + updateADCRate(); setNCODisplay(); sendSettings();} @@ -513,6 +551,14 @@ void XTRXInputGUI::on_hwDecim_currentIndexChanged(int index) if ((index <0) || (index > 5)) return; m_settings.m_log2HardDecim = index; + displaySampleRate(); + + if (m_sampleRateMode) { + m_settings.m_devSampleRate = ui->sampleRate->getValueNew(); + } else { + m_settings.m_devSampleRate = ui->sampleRate->getValueNew() * (1 << m_settings.m_log2SoftDecim); + } + updateADCRate(); setNCODisplay(); sendSettings(); @@ -520,8 +566,10 @@ void XTRXInputGUI::on_hwDecim_currentIndexChanged(int index) void XTRXInputGUI::on_swDecim_currentIndexChanged(int index) { - if ((index <0) || (index > 6)) + if ((index <0) || (index > 6)) { return; + } + m_settings.m_log2SoftDecim = index; sendSettings(); } @@ -601,6 +649,12 @@ void XTRXInputGUI::on_pwrmode_currentIndexChanged(int index) sendSettings(); } +void XTRXInputGUI::on_sampleRateMode_toggled(bool checked) +{ + m_sampleRateMode = checked; + displaySampleRate(); +} + void XTRXInputGUI::openDeviceSettingsDialog(const QPoint& p) { BasicDeviceSettingsDialog dialog(this); diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.h b/plugins/samplesource/xtrxinput/xtrxinputgui.h index d87f27a65..7b49c1f9c 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.h +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.h @@ -57,6 +57,7 @@ private: DeviceUISet* m_deviceUISet; XTRXInput* m_XTRXInput; //!< Same object as above but gives easy access to XTRXInput methods and attributes that are used intensively XTRXInputSettings m_settings; + bool m_sampleRateMode; //!< true: device, false: base band sample rate update mode QTimer m_updateTimer; QTimer m_statusTimer; int m_sampleRate; @@ -69,6 +70,7 @@ private: MessageQueue m_inputMessageQueue; void displaySettings(); + void displaySampleRate(); void setNCODisplay(); void setCenterFrequencyDisplay(); void setCenterFrequencySetting(uint64_t kHzValue); @@ -98,6 +100,7 @@ private slots: void on_antenna_currentIndexChanged(int index); void on_extClock_clicked(); void on_pwrmode_currentIndexChanged(int index); + void on_sampleRateMode_toggled(bool checked); void updateHardware(); void updateStatus(); diff --git a/plugins/samplesource/xtrxinput/xtrxinputgui.ui b/plugins/samplesource/xtrxinput/xtrxinputgui.ui index fd49e12f9..05d808727 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputgui.ui +++ b/plugins/samplesource/xtrxinput/xtrxinputgui.ui @@ -200,7 +200,7 @@ - + 54 @@ -468,16 +468,31 @@ - - - - 0 - 0 - + + + + 24 + 0 + + + + + 24 + 16777215 + + + + Toggle between device to host (SR) and base band (BB) sample rate input SR + + true + + + true + diff --git a/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp b/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp index 1f15596a8..581d13bb5 100644 --- a/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp +++ b/plugins/samplesource/xtrxinput/xtrxinputplugin.cpp @@ -1,5 +1,5 @@ /////////////////////////////////////////////////////////////////////////////////// -// Copyright (C) 2017 Edouard Griffiths, F4EXB // +// Copyright (C) 2019 Edouard Griffiths, F4EXB // // Copyright (C) 2017 Sergey Kostanbaev, Fairwaves Inc. // // // // This program is free software; you can redistribute it and/or modify // @@ -35,7 +35,7 @@ const PluginDescriptor XTRXInputPlugin::m_pluginDescriptor = { QString("XTRX Input"), - QString("4.5.2"), + QString("4.5.4"), QString("(c) Edouard Griffiths, F4EXB"), QString("https://github.com/f4exb/sdrangel"), true,