mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-04-10 13:40:37 -04:00
Frequency tracker (3)
This commit is contained in:
parent
230737cac5
commit
e1662d2f4e
@ -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);
|
||||
|
@ -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)
|
||||
|
@ -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");
|
||||
}
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>350</width>
|
||||
<width>360</width>
|
||||
<height>145</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -18,13 +18,13 @@
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<width>360</width>
|
||||
<height>100</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>350</width>
|
||||
<width>360</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
@ -45,7 +45,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>348</width>
|
||||
<width>358</width>
|
||||
<height>140</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -130,6 +130,25 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="trackingFrequencyText">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>85</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Tracking delta frequency (Hz)</string>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>-9,999,999 Hz</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
@ -375,6 +394,11 @@
|
||||
<property name="toolTip">
|
||||
<string>Tracking type</string>
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>No</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>FLL</string>
|
||||
|
@ -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);
|
||||
|
@ -29,6 +29,7 @@ struct FreqTrackerSettings
|
||||
{
|
||||
enum TrackerType
|
||||
{
|
||||
TrackerNone,
|
||||
TrackerFLL,
|
||||
TrackerPLL
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user