1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2026-06-02 06:04:39 -04:00

HackRF input: continuous sample rate setting

This commit is contained in:
f4exb
2017-04-01 13:08:41 +02:00
parent ad6b33c280
commit 813d79a115
10 changed files with 119 additions and 94 deletions
@@ -43,6 +43,9 @@ HackRFInputGui::HackRFInputGui(DeviceSourceAPI *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);
@@ -51,7 +54,6 @@ HackRFInputGui::HackRFInputGui(DeviceSourceAPI *deviceAPI, QWidget* parent) :
m_sampleSource = new HackRFInput(m_deviceAPI);
displaySampleRates();
displayBandwidths();
m_deviceAPI->setSource(m_sampleSource);
@@ -165,7 +167,7 @@ void HackRFInputGui::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 HackRFInputGui::displaySettings()
@@ -178,8 +180,7 @@ void HackRFInputGui::displaySettings()
ui->dcOffset->setChecked(m_settings.m_dcBlock);
ui->iqImbalance->setChecked(m_settings.m_iqCorrection);
unsigned int sampleRateIndex = HackRFSampleRates::getRateIndex(m_settings.m_devSampleRate);
ui->sampleRate->setCurrentIndex(sampleRateIndex);
ui->sampleRate->setValue(m_settings.m_devSampleRate);
ui->biasT->setChecked(m_settings.m_biasT);
@@ -198,29 +199,6 @@ void HackRFInputGui::displaySettings()
ui->vga->setValue(m_settings.m_vgaGain);
}
void HackRFInputGui::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 HackRFInputGui::displayBandwidths()
{
int savedIndex = HackRFBandwidths::getBandwidthIndex(m_settings.m_bandwidth/1000);
@@ -250,12 +228,6 @@ void HackRFInputGui::sendSettings()
m_updateTimer.start(100);
}
void HackRFInputGui::on_centerFrequency_changed(quint64 value)
{
m_settings.m_centerFrequency = value * 1000;
sendSettings();
}
void HackRFInputGui::on_LOppm_valueChanged(int value)
{
m_settings.m_LOppmTenths = value;
@@ -277,9 +249,9 @@ void HackRFInputGui::on_iqImbalance_toggled(bool checked)
void HackRFInputGui::on_sampleRate_currentIndexChanged(int index)
{
int newrate = HackRFSampleRates::getRate(index);
m_settings.m_devSampleRate = newrate;
sendSettings();
// int newrate = HackRFSampleRates::getRate(index);
// m_settings.m_devOldSampleRate = newrate;
// sendSettings();
}
void HackRFInputGui::on_bbFilter_currentIndexChanged(int index)
@@ -301,6 +273,18 @@ void HackRFInputGui::on_lnaExt_stateChanged(int state)
sendSettings();
}
void HackRFInputGui::on_centerFrequency_changed(quint64 value)
{
m_settings.m_centerFrequency = value * 1000;
sendSettings();
}
void HackRFInputGui::on_newSampleRate_changed(quint64 value)
{
m_settings.m_devSampleRate = value;
sendSettings();
}
void HackRFInputGui::on_decim_currentIndexChanged(int index)
{
if ((index <0) || (index > 6))