NFM demod: changed squelch 0.1 dB steps to 1 dB steps

This commit is contained in:
f4exb 2018-10-11 08:52:50 +02:00
parent 993ab36a29
commit b99afedc4a
15 changed files with 28 additions and 34 deletions

View File

@ -523,14 +523,14 @@ void NFMDemod::applySettings(const NFMDemodSettings& settings, bool force)
(settings.m_deltaSquelch != m_settings.m_deltaSquelch) || force)
{
if (settings.m_deltaSquelch)
{ // input is a value in negative millis
m_squelchLevel = (- settings.m_squelch) / 1000.0;
{ // input is a value in negative centis
m_squelchLevel = (- settings.m_squelch) / 100.0;
m_afSquelch.setThreshold(m_squelchLevel);
m_afSquelch.reset();
}
else
{ // input is a value in centi-Bels
m_squelchLevel = std::pow(10.0, settings.m_squelch / 100.0);
{ // input is a value in deci-Bels
m_squelchLevel = std::pow(10.0, settings.m_squelch / 10.0);
m_movingAverage.reset();
}

View File

@ -182,12 +182,12 @@ void NFMDemodGUI::on_squelch_valueChanged(int value)
{
if (ui->deltaSquelch->isChecked())
{
ui->squelchText->setText(QString("%1").arg(-value / 10.0, 0, 'f', 1));
ui->squelchText->setText(QString("%1").arg(-value / 1.0, 0, 'f', 0));
ui->squelchText->setToolTip(tr("Squelch deviation threshold (%)"));
}
else
{
ui->squelchText->setText(QString("%1").arg(value / 10.0, 0, 'f', 1));
ui->squelchText->setText(QString("%1").arg(value / 1.0, 0, 'f', 0));
ui->squelchText->setToolTip(tr("Squelch power threshold (dB)"));
}
m_settings.m_squelch = value * 1.0;
@ -368,13 +368,13 @@ void NFMDemodGUI::displaySettings()
if (m_settings.m_deltaSquelch)
{
ui->squelchText->setText(QString("%1").arg((-m_settings.m_squelch) / 10.0, 0, 'f', 1));
ui->squelchText->setText(QString("%1").arg((-m_settings.m_squelch) / 1.0, 0, 'f', 0));
ui->squelchText->setToolTip(tr("Squelch AF balance threshold (%)"));
ui->squelch->setToolTip(tr("Squelch AF balance threshold (%)"));
}
else
{
ui->squelchText->setText(QString("%1").arg(m_settings.m_squelch / 10.0, 0, 'f', 1));
ui->squelchText->setText(QString("%1").arg(m_settings.m_squelch / 1.0, 0, 'f', 0));
ui->squelchText->setToolTip(tr("Squelch power threshold (dB)"));
ui->squelch->setToolTip(tr("Squelch AF balance threshold (%)"));
}

View File

@ -428,7 +428,7 @@
<string>Squelch threshold (dB)</string>
</property>
<property name="minimum">
<number>-1000</number>
<number>-100</number>
</property>
<property name="maximum">
<number>0</number>
@ -440,7 +440,7 @@
<number>1</number>
</property>
<property name="value">
<number>-150</number>
<number>-100</number>
</property>
</widget>
</item>
@ -448,21 +448,15 @@
<widget class="QLabel" name="squelchText">
<property name="minimumSize">
<size>
<width>40</width>
<width>28</width>
<height>0</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16777215</height>
</size>
</property>
<property name="toolTip">
<string>Squelch threshold (dB)</string>
</property>
<property name="text">
<string>-15.0</string>
<string>-100</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>

View File

@ -44,7 +44,7 @@ void NFMDemodSettings::resetToDefaults()
m_fmDeviation = 2000;
m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack
m_deltaSquelch = false;
m_squelch = -300.0;
m_squelch = -30.0;
m_volume = 1.0;
m_ctcssOn = false;
m_audioMute = false;
@ -109,8 +109,8 @@ bool NFMDemodSettings::deserialize(const QByteArray& data)
m_afBandwidth = tmp * 1000.0;
d.readS32(4, &tmp, 20);
m_volume = tmp / 10.0;
d.readS32(5, &tmp, -300);
m_squelch = tmp * 1.0;
d.readS32(5, &tmp, -30);
m_squelch = (tmp < -100 ? -100 : tmp) * 1.0;
d.readU32(7, &m_rgbColor, QColor(255, 0, 0).rgb());
d.readS32(8, &m_ctcssIndex, 0);
d.readBool(9, &m_ctcssOn, false);

View File

@ -33,7 +33,7 @@ struct NFMDemodSettings
int m_fmDeviation;
int m_squelchGate;
bool m_deltaSquelch;
Real m_squelch; //!< centi-Bels
Real m_squelch; //!< deci-Bels
Real m_volume;
bool m_ctcssOn;
bool m_audioMute;

View File

@ -9,7 +9,7 @@
const PluginDescriptor NFMPlugin::m_pluginDescriptor = {
QString("NFM Demodulator"),
QString("4.1.0"),
QString("4.2.1"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,

View File

@ -46,7 +46,7 @@ Use this button to toggle between AF (on) and RF power (off) based squelch.
<h4>Power threshold mode</h4>
Case when the delta/Level squelch control (7) is off (power). This is the squelch threshold in dB. The average total power received in the signal bandwidth before demodulation is compared to this value and the squelch input is open above this value. It can be varied continuously in 0.1 dB steps from 0.0 to -100.0 dB using the dial button.
Case when the delta/Level squelch control (7) is off (power). This is the squelch threshold in dB. The average total power received in the signal bandwidth before demodulation is compared to this value and the squelch input is open above this value. It can be varied continuously in 1 dB steps from 0 to -100 dB using the dial button.
<h4>Audio frequency delta mode</h4>

View File

@ -81,7 +81,7 @@ PluginInterface::SamplingDevices PerseusPlugin::enumSampleSources()
1,
0));
qDebug("PerseusPlugin::enumSampleSources: enumerated PlutoSDR device #%d", i);
qDebug("PerseusPlugin::enumSampleSources: enumerated Perseus device #%d", i);
}
return result;

View File

@ -2802,7 +2802,7 @@ margin-bottom: 20px;
"squelch" : {
"type" : "number",
"format" : "float",
"description" : "power squelch threshold in centi-bels"
"description" : "power squelch threshold in deci-bels"
},
"volume" : {
"type" : "number",
@ -23242,7 +23242,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2018-10-03T06:02:12.961+02:00
Generated 2018-10-11T08:49:05.249+02:00
</div>
</div>
</div>

View File

@ -21,7 +21,7 @@ NFMDemodSettings:
deltaSquelch:
type: integer
squelch:
description: power squelch threshold in centi-bels
description: power squelch threshold in deci-bels
type: number
format: float
volume:

View File

@ -21,7 +21,7 @@ NFMDemodSettings:
deltaSquelch:
type: integer
squelch:
description: power squelch threshold in centi-bels
description: power squelch threshold in deci-bels
type: number
format: float
volume:

View File

@ -2802,7 +2802,7 @@ margin-bottom: 20px;
"squelch" : {
"type" : "number",
"format" : "float",
"description" : "power squelch threshold in centi-bels"
"description" : "power squelch threshold in deci-bels"
},
"volume" : {
"type" : "number",
@ -23242,7 +23242,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2018-10-03T06:02:12.961+02:00
Generated 2018-10-11T08:49:05.249+02:00
</div>
</div>
</div>

View File

@ -252,7 +252,7 @@ def setupChannel(deviceset_url, options):
settings["NFMDemodSettings"]["afBandwidth"] = options.af_bw * 1000
settings["NFMDemodSettings"]["rfBandwidth"] = options.rf_bw
settings["NFMDemodSettings"]["volume"] = options.volume
settings["NFMDemodSettings"]["squelch"] = options.squelch_db * 10 # centi-Bels
settings["NFMDemodSettings"]["squelch"] = options.squelch_db # deci-Bels
settings["NFMDemodSettings"]["squelchGate"] = options.squelch_gate // 10 # 10's of ms
settings["NFMDemodSettings"]["title"] = "Channel %d" % i
elif options.channel_id == "BFMDemod":

View File

@ -164,7 +164,7 @@ def main():
settings["NFMDemodSettings"]["rfBandwidth"] = 12500
settings["NFMDemodSettings"]["fmDeviation"] = 3000
settings["NFMDemodSettings"]["afBandwidth"] = 4000
settings["NFMDemodSettings"]["squelch"] = -700
settings["NFMDemodSettings"]["squelch"] = -70
settings["NFMDemodSettings"]["volume"] = 2.0
if options.udp_copy is not None:

View File

@ -191,7 +191,7 @@ def setupChannels(scan_control, options):
settings["NFMDemodSettings"]["afBandwidth"] = options.af_bw * 1000
settings["NFMDemodSettings"]["rfBandwidth"] = options.rf_bw
settings["NFMDemodSettings"]["volume"] = options.volume
settings["NFMDemodSettings"]["squelch"] = options.squelch_db * 10 # centi-Bels
settings["NFMDemodSettings"]["squelch"] = options.squelch_db # deci-Bels
settings["NFMDemodSettings"]["squelchGate"] = options.squelch_gate / 10 # 10's of ms
settings["NFMDemodSettings"]["title"] = "Channel %d" % i
elif options.channel_id == "AMDemod":