1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-12-23 01:55:48 -05:00

AM and NFM demods: improve signal meter with 50ms refresh rate

This commit is contained in:
f4exb 2016-12-06 01:57:35 +01:00
parent bc75ca7735
commit 79b4e6c945
4 changed files with 21 additions and 42 deletions

View File

@ -218,8 +218,7 @@ AMDemodGUI::AMDemodGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidget
m_channelMarker(this),
m_basicSettingsShown(false),
m_doApplySettings(true),
m_squelchOpen(false),
m_powerMeterTickCount(0)
m_squelchOpen(false)
{
ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose, true);
@ -305,27 +304,18 @@ void AMDemodGUI::enterEvent(QEvent*)
void AMDemodGUI::tick()
{
if (m_powerMeterTickCount < 4) // 200 ms
{
m_powerMeterTickCount++;
}
else
{
Real magsqAvg, magsqPeak;
int nbMagsqSamples;
m_amDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
Real powDbAvg = CalcDb::dbPower(magsqAvg);
Real powDbPeak = CalcDb::dbPower(magsqPeak);
Real magsqAvg, magsqPeak;
int nbMagsqSamples;
m_amDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
Real powDbAvg = CalcDb::dbPower(magsqAvg);
Real powDbPeak = CalcDb::dbPower(magsqPeak);
ui->channelPowerMeter->levelChanged(
(100.0f + powDbAvg) / 100.0f,
(100.0f + powDbPeak) / 100.0f,
nbMagsqSamples);
ui->channelPowerMeter->levelChanged(
(100.0f + powDbAvg) / 100.0f,
(100.0f + powDbPeak) / 100.0f,
nbMagsqSamples);
ui->channelPower->setText(QString::number(powDbAvg, 'f', 1));
m_powerMeterTickCount = 0;
}
ui->channelPower->setText(QString::number(powDbAvg, 'f', 1));
bool squelchOpen = m_amDemod->getSquelchOpen();

View File

@ -61,7 +61,6 @@ private:
DownChannelizer* m_channelizer;
AMDemod* m_amDemod;
bool m_squelchOpen;
int m_powerMeterTickCount;
explicit AMDemodGUI(PluginAPI* pluginAPI, DeviceSourceAPI *deviceAPI, QWidget* parent = NULL);
virtual ~AMDemodGUI();

View File

@ -384,27 +384,18 @@ void NFMDemodGUI::blockApplySettings(bool block)
void NFMDemodGUI::tick()
{
if (m_powerMeterTickCount < 4) // 200 ms
{
m_powerMeterTickCount++;
}
else
{
Real magsqAvg, magsqPeak;
int nbMagsqSamples;
m_nfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
Real powDbAvg = CalcDb::dbPower(magsqAvg);
Real powDbPeak = CalcDb::dbPower(magsqPeak);
Real magsqAvg, magsqPeak;
int nbMagsqSamples;
m_nfmDemod->getMagSqLevels(magsqAvg, magsqPeak, nbMagsqSamples);
Real powDbAvg = CalcDb::dbPower(magsqAvg);
Real powDbPeak = CalcDb::dbPower(magsqPeak);
ui->channelPowerMeter->levelChanged(
(100.0f + powDbAvg) / 100.0f,
(100.0f + powDbPeak) / 100.0f,
nbMagsqSamples);
ui->channelPowerMeter->levelChanged(
(100.0f + powDbAvg) / 100.0f,
(100.0f + powDbPeak) / 100.0f,
nbMagsqSamples);
ui->channelPower->setText(QString::number(powDbAvg, 'f', 1));
m_powerMeterTickCount = 0;
}
ui->channelPower->setText(QString::number(powDbAvg, 'f', 1));
bool squelchOpen = m_nfmDemod->getSquelchOpen();

View File

@ -69,7 +69,6 @@ private:
bool m_ctcssOn;
bool m_audioMute;
bool m_squelchOpen;
int m_powerMeterTickCount;
static const int m_rfBW[];
static const int m_fmDev[];