diff --git a/doc/img/UDPsrc_plugin.png b/doc/img/UDPsrc_plugin.png
index e7ef59aef..adf259542 100644
Binary files a/doc/img/UDPsrc_plugin.png and b/doc/img/UDPsrc_plugin.png differ
diff --git a/plugins/channel/udpsrc/readme.md b/plugins/channel/udpsrc/readme.md
index 96988575f..a8dc6ec27 100644
--- a/plugins/channel/udpsrc/readme.md
+++ b/plugins/channel/udpsrc/readme.md
@@ -22,9 +22,9 @@ Total power in dB relative to a +/- 1.0 amplitude signal received in the pass ba
Combo box to specify the type of samples that are sent over UDP.
- - `S16LE I/Q`: Raw I/Q samples on signed 16 bits integers with Little Endian layout. Use it with software that accepts I/Q data as input like GNUradio with the `UDP source` block
- - `S16LE SSB`: AF of SSB demodulated signal as 16 bits signed integers with Little Endian layout. Use it with software that uses a SSB demodulated signal as input i.e. software that is based on the audio output of a SSB radio.
- - `S16LE NFM`: AF of FM demodulated signal as 16 bits signed integers with Little Endian layout. Use it with software that takes the FM demodulated audio or the discriminator output of a radio as input. Make sure you specify the appropriate signal bandwidth (see 7) according to the AF bandwidth needs.
+ - `S16LE I/Q`: Raw I/Q samples on signed 16 bits integers with Little Endian layout. Use it with software that accepts I/Q data as input like GNUradio with the `UDP source` block. The output is interleaved I and Q samples
+ - `S16LE SSB`: AF of SSB demodulated signal as 16 bits signed integers with Little Endian layout. Use it with software that uses a SSB demodulated signal as input i.e. software that is based on the audio output of a SSB radio. The output is interleaved samples of the USB (on real part) and LSB signals (on imaginary part).
+ - `S16LE NFM`: AF of FM demodulated signal as 16 bits signed integers with Little Endian layout. Use it with software that takes the FM demodulated audio or the discriminator output of a radio as input. Make sure you specify the appropriate signal bandwidth (see 7) according to the AF bandwidth needs. The output is interleaved samples of NFM samples (on real part) and zeros (on imaginary part).
4: Signal sample rate
@@ -54,9 +54,9 @@ This turns on or off the audio samples feedback
This toggles between mono or stereo audio feedback
-11: Apply (validation) button
+11: FM deviation
-When any item of connection or stream configuration changes this button becomes active to make the changes effective when pressed.
+This is the FM deviation in Hz for NFM demodulated samples. Therefore it is active only if `S16LE NFM` is selected as the sample format. A positive deviation of this amount from the central carrier will result in a sample output value of 32767 (0x7FFF) corresponding to the +1.0 real value. A negative deviation of this amount from the central carrier will result in a sample output value of -32768 (0x8000) corresponding to the -1.0 real value.
12: Boost
@@ -66,7 +66,11 @@ Amplify the signal being sent over UDP from the original. There are 4 levels of
Volume of the audio feedback (when used).
-14: Spectrum display
+14: Apply (validation) button
+
+When any item of connection or stream configuration changes this button becomes active to make the changes effective when pressed.
+
+15: Spectrum display
This is the spectrum display of the channel signal after bandpass filtering. Please refer to the Spectrum display description for details.
diff --git a/plugins/channel/udpsrc/udpsrcgui.cpp b/plugins/channel/udpsrc/udpsrcgui.cpp
index 619461535..0c449ea36 100644
--- a/plugins/channel/udpsrc/udpsrcgui.cpp
+++ b/plugins/channel/udpsrc/udpsrcgui.cpp
@@ -224,6 +224,8 @@ UDPSrcGUI::UDPSrcGUI(PluginAPI* pluginAPI, QWidget* parent) :
m_threadedChannelizer = new ThreadedSampleSink(m_channelizer, this);
DSPEngine::instance()->addThreadedSink(m_threadedChannelizer);
+ ui->fmDeviation->setEnabled(false);
+
ui->deltaFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold));
ui->deltaFrequency->setValueRange(7, 0U, 9999999U);
@@ -355,15 +357,19 @@ void UDPSrcGUI::applySettings()
{
case 0:
sampleFormat = UDPSrc::FormatSSB;
+ ui->fmDeviation->setEnabled(false);
break;
case 1:
sampleFormat = UDPSrc::FormatNFM;
+ ui->fmDeviation->setEnabled(true);
break;
case 2:
sampleFormat = UDPSrc::FormatS16LE;
+ ui->fmDeviation->setEnabled(false);
break;
default:
sampleFormat = UDPSrc::FormatSSB;
+ ui->fmDeviation->setEnabled(false);
break;
}
@@ -410,6 +416,12 @@ void UDPSrcGUI::on_deltaFrequency_changed(quint64 value)
void UDPSrcGUI::on_sampleFormat_currentIndexChanged(int index)
{
+ if (index == 1) {
+ ui->fmDeviation->setEnabled(true);
+ } else {
+ ui->fmDeviation->setEnabled(false);
+ }
+
ui->applyBtn->setEnabled(true);
}