1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-25 01:18:38 -05:00

LimeSDR input: added DAC sample rate display

This commit is contained in:
f4exb 2017-07-07 00:01:01 +02:00
parent 77e11004b0
commit 62b6281370
8 changed files with 102 additions and 48 deletions

4
debian/changelog vendored
View File

@ -1,6 +1,10 @@
sdrangel (3.5.1-1) unstable; urgency=medium
* LimeSDR input: added individual gains control and ADC rate display
* LimeSDR output: added DAC rate display
* LimeSDR all: added board temperature display
* Added pulseaudio and libqt5multimedia5-plugins in the Debian dependencies
* Updates to build on aarch64 in openSUSE
-- Edouard Griffiths, F4EXB <f4exb06@gmail.com> Sat, 01 Jul 2017 19:14:18 +0200

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

View File

@ -87,9 +87,9 @@ Thus the actual sample rate of the DAC is the stream sample rate (10) multiplied
The I/Q stream from the baseband is upsampled by a power of two by software inside the plugin before being sent to the LimeSDR device. Possible values are increasing powers of two: 1 (no interpolation), 2, 4, 8, 16, 32.
<h3>10: Device stream sample rate</h3>
<h3>10: Host to device stream sample rate</h3>
This is the LMS7002M device to/from host stream sample rate in S/s.
This is the LMS7002M device to/from host stream sample rate in S/s. It is the same for the Rx and Tx systems.
Use the wheels to adjust the sample rate. Pressing shift simultanoeusly 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 arroews.

View File

@ -244,6 +244,17 @@ void LimeSDRInputGUI::handleMessagesToGUI()
}
}
void LimeSDRInputGUI::updateADCRate()
{
uint32_t adcRate = m_settings.m_devSampleRate * (1<<m_settings.m_log2HardDecim);
if (adcRate < 100000000) {
ui->adcRateLabel->setText(tr("%1k").arg(QString::number(adcRate / 1000.0f, 'g', 5)));
} else {
ui->adcRateLabel->setText(tr("%1M").arg(QString::number(adcRate / 1000000.0f, 'g', 5)));
}
}
void LimeSDRInputGUI::updateSampleRateAndFrequency()
{
m_deviceAPI->getSpectrum()->setSampleRate(m_sampleRate);
@ -262,6 +273,8 @@ void LimeSDRInputGUI::displaySettings()
ui->hwDecim->setCurrentIndex(m_settings.m_log2HardDecim);
ui->swDecim->setCurrentIndex(m_settings.m_log2SoftDecim);
updateADCRate();
ui->lpf->setValue(m_settings.m_lpfBW / 1000);
ui->lpFIREnable->setChecked(m_settings.m_lpfFIREnable);
@ -456,6 +469,7 @@ void LimeSDRInputGUI::on_iqImbalance_toggled(bool checked)
void LimeSDRInputGUI::on_sampleRate_changed(quint64 value)
{
m_settings.m_devSampleRate = value;
updateADCRate();
setNCODisplay();
sendSettings();}
@ -464,6 +478,7 @@ void LimeSDRInputGUI::on_hwDecim_currentIndexChanged(int index)
if ((index <0) || (index > 5))
return;
m_settings.m_log2HardDecim = index;
updateADCRate();
setNCODisplay();
sendSettings();
}

View File

@ -68,6 +68,7 @@ private:
void setNCODisplay();
void sendSettings();
void updateSampleRateAndFrequency();
void updateADCRate();
void blockApplySettings(bool block);
private slots:

View File

@ -53,9 +53,9 @@
<number>4</number>
</property>
<item>
<layout class="QVBoxLayout" name="deviceUILayout">
<layout class="QVBoxLayout" name="freqLeftLayout">
<item>
<layout class="QHBoxLayout" name="deviceButtonsLayout">
<layout class="QHBoxLayout" name="freqLeftTopLayout">
<item>
<widget class="ButtonSwitch" name="startStop">
<property name="toolTip">
@ -89,11 +89,17 @@
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="deviceRateLayout">
<layout class="QHBoxLayout" name="freqLeftBotLayout">
<item>
<widget class="QLabel" name="deviceRateLabel">
<widget class="QLabel" name="adcRateLabel">
<property name="minimumSize">
<size>
<width>54</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>I/Q sample rate kS/s</string>
<string>ADC rate before hardware downsampling (k or MS/s)</string>
</property>
<property name="text">
<string>00000k</string>
@ -154,43 +160,67 @@
</widget>
</item>
<item>
<widget class="QLabel" name="freqUnits">
<property name="text">
<string> kHz</string>
<layout class="QVBoxLayout" name="freqRightLayout">
<property name="leftMargin">
<number>6</number>
</property>
</widget>
</item>
<item>
<spacer name="freqRightlSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<property name="rightMargin">
<number>6</number>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QLabel" name="channelNumberText">
<property name="minimumSize">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Channel number</string>
</property>
<property name="text">
<string>#0</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
<item>
<layout class="QHBoxLayout" name="freqRightTopLayout">
<item>
<widget class="QLabel" name="freqUnits">
<property name="text">
<string> kHz</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="channelNumberText">
<property name="minimumSize">
<size>
<width>20</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Channel number</string>
</property>
<property name="text">
<string>#0</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="freqRightBotLayout">
<item>
<widget class="QLabel" name="deviceRateLabel">
<property name="minimumSize">
<size>
<width>54</width>
<height>0</height>
</size>
</property>
<property name="toolTip">
<string>Baseband I/Q sample rate kS/s</string>
</property>
<property name="text">
<string>00000k</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>

View File

@ -35,7 +35,7 @@ Then add the following defines on `cmake` command line:
<h3>1: Common stream parameters</h3>
![SDR Daemon source input stream GUI](../../../doc/img/SDRdaemonSource_plugin_01.png)
![SDR Daemon source input stream GUI](../../../doc/img/LimeSDRInput_plugin_1.png)
<h4>1.1: Frequency</h4>
@ -53,11 +53,15 @@ Device start / stop button.
Record baseband I/Q stream toggle button
<h4>1.4: Stream sample rate</h4>
<h4>1.4: ADC sample rate</h4>
Baseband I/Q sample rate in kS/s. This is the device sample rate (4) divided by the decimation factor (6).
This is the sample rate at which the ADC runs in kS/s (k) or MS/s (M) before hardware decimation (8). Thus this is the device to host sample rate (10) multiplied by the hardware decimation factor (8).
<h3>2: Channel number</h3>
<h4>1.5: Stream sample rate</h4>
Baseband I/Q sample rate in kS/s. This is the device to host sample rate (10) divided by the software decimation factor (9).
<h4>1.6: Channel number</h4>
LimeSDR is a 2x2 MIMO device so it has two receiving channels. This shows the corresponding Rx channel index (0 or 1).
@ -94,9 +98,9 @@ Thus the actual sample rate of the ADC is the stream sample rate (10) multiplied
The I/Q stream from the LimeSDR is doensampled 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.
<h3>10: Device stream sample rate</h3>
<h3>10: Device to host stream sample rate</h3>
This is the LMS7002M device to/from host stream sample rate in S/s.
This is the LMS7002M device to/from host stream sample rate in S/s. It is the same for the Rx and Tx systems.
Use the wheels to adjust the sample rate. Pressing shift simultanoeusly 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 arroews.