1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-01 13:47:01 -04:00

HackRF output: continuous sample rate setting

This commit is contained in:
f4exb
2017-04-02 00:23:02 +02:00
parent 813d79a115
commit f91eba5b10
11 changed files with 103 additions and 102 deletions
@@ -42,6 +42,9 @@ HackRFOutputGui::HackRFOutputGui(DeviceSinkAPI *deviceAPI, QWidget* parent) :
ui->centerFrequency->setColorMapper(ColorMapper(ColorMapper::ReverseGold));
ui->centerFrequency->setValueRange(7, 0U, 7250000U);
ui->sampleRate->setColorMapper(ColorMapper(ColorMapper::ReverseGreenYellow));
ui->sampleRate->setValueRange(8, 2400000U, 20000000U);
connect(&m_updateTimer, SIGNAL(timeout()), this, SLOT(updateHardware()));
connect(&m_statusTimer, SIGNAL(timeout()), this, SLOT(updateStatus()));
m_statusTimer.start(500);
@@ -50,7 +53,6 @@ HackRFOutputGui::HackRFOutputGui(DeviceSinkAPI *deviceAPI, QWidget* parent) :
m_deviceSampleSink = new HackRFOutput(m_deviceAPI);
displaySampleRates();
displayBandwidths();
m_deviceAPI->setSink(m_deviceSampleSink);
@@ -156,7 +158,7 @@ void HackRFOutputGui::updateSampleRateAndFrequency()
{
m_deviceAPI->getSpectrum()->setSampleRate(m_sampleRate);
m_deviceAPI->getSpectrum()->setCenterFrequency(m_deviceCenterFrequency);
ui->deviceRateText->setText(tr("%1k").arg((float)m_sampleRate / 1000));
ui->deviceRateText->setText(QString("%1k").arg(QString::number(m_sampleRate/1000.0, 'f', 0)));
}
void HackRFOutputGui::displaySettings()
@@ -166,11 +168,10 @@ void HackRFOutputGui::displaySettings()
ui->LOppm->setValue(m_settings.m_LOppmTenths);
ui->LOppmText->setText(QString("%1").arg(QString::number(m_settings.m_LOppmTenths/10.0, 'f', 1)));
unsigned int sampleRateIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate);
ui->sampleRate->setCurrentIndex(sampleRateIndex);
ui->biasT->setChecked(m_settings.m_biasT);
ui->sampleRate->setValue(m_settings.m_devSampleRate);
ui->interp->setCurrentIndex(m_settings.m_log2Interp);
ui->lnaExt->setChecked(m_settings.m_lnaExt);
@@ -181,29 +182,6 @@ void HackRFOutputGui::displaySettings()
ui->bbFilter->setCurrentIndex(bandwidthIndex);
}
void HackRFOutputGui::displaySampleRates()
{
int savedIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate);
ui->sampleRate->blockSignals(true);
ui->sampleRate->clear();
for (int i = 0; i < HackRFSampleRates::m_nb_rates; i++)
{
ui->sampleRate->addItem(QString("%1").arg(QString::number(HackRFSampleRates::m_rates[i] / 1000.0f, 'f', 0)));
}
ui->sampleRate->blockSignals(false);
if (savedIndex < HackRFSampleRates::m_nb_rates)
{
ui->sampleRate->setCurrentIndex(savedIndex);
}
else
{
ui->sampleRate->setCurrentIndex((int) HackRFSampleRates::m_nb_rates-1);
}
}
void HackRFOutputGui::displayBandwidths()
{
int savedIndex = HackRFBandwidths::getBandwidthIndex(m_settings.m_bandwidth/1000);
@@ -239,6 +217,12 @@ void HackRFOutputGui::on_centerFrequency_changed(quint64 value)
sendSettings();
}
void HackRFOutputGui::on_sampleRate_changed(quint64 value)
{
m_settings.m_devSampleRate = value;
sendSettings();
}
void HackRFOutputGui::on_LOppm_valueChanged(int value)
{
m_settings.m_LOppmTenths = value;
@@ -246,13 +230,6 @@ void HackRFOutputGui::on_LOppm_valueChanged(int value)
sendSettings();
}
void HackRFOutputGui::on_sampleRate_currentIndexChanged(int index)
{
int newrate = HackRFSampleRates::getRate(index);
m_settings.m_devSampleRate = newrate;
sendSettings();
}
void HackRFOutputGui::on_bbFilter_currentIndexChanged(int index)
{
int newBandwidth = HackRFBandwidths::getBandwidth(index);