diff --git a/plugins/channelrx/demodft8/ft8demod.cpp b/plugins/channelrx/demodft8/ft8demod.cpp index ec98e3660b..64ab0bde4c 100644 --- a/plugins/channelrx/demodft8/ft8demod.cpp +++ b/plugins/channelrx/demodft8/ft8demod.cpp @@ -484,8 +484,10 @@ void FT8Demod::webapiUpdateChannelSettings( if (channelSettingsKeys.contains("spanLog2")) { settings.m_filterBank[settings.m_filterIndex].m_spanLog2 = response.getFt8DemodSettings()->getSpanLog2(); } - if (channelSettingsKeys.contains("rfBandwidth")) { - settings.m_filterBank[settings.m_filterIndex].m_rfBandwidth = response.getFt8DemodSettings()->getRfBandwidth(); + if (channelSettingsKeys.contains("rfBandwidth")) + { + float bw = response.getFt8DemodSettings()->getRfBandwidth(); + settings.m_filterBank[settings.m_filterIndex].m_rfBandwidth = bw > 5800.0f ? 5800.0f : bw; // Hard limit upper bandwidth to 5800 Hx fixes #2339 } if (channelSettingsKeys.contains("lowCutoff")) { settings.m_filterBank[settings.m_filterIndex].m_lowCutoff = response.getFt8DemodSettings()->getLowCutoff(); diff --git a/plugins/channelrx/demodft8/ft8demodgui.cpp b/plugins/channelrx/demodft8/ft8demodgui.cpp index 2de0c60e98..13614a3631 100644 --- a/plugins/channelrx/demodft8/ft8demodgui.cpp +++ b/plugins/channelrx/demodft8/ft8demodgui.cpp @@ -667,7 +667,7 @@ FT8DemodGUI::FT8DemodGUI(PluginAPI* pluginAPI, DeviceUISet *deviceUISet, Baseban m_ft8Demod->setLevelMeter(ui->volumeMeter); - ui->BW->setMaximum(60); + ui->BW->setMaximum(58); ui->BW->setMinimum(10); ui->lowCut->setMaximum(50); ui->lowCut->setMinimum(0); @@ -759,7 +759,7 @@ void FT8DemodGUI::applyBandwidths(unsigned int spanLog2, bool force) ui->BW->blockSignals(true); ui->lowCut->blockSignals(true); - ui->BW->setMaximum(bwMax); + ui->BW->setMaximum(bwMax > 58 ? 58 : bwMax); // Cap to 5.8k fixes #2339 ui->BW->setMinimum(0); ui->BW->setValue(bw); diff --git a/plugins/channelrx/demodft8/ft8demodgui.ui b/plugins/channelrx/demodft8/ft8demodgui.ui index c6a8715285..102f3e277f 100644 --- a/plugins/channelrx/demodft8/ft8demodgui.ui +++ b/plugins/channelrx/demodft8/ft8demodgui.ui @@ -516,7 +516,7 @@ 0 - 60 + 58 1 diff --git a/plugins/channelrx/demodft8/ft8demodsettings.cpp b/plugins/channelrx/demodft8/ft8demodsettings.cpp index 08a8b2cda3..f1da9ceb6b 100644 --- a/plugins/channelrx/demodft8/ft8demodsettings.cpp +++ b/plugins/channelrx/demodft8/ft8demodsettings.cpp @@ -219,6 +219,7 @@ bool FT8DemodSettings::deserialize(const QByteArray& data) { d.readS32(100 + 10*i, &m_filterBank[i].m_spanLog2, 3); d.readS32(101 + 10*i, &tmp, 30); + tmp = tmp > 58 ? 58 : tmp; // Hard limit upper bandwidth fixes #2339 m_filterBank[i].m_rfBandwidth = tmp * 100.0; d.readS32(102+ 10*i, &tmp, 3); m_filterBank[i].m_lowCutoff = tmp * 100.0; diff --git a/plugins/channelrx/demodft8/readme.md b/plugins/channelrx/demodft8/readme.md index 554c87cea1..b2e68f771d 100644 --- a/plugins/channelrx/demodft8/readme.md +++ b/plugins/channelrx/demodft8/readme.md @@ -85,7 +85,7 @@ Values are expressed in kHz and step is 100 Hz.

A.9: RF filter high cutoff

-Values are expressed in kHz and step is 100 Hz. +Values are expressed in kHz and step is 100 Hz. This is limited to 5800 Hz,

A.10: Volume