diff --git a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp
index facc99aad..a09b069e4 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutput.cpp
+++ b/plugins/samplesink/hackrfoutput/hackrfoutput.cpp
@@ -269,13 +269,13 @@ bool HackRFOutput::applySettings(const HackRFOutputSettings& settings, bool forc
if (rc != HACKRF_SUCCESS)
{
- qCritical("HackRFOutput::applySettings: could not set sample rate to %d S/s: %s",
+ qCritical("HackRFOutput::applySettings: could not set sample rate to %llu S/s: %s",
settings.m_devSampleRate,
hackrf_error_name(rc));
}
else
{
- qDebug("HackRFOutput::applySettings: sample rate set to %d S/s",
+ qDebug("HackRFOutput::applySettings: sample rate set to %llu S/s",
settings.m_devSampleRate);
m_hackRFThread->setSamplerate(settings.m_devSampleRate);
}
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp
index 030cdf94c..ede7d9ce2 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.cpp
@@ -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);
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.h b/plugins/samplesink/hackrfoutput/hackrfoutputgui.h
index e293d6ad6..67cc4d193 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.h
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.h
@@ -70,7 +70,6 @@ private:
int m_lastEngineState;
void displaySettings();
- void displaySampleRates();
void displayBandwidths();
void sendSettings();
void updateSampleRateAndFrequency();
@@ -78,8 +77,8 @@ private:
private slots:
void handleDSPMessages();
void on_centerFrequency_changed(quint64 value);
+ void on_sampleRate_changed(quint64 value);
void on_LOppm_valueChanged(int value);
- void on_sampleRate_currentIndexChanged(int index);
void on_biasT_stateChanged(int state);
void on_interp_currentIndexChanged(int index);
void on_lnaExt_stateChanged(int state);
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui b/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui
index 746fe3c84..0ab0ed1e5 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputgui.ui
@@ -6,20 +6,20 @@
0
0
- 260
- 210
+ 320
+ 300
-
+
0
0
- 260
- 210
+ 320
+ 300
@@ -49,6 +49,9 @@
-
+
+ 2
+
-
-
@@ -163,6 +166,12 @@
-
+
+ 2
+
+
+ 2
+
3
@@ -204,23 +213,22 @@
- -
-
-
- Qt::Horizontal
-
-
-
-
-
-
+
+ 2
+
+
+ 2
+
+
-
Int
- -
+
-
Activate antenna bias tee
@@ -233,7 +241,7 @@
- -
+
-
Extra LNA +14dB
@@ -246,7 +254,7 @@
- -
+
-
Qt::Horizontal
@@ -259,7 +267,7 @@
- -
+
-
@@ -308,11 +316,27 @@
-
-
-
- 3
+
+
+ Qt::Horizontal
-
-
+
+
+ -
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
+ 6
+
+
-
@@ -321,39 +345,41 @@
- Rate
+ SR
- -
-
-
+
-
+
+
+
+ 0
+ 0
+
+
+
- 70
- 16777215
+ 32
+ 16
-
- Device sample rate
+
+
+ Monospace
+ 12
+
- -
-
+
-
+
- BBF
+ S/s
- -
-
-
- RF bandpas filter
-
-
-
- -
-
+
-
+
Qt::Horizontal
@@ -365,10 +391,17 @@
- -
-
+
-
+
- kS/s
+ BBF
+
+
+
+ -
+
+
+ RF bandpas filter
@@ -383,6 +416,9 @@
-
+
+ 2
+
3
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp
index 9e9c79fc5..e24552686 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputplugin.cpp
@@ -29,7 +29,7 @@
const PluginDescriptor HackRFOutputPlugin::m_pluginDescriptor = {
QString("HackRF Output"),
- QString("3.3.0"),
+ QString("3.3.3"),
QString("(c) Edouard Griffiths, F4EXB"),
QString("https://github.com/f4exb/sdrangel"),
true,
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputsettings.cpp b/plugins/samplesink/hackrfoutput/hackrfoutputsettings.cpp
index 5eb0a987c..e80df6b92 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputsettings.cpp
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputsettings.cpp
@@ -29,12 +29,12 @@ void HackRFOutputSettings::resetToDefaults()
{
m_centerFrequency = 435000 * 1000;
m_LOppmTenths = 0;
- m_devSampleRate = 2400000;
m_biasT = false;
m_log2Interp = 0;
m_lnaExt = false;
m_vgaGain = 22;
m_bandwidth = 1750000;
+ m_devSampleRate = 2400000;
}
QByteArray HackRFOutputSettings::serialize() const
@@ -42,12 +42,12 @@ QByteArray HackRFOutputSettings::serialize() const
SimpleSerializer s(1);
s.writeS32(1, m_LOppmTenths);
- s.writeU32(2, m_devSampleRate);
s.writeBool(3, m_biasT);
s.writeU32(4, m_log2Interp);
s.writeBool(5, m_lnaExt);
s.writeU32(6, m_vgaGain);
s.writeU32(7, m_bandwidth);
+ s.writeU64(8, m_devSampleRate);
return s.final();
}
@@ -67,12 +67,12 @@ bool HackRFOutputSettings::deserialize(const QByteArray& data)
int intval;
d.readS32(1, &m_LOppmTenths, 0);
- d.readU32(2, &m_devSampleRate, 2400000);
d.readBool(3, &m_biasT, false);
d.readU32(4, &m_log2Interp, 0);
d.readBool(5, &m_lnaExt, false);
d.readU32(6, &m_vgaGain, 30);
d.readU32(7, &m_bandwidth, 1750000);
+ d.readU64(8, &m_devSampleRate, 2400000);
return true;
}
diff --git a/plugins/samplesink/hackrfoutput/hackrfoutputsettings.h b/plugins/samplesink/hackrfoutput/hackrfoutputsettings.h
index 0c387855c..610e9f4e4 100644
--- a/plugins/samplesink/hackrfoutput/hackrfoutputsettings.h
+++ b/plugins/samplesink/hackrfoutput/hackrfoutputsettings.h
@@ -22,10 +22,10 @@
struct HackRFOutputSettings {
quint64 m_centerFrequency;
qint32 m_LOppmTenths;
- quint32 m_devSampleRate;
quint32 m_bandwidth;
quint32 m_vgaGain;
quint32 m_log2Interp;
+ quint64 m_devSampleRate;
bool m_biasT;
bool m_lnaExt;
diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp
index ace60279b..617e7fdf4 100644
--- a/plugins/samplesource/hackrfinput/hackrfinputgui.cpp
+++ b/plugins/samplesource/hackrfinput/hackrfinputgui.cpp
@@ -247,13 +247,6 @@ void HackRFInputGui::on_iqImbalance_toggled(bool checked)
sendSettings();
}
-void HackRFInputGui::on_sampleRate_currentIndexChanged(int index)
-{
-// int newrate = HackRFSampleRates::getRate(index);
-// m_settings.m_devOldSampleRate = newrate;
-// sendSettings();
-}
-
void HackRFInputGui::on_bbFilter_currentIndexChanged(int index)
{
int newBandwidth = HackRFBandwidths::getBandwidth(index);
@@ -279,7 +272,7 @@ void HackRFInputGui::on_centerFrequency_changed(quint64 value)
sendSettings();
}
-void HackRFInputGui::on_newSampleRate_changed(quint64 value)
+void HackRFInputGui::on_sampleRate_changed(quint64 value)
{
m_settings.m_devSampleRate = value;
sendSettings();
diff --git a/plugins/samplesource/hackrfinput/hackrfinputgui.h b/plugins/samplesource/hackrfinput/hackrfinputgui.h
index 260897f61..256467051 100644
--- a/plugins/samplesource/hackrfinput/hackrfinputgui.h
+++ b/plugins/samplesource/hackrfinput/hackrfinputgui.h
@@ -78,11 +78,10 @@ private:
private slots:
void handleDSPMessages();
void on_centerFrequency_changed(quint64 value);
- void on_newSampleRate_changed(quint64 value);
+ void on_sampleRate_changed(quint64 value);
void on_LOppm_valueChanged(int value);
void on_dcOffset_toggled(bool checked);
void on_iqImbalance_toggled(bool checked);
- void on_sampleRate_currentIndexChanged(int index);
void on_biasT_stateChanged(int state);
void on_decim_currentIndexChanged(int index);
void on_fcPos_currentIndexChanged(int index);
diff --git a/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp b/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp
index f4e784e74..65d82bedc 100644
--- a/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp
+++ b/plugins/samplesource/hackrfinput/hackrfinputsettings.cpp
@@ -29,7 +29,6 @@ void HackRFInputSettings::resetToDefaults()
{
m_centerFrequency = 435000 * 1000;
m_LOppmTenths = 0;
- m_devOldSampleRate = 2400000;
m_biasT = false;
m_log2Decim = 0;
m_fcPos = FC_POS_CENTER;
@@ -39,6 +38,7 @@ void HackRFInputSettings::resetToDefaults()
m_vgaGain = 16;
m_dcBlock = false;
m_iqCorrection = false;
+ m_devSampleRate = 2400000;
}
QByteArray HackRFInputSettings::serialize() const
@@ -46,7 +46,6 @@ QByteArray HackRFInputSettings::serialize() const
SimpleSerializer s(1);
s.writeS32(1, m_LOppmTenths);
- s.writeU32(2, m_devOldSampleRate);
s.writeBool(3, m_biasT);
s.writeU32(4, m_log2Decim);
s.writeS32(5, m_fcPos);
@@ -76,7 +75,6 @@ bool HackRFInputSettings::deserialize(const QByteArray& data)
int intval;
d.readS32(1, &m_LOppmTenths, 0);
- d.readU32(2, &m_devOldSampleRate, 2400000);
d.readBool(3, &m_biasT, false);
d.readU32(4, &m_log2Decim, 0);
d.readS32(5, &intval, 0);
diff --git a/plugins/samplesource/hackrfinput/hackrfinputsettings.h b/plugins/samplesource/hackrfinput/hackrfinputsettings.h
index ee089f40a..42e17b91d 100644
--- a/plugins/samplesource/hackrfinput/hackrfinputsettings.h
+++ b/plugins/samplesource/hackrfinput/hackrfinputsettings.h
@@ -28,7 +28,6 @@ struct HackRFInputSettings {
quint64 m_centerFrequency;
qint32 m_LOppmTenths;
- quint32 m_devOldSampleRate;
quint32 m_bandwidth;
quint32 m_lnaGain;
quint32 m_vgaGain;