mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-06-19 14:54:54 -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
|
Real FreqTracker::getFrequency() const
|
||||||
{
|
{
|
||||||
if (!m_settings.m_tracking) {
|
if (m_settings.m_trackerType == FreqTrackerSettings::TrackerPLL) {
|
||||||
return 0;
|
|
||||||
} else if (m_settings.m_trackerType == FreqTrackerSettings::TrackerPLL) {
|
|
||||||
return (m_pll.getFreq() * m_channelSampleRate) / (2.0 * M_PI);
|
return (m_pll.getFreq() * m_channelSampleRate) / (2.0 * M_PI);
|
||||||
} else if (m_settings.m_trackerType == FreqTrackerSettings::TrackerFLL) {
|
} else if (m_settings.m_trackerType == FreqTrackerSettings::TrackerFLL) {
|
||||||
return (m_fll.getFreq() * m_channelSampleRate) / (2.0 * M_PI);
|
return (m_fll.getFreq() * m_channelSampleRate) / (2.0 * M_PI);
|
||||||
|
@ -147,7 +147,7 @@ public:
|
|||||||
uint32_t getSampleRate() const { return m_channelSampleRate; }
|
uint32_t getSampleRate() const { return m_channelSampleRate; }
|
||||||
double getMagSq() const { return m_magsq; }
|
double getMagSq() const { return m_magsq; }
|
||||||
bool getSquelchOpen() const { return m_squelchOpen; }
|
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;
|
Real getFrequency() const;
|
||||||
|
|
||||||
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
void getMagSqLevels(double& avg, double& peak, int& nbSamples)
|
||||||
|
@ -334,15 +334,23 @@ void FreqTrackerGUI::displaySettings()
|
|||||||
blockApplySettings(true);
|
blockApplySettings(true);
|
||||||
|
|
||||||
ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency());
|
ui->deltaFrequency->setValue(m_channelMarker.getCenterFrequency());
|
||||||
|
ui->log2Decim->setCurrentIndex(m_settings.m_log2Decim);
|
||||||
int displayValue = m_settings.m_rfBandwidth/100.0;
|
int displayValue = m_settings.m_rfBandwidth/100.0;
|
||||||
ui->rfBW->setValue(displayValue);
|
ui->rfBW->setValue(displayValue);
|
||||||
ui->rfBWText->setText(QString("%1 kHz").arg(displayValue / 10.0, 0, 'f', 1));
|
ui->rfBWText->setText(QString("%1 kHz").arg(displayValue / 10.0, 0, 'f', 1));
|
||||||
|
|
||||||
ui->squelch->setValue(m_settings.m_squelch);
|
ui->squelch->setValue(m_settings.m_squelch);
|
||||||
ui->squelchText->setText(QString("%1 dB").arg(m_settings.m_squelch));
|
ui->squelchText->setText(QString("%1 dB").arg(m_settings.m_squelch));
|
||||||
|
|
||||||
ui->tracking->setChecked(m_settings.m_tracking);
|
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);
|
blockApplySettings(false);
|
||||||
}
|
}
|
||||||
@ -382,19 +390,19 @@ void FreqTrackerGUI::tick()
|
|||||||
ui->squelchLabel->setStyleSheet("QLabel { background:rgb(50,50,50); }");
|
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; }");
|
||||||
if (m_freqTracker->getPllLocked()) {
|
} else {
|
||||||
ui->tracking->setStyleSheet("QToolButton { background-color : green; }");
|
ui->tracking->setStyleSheet("QToolButton { background:rgb(79,79,79); }");
|
||||||
} else {
|
}
|
||||||
ui->tracking->setStyleSheet("QToolButton { background:rgb(79,79,79); }");
|
|
||||||
}
|
|
||||||
|
|
||||||
int freq = m_freqTracker->getFrequency();
|
int freq = m_freqTracker->getFrequency();
|
||||||
ui->tracking->setToolTip(tr("Tracking on. Freq = %1 Hz").arg(freq));
|
QLocale loc;
|
||||||
}
|
ui->trackingFrequencyText->setText(tr("%1 Hz").arg(loc.toString(freq)));
|
||||||
else
|
|
||||||
{
|
if (m_settings.m_tracking) {
|
||||||
|
ui->tracking->setToolTip("Tracking on");
|
||||||
|
} else {
|
||||||
ui->tracking->setToolTip("Tracking off");
|
ui->tracking->setToolTip("Tracking off");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>350</width>
|
<width>360</width>
|
||||||
<height>145</height>
|
<height>145</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -18,13 +18,13 @@
|
|||||||
</property>
|
</property>
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>350</width>
|
<width>360</width>
|
||||||
<height>100</height>
|
<height>100</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
<property name="maximumSize">
|
<property name="maximumSize">
|
||||||
<size>
|
<size>
|
||||||
<width>350</width>
|
<width>360</width>
|
||||||
<height>16777215</height>
|
<height>16777215</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
@ -45,7 +45,7 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>348</width>
|
<width>358</width>
|
||||||
<height>140</height>
|
<height>140</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
@ -130,6 +130,25 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</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>
|
<item>
|
||||||
<spacer name="horizontalSpacer">
|
<spacer name="horizontalSpacer">
|
||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
@ -375,6 +394,11 @@
|
|||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>Tracking type</string>
|
<string>Tracking type</string>
|
||||||
</property>
|
</property>
|
||||||
|
<item>
|
||||||
|
<property name="text">
|
||||||
|
<string>No</string>
|
||||||
|
</property>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>FLL</string>
|
<string>FLL</string>
|
||||||
|
@ -111,7 +111,7 @@ bool FreqTrackerSettings::deserialize(const QByteArray& data)
|
|||||||
d.readString(9, &m_title, "Frequency Tracker");
|
d.readString(9, &m_title, "Frequency Tracker");
|
||||||
d.readBool(10, &m_tracking, false);
|
d.readBool(10, &m_tracking, false);
|
||||||
d.readS32(12, &tmp, 0);
|
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);
|
d.readU32(13, &utmp, 2);
|
||||||
m_pllPskOrder = utmp > 32 ? 32 : utmp;
|
m_pllPskOrder = utmp > 32 ? 32 : utmp;
|
||||||
d.readBool(14, &m_rrc, false);
|
d.readBool(14, &m_rrc, false);
|
||||||
|
@ -29,6 +29,7 @@ struct FreqTrackerSettings
|
|||||||
{
|
{
|
||||||
enum TrackerType
|
enum TrackerType
|
||||||
{
|
{
|
||||||
|
TrackerNone,
|
||||||
TrackerFLL,
|
TrackerFLL,
|
||||||
TrackerPLL
|
TrackerPLL
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user