mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-11-04 05:30:32 -05: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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user