mirror of
https://github.com/f4exb/sdrangel.git
synced 2024-11-22 16:08:39 -05:00
NFM demod: changed squelch 0.1 dB steps to 1 dB steps
This commit is contained in:
parent
993ab36a29
commit
b99afedc4a
@ -523,14 +523,14 @@ void NFMDemod::applySettings(const NFMDemodSettings& settings, bool force)
|
|||||||
(settings.m_deltaSquelch != m_settings.m_deltaSquelch) || force)
|
(settings.m_deltaSquelch != m_settings.m_deltaSquelch) || force)
|
||||||
{
|
{
|
||||||
if (settings.m_deltaSquelch)
|
if (settings.m_deltaSquelch)
|
||||||
{ // input is a value in negative millis
|
{ // input is a value in negative centis
|
||||||
m_squelchLevel = (- settings.m_squelch) / 1000.0;
|
m_squelchLevel = (- settings.m_squelch) / 100.0;
|
||||||
m_afSquelch.setThreshold(m_squelchLevel);
|
m_afSquelch.setThreshold(m_squelchLevel);
|
||||||
m_afSquelch.reset();
|
m_afSquelch.reset();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{ // input is a value in centi-Bels
|
{ // input is a value in deci-Bels
|
||||||
m_squelchLevel = std::pow(10.0, settings.m_squelch / 100.0);
|
m_squelchLevel = std::pow(10.0, settings.m_squelch / 10.0);
|
||||||
m_movingAverage.reset();
|
m_movingAverage.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,12 +182,12 @@ void NFMDemodGUI::on_squelch_valueChanged(int value)
|
|||||||
{
|
{
|
||||||
if (ui->deltaSquelch->isChecked())
|
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 (%)"));
|
ui->squelchText->setToolTip(tr("Squelch deviation threshold (%)"));
|
||||||
}
|
}
|
||||||
else
|
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)"));
|
ui->squelchText->setToolTip(tr("Squelch power threshold (dB)"));
|
||||||
}
|
}
|
||||||
m_settings.m_squelch = value * 1.0;
|
m_settings.m_squelch = value * 1.0;
|
||||||
@ -368,13 +368,13 @@ void NFMDemodGUI::displaySettings()
|
|||||||
|
|
||||||
if (m_settings.m_deltaSquelch)
|
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->squelchText->setToolTip(tr("Squelch AF balance threshold (%)"));
|
||||||
ui->squelch->setToolTip(tr("Squelch AF balance threshold (%)"));
|
ui->squelch->setToolTip(tr("Squelch AF balance threshold (%)"));
|
||||||
}
|
}
|
||||||
else
|
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->squelchText->setToolTip(tr("Squelch power threshold (dB)"));
|
||||||
ui->squelch->setToolTip(tr("Squelch AF balance threshold (%)"));
|
ui->squelch->setToolTip(tr("Squelch AF balance threshold (%)"));
|
||||||
}
|
}
|
||||||
|
@ -428,7 +428,7 @@
|
|||||||
<string>Squelch threshold (dB)</string>
|
<string>Squelch threshold (dB)</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="minimum">
|
<property name="minimum">
|
||||||
<number>-1000</number>
|
<number>-100</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximum">
|
<property name="maximum">
|
||||||
<number>0</number>
|
<number>0</number>
|
||||||
@ -440,7 +440,7 @@
|
|||||||
<number>1</number>
|
<number>1</number>
|
||||||
</property>
|
</property>
|
||||||
<property name="value">
|
<property name="value">
|
||||||
<number>-150</number>
|
<number>-100</number>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
@ -448,21 +448,15 @@
|
|||||||
<widget class="QLabel" name="squelchText">
|
<widget class="QLabel" name="squelchText">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>40</width>
|
<width>28</width>
|
||||||
<height>0</height>
|
<height>0</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
|
||||||
<size>
|
|
||||||
<width>16777215</width>
|
|
||||||
<height>16777215</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Squelch threshold (dB)</string>
|
<string>Squelch threshold (dB)</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>-15.0</string>
|
<string>-100</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="alignment">
|
<property name="alignment">
|
||||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||||
|
@ -44,7 +44,7 @@ void NFMDemodSettings::resetToDefaults()
|
|||||||
m_fmDeviation = 2000;
|
m_fmDeviation = 2000;
|
||||||
m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack
|
m_squelchGate = 5; // 10s of ms at 48000 Hz sample rate. Corresponds to 2400 for AGC attack
|
||||||
m_deltaSquelch = false;
|
m_deltaSquelch = false;
|
||||||
m_squelch = -300.0;
|
m_squelch = -30.0;
|
||||||
m_volume = 1.0;
|
m_volume = 1.0;
|
||||||
m_ctcssOn = false;
|
m_ctcssOn = false;
|
||||||
m_audioMute = false;
|
m_audioMute = false;
|
||||||
@ -109,8 +109,8 @@ bool NFMDemodSettings::deserialize(const QByteArray& data)
|
|||||||
m_afBandwidth = tmp * 1000.0;
|
m_afBandwidth = tmp * 1000.0;
|
||||||
d.readS32(4, &tmp, 20);
|
d.readS32(4, &tmp, 20);
|
||||||
m_volume = tmp / 10.0;
|
m_volume = tmp / 10.0;
|
||||||
d.readS32(5, &tmp, -300);
|
d.readS32(5, &tmp, -30);
|
||||||
m_squelch = tmp * 1.0;
|
m_squelch = (tmp < -100 ? -100 : tmp) * 1.0;
|
||||||
d.readU32(7, &m_rgbColor, QColor(255, 0, 0).rgb());
|
d.readU32(7, &m_rgbColor, QColor(255, 0, 0).rgb());
|
||||||
d.readS32(8, &m_ctcssIndex, 0);
|
d.readS32(8, &m_ctcssIndex, 0);
|
||||||
d.readBool(9, &m_ctcssOn, false);
|
d.readBool(9, &m_ctcssOn, false);
|
||||||
|
@ -33,7 +33,7 @@ struct NFMDemodSettings
|
|||||||
int m_fmDeviation;
|
int m_fmDeviation;
|
||||||
int m_squelchGate;
|
int m_squelchGate;
|
||||||
bool m_deltaSquelch;
|
bool m_deltaSquelch;
|
||||||
Real m_squelch; //!< centi-Bels
|
Real m_squelch; //!< deci-Bels
|
||||||
Real m_volume;
|
Real m_volume;
|
||||||
bool m_ctcssOn;
|
bool m_ctcssOn;
|
||||||
bool m_audioMute;
|
bool m_audioMute;
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
const PluginDescriptor NFMPlugin::m_pluginDescriptor = {
|
const PluginDescriptor NFMPlugin::m_pluginDescriptor = {
|
||||||
QString("NFM Demodulator"),
|
QString("NFM Demodulator"),
|
||||||
QString("4.1.0"),
|
QString("4.2.1"),
|
||||||
QString("(c) Edouard Griffiths, F4EXB"),
|
QString("(c) Edouard Griffiths, F4EXB"),
|
||||||
QString("https://github.com/f4exb/sdrangel"),
|
QString("https://github.com/f4exb/sdrangel"),
|
||||||
true,
|
true,
|
||||||
|
@ -46,7 +46,7 @@ Use this button to toggle between AF (on) and RF power (off) based squelch.
|
|||||||
|
|
||||||
<h4>Power threshold mode</h4>
|
<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>
|
<h4>Audio frequency delta mode</h4>
|
||||||
|
|
||||||
|
@ -81,7 +81,7 @@ PluginInterface::SamplingDevices PerseusPlugin::enumSampleSources()
|
|||||||
1,
|
1,
|
||||||
0));
|
0));
|
||||||
|
|
||||||
qDebug("PerseusPlugin::enumSampleSources: enumerated PlutoSDR device #%d", i);
|
qDebug("PerseusPlugin::enumSampleSources: enumerated Perseus device #%d", i);
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
@ -2802,7 +2802,7 @@ margin-bottom: 20px;
|
|||||||
"squelch" : {
|
"squelch" : {
|
||||||
"type" : "number",
|
"type" : "number",
|
||||||
"format" : "float",
|
"format" : "float",
|
||||||
"description" : "power squelch threshold in centi-bels"
|
"description" : "power squelch threshold in deci-bels"
|
||||||
},
|
},
|
||||||
"volume" : {
|
"volume" : {
|
||||||
"type" : "number",
|
"type" : "number",
|
||||||
@ -23242,7 +23242,7 @@ except ApiException as e:
|
|||||||
</div>
|
</div>
|
||||||
<div id="generator">
|
<div id="generator">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
Generated 2018-10-03T06:02:12.961+02:00
|
Generated 2018-10-11T08:49:05.249+02:00
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -21,7 +21,7 @@ NFMDemodSettings:
|
|||||||
deltaSquelch:
|
deltaSquelch:
|
||||||
type: integer
|
type: integer
|
||||||
squelch:
|
squelch:
|
||||||
description: power squelch threshold in centi-bels
|
description: power squelch threshold in deci-bels
|
||||||
type: number
|
type: number
|
||||||
format: float
|
format: float
|
||||||
volume:
|
volume:
|
||||||
|
@ -21,7 +21,7 @@ NFMDemodSettings:
|
|||||||
deltaSquelch:
|
deltaSquelch:
|
||||||
type: integer
|
type: integer
|
||||||
squelch:
|
squelch:
|
||||||
description: power squelch threshold in centi-bels
|
description: power squelch threshold in deci-bels
|
||||||
type: number
|
type: number
|
||||||
format: float
|
format: float
|
||||||
volume:
|
volume:
|
||||||
|
@ -2802,7 +2802,7 @@ margin-bottom: 20px;
|
|||||||
"squelch" : {
|
"squelch" : {
|
||||||
"type" : "number",
|
"type" : "number",
|
||||||
"format" : "float",
|
"format" : "float",
|
||||||
"description" : "power squelch threshold in centi-bels"
|
"description" : "power squelch threshold in deci-bels"
|
||||||
},
|
},
|
||||||
"volume" : {
|
"volume" : {
|
||||||
"type" : "number",
|
"type" : "number",
|
||||||
@ -23242,7 +23242,7 @@ except ApiException as e:
|
|||||||
</div>
|
</div>
|
||||||
<div id="generator">
|
<div id="generator">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
Generated 2018-10-03T06:02:12.961+02:00
|
Generated 2018-10-11T08:49:05.249+02:00
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -252,7 +252,7 @@ def setupChannel(deviceset_url, options):
|
|||||||
settings["NFMDemodSettings"]["afBandwidth"] = options.af_bw * 1000
|
settings["NFMDemodSettings"]["afBandwidth"] = options.af_bw * 1000
|
||||||
settings["NFMDemodSettings"]["rfBandwidth"] = options.rf_bw
|
settings["NFMDemodSettings"]["rfBandwidth"] = options.rf_bw
|
||||||
settings["NFMDemodSettings"]["volume"] = options.volume
|
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"]["squelchGate"] = options.squelch_gate // 10 # 10's of ms
|
||||||
settings["NFMDemodSettings"]["title"] = "Channel %d" % i
|
settings["NFMDemodSettings"]["title"] = "Channel %d" % i
|
||||||
elif options.channel_id == "BFMDemod":
|
elif options.channel_id == "BFMDemod":
|
||||||
|
@ -164,7 +164,7 @@ def main():
|
|||||||
settings["NFMDemodSettings"]["rfBandwidth"] = 12500
|
settings["NFMDemodSettings"]["rfBandwidth"] = 12500
|
||||||
settings["NFMDemodSettings"]["fmDeviation"] = 3000
|
settings["NFMDemodSettings"]["fmDeviation"] = 3000
|
||||||
settings["NFMDemodSettings"]["afBandwidth"] = 4000
|
settings["NFMDemodSettings"]["afBandwidth"] = 4000
|
||||||
settings["NFMDemodSettings"]["squelch"] = -700
|
settings["NFMDemodSettings"]["squelch"] = -70
|
||||||
settings["NFMDemodSettings"]["volume"] = 2.0
|
settings["NFMDemodSettings"]["volume"] = 2.0
|
||||||
|
|
||||||
if options.udp_copy is not None:
|
if options.udp_copy is not None:
|
||||||
|
@ -191,7 +191,7 @@ def setupChannels(scan_control, options):
|
|||||||
settings["NFMDemodSettings"]["afBandwidth"] = options.af_bw * 1000
|
settings["NFMDemodSettings"]["afBandwidth"] = options.af_bw * 1000
|
||||||
settings["NFMDemodSettings"]["rfBandwidth"] = options.rf_bw
|
settings["NFMDemodSettings"]["rfBandwidth"] = options.rf_bw
|
||||||
settings["NFMDemodSettings"]["volume"] = options.volume
|
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"]["squelchGate"] = options.squelch_gate / 10 # 10's of ms
|
||||||
settings["NFMDemodSettings"]["title"] = "Channel %d" % i
|
settings["NFMDemodSettings"]["title"] = "Channel %d" % i
|
||||||
elif options.channel_id == "AMDemod":
|
elif options.channel_id == "AMDemod":
|
||||||
|
Loading…
Reference in New Issue
Block a user