diff --git a/plugins/channelrx/freqtracker/freqtracker.cpp b/plugins/channelrx/freqtracker/freqtracker.cpp index 0d2ca4fd6..78a4db5de 100644 --- a/plugins/channelrx/freqtracker/freqtracker.cpp +++ b/plugins/channelrx/freqtracker/freqtracker.cpp @@ -190,9 +190,7 @@ void FreqTracker::stop() Real FreqTracker::getFrequency() const { - if (!m_settings.m_tracking) { - return 0; - } else if (m_settings.m_trackerType == FreqTrackerSettings::TrackerPLL) { + if (m_settings.m_trackerType == FreqTrackerSettings::TrackerPLL) { return (m_pll.getFreq() * m_channelSampleRate) / (2.0 * M_PI); } else if (m_settings.m_trackerType == FreqTrackerSettings::TrackerFLL) { return (m_fll.getFreq() * m_channelSampleRate) / (2.0 * M_PI); diff --git a/plugins/channelrx/freqtracker/freqtracker.h b/plugins/channelrx/freqtracker/freqtracker.h index ef2e8c9ed..97e5125d6 100644 --- a/plugins/channelrx/freqtracker/freqtracker.h +++ b/plugins/channelrx/freqtracker/freqtracker.h @@ -147,7 +147,7 @@ public: uint32_t getSampleRate() const { return m_channelSampleRate; } double getMagSq() const { return m_magsq; } bool getSquelchOpen() const { return m_squelchOpen; } - bool getPllLocked() const { return m_settings.m_tracking && (m_settings.m_trackerType == FreqTrackerSettings::TrackerPLL) && m_pll.locked(); } + bool getPllLocked() const { return (m_settings.m_trackerType == FreqTrackerSettings::TrackerPLL) && m_pll.locked(); } Real getFrequency() const; void getMagSqLevels(double& avg, double& peak, int& nbSamples) diff --git a/plugins/channelrx/freqtracker/freqtrackergui.cpp b/plugins/channelrx/freqtracker/freqtrackergui.cpp index ab92a3464..12421965e 100644 --- a/plugins/channelrx/freqtracker/freqtrackergui.cpp +++ b/plugins/channelrx/freqtracker/freqtrackergui.cpp @@ -334,15 +334,23 @@ void FreqTrackerGUI::displaySettings() blockApplySettings(true); ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency()); - + ui->log2Decim->setCurrentIndex(m_settings.m_log2Decim); int displayValue = m_settings.m_rfBandwidth/100.0; ui->rfBW->setValue(displayValue); ui->rfBWText->setText(QString("%1 kHz").arg(displayValue / 10.0, 0, 'f', 1)); - ui->squelch->setValue(m_settings.m_squelch); ui->squelchText->setText(QString("%1 dB").arg(m_settings.m_squelch)); - ui->tracking->setChecked(m_settings.m_tracking); + ui->trackerType->setCurrentIndex((int) m_settings.m_trackerType); + + int i = 0; + for(; ((m_settings.m_pllPskOrder>>i) & 1) == 0; i++); + ui->pllPskOrder->setCurrentIndex(i); + + ui->rrc->setChecked(m_settings.m_rrc); + ui->rrcRolloff->setValue(m_settings.m_rrcRolloff); + QString rolloffStr = QString::number(m_settings.m_rrcRolloff/100.0, 'f', 2); + ui->rrcRolloffText->setText(rolloffStr); blockApplySettings(false); } @@ -382,19 +390,19 @@ void FreqTrackerGUI::tick() ui->squelchLabel->setStyleSheet("QLabel { background:rgb(50,50,50); }"); } - if (m_settings.m_tracking) - { - if (m_freqTracker->getPllLocked()) { - ui->tracking->setStyleSheet("QToolButton { background-color : green; }"); - } else { - ui->tracking->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); - } + if (m_freqTracker->getPllLocked()) { + ui->tracking->setStyleSheet("QToolButton { background-color : green; }"); + } else { + ui->tracking->setStyleSheet("QToolButton { background:rgb(79,79,79); }"); + } - int freq = m_freqTracker->getFrequency(); - ui->tracking->setToolTip(tr("Tracking on. Freq = %1 Hz").arg(freq)); - } - else - { + int freq = m_freqTracker->getFrequency(); + QLocale loc; + ui->trackingFrequencyText->setText(tr("%1 Hz").arg(loc.toString(freq))); + + if (m_settings.m_tracking) { + ui->tracking->setToolTip("Tracking on"); + } else { ui->tracking->setToolTip("Tracking off"); } diff --git a/plugins/channelrx/freqtracker/freqtrackergui.ui b/plugins/channelrx/freqtracker/freqtrackergui.ui index 561a31222..9489120c1 100644 --- a/plugins/channelrx/freqtracker/freqtrackergui.ui +++ b/plugins/channelrx/freqtracker/freqtrackergui.ui @@ -6,7 +6,7 @@ 0 0 - 350 + 360 145 @@ -18,13 +18,13 @@ - 350 + 360 100 - 350 + 360 16777215 @@ -45,7 +45,7 @@ 0 0 - 348 + 358 140 @@ -130,6 +130,25 @@ + + + + + 85 + 0 + + + + Tracking delta frequency (Hz) + + + -9,999,999 Hz + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + @@ -375,6 +394,11 @@ Tracking type + + + No + + FLL diff --git a/plugins/channelrx/freqtracker/freqtrackersettings.cpp b/plugins/channelrx/freqtracker/freqtrackersettings.cpp index a77443295..928861a29 100644 --- a/plugins/channelrx/freqtracker/freqtrackersettings.cpp +++ b/plugins/channelrx/freqtracker/freqtrackersettings.cpp @@ -111,7 +111,7 @@ bool FreqTrackerSettings::deserialize(const QByteArray& data) d.readString(9, &m_title, "Frequency Tracker"); d.readBool(10, &m_tracking, false); d.readS32(12, &tmp, 0); - m_trackerType = tmp < 0 ? TrackerFLL : tmp > 1 ? TrackerPLL : (TrackerType) tmp; + m_trackerType = tmp < 0 ? TrackerFLL : tmp > 2 ? TrackerPLL : (TrackerType) tmp; d.readU32(13, &utmp, 2); m_pllPskOrder = utmp > 32 ? 32 : utmp; d.readBool(14, &m_rrc, false); diff --git a/plugins/channelrx/freqtracker/freqtrackersettings.h b/plugins/channelrx/freqtracker/freqtrackersettings.h index 59401278f..dbcb398c4 100644 --- a/plugins/channelrx/freqtracker/freqtrackersettings.h +++ b/plugins/channelrx/freqtracker/freqtrackersettings.h @@ -29,6 +29,7 @@ struct FreqTrackerSettings { enum TrackerType { + TrackerNone, TrackerFLL, TrackerPLL };