From 5d0f9c7878c14009614b2cbdbe132b4e67f9e74d Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 26 Nov 2018 13:31:51 +0100 Subject: [PATCH] RTL-SDR: offset tuning support: REST API and version update --- app/main.cpp | 2 +- appbench/main.cpp | 2 +- appsrv/main.cpp | 2 +- debian/changelog | 6 ++++++ plugins/samplesource/rtlsdr/rtlsdrgui.ui | 2 +- plugins/samplesource/rtlsdr/rtlsdrinput.cpp | 4 ++++ sdrbase/resources/webapi/doc/html2/index.html | 5 ++++- .../webapi/doc/swagger/include/RtlSdr.yaml | 4 +++- .../sdrangel/api/swagger/include/RtlSdr.yaml | 4 +++- swagger/sdrangel/code/html2/index.html | 5 ++++- .../code/qt5/client/SWGRtlSdrSettings.cpp | 21 +++++++++++++++++++ .../code/qt5/client/SWGRtlSdrSettings.h | 6 ++++++ 12 files changed, 55 insertions(+), 8 deletions(-) diff --git a/app/main.cpp b/app/main.cpp index 8d1f8de47..101f06656 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -35,7 +35,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo */ QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setApplicationName("SDRangel"); - QCoreApplication::setApplicationVersion("4.3.0"); + QCoreApplication::setApplicationVersion("4.3.1"); #if QT_VERSION >= 0x050600 QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); // DPI support QCoreApplication::setAttribute(Qt::AA_UseHighDpiPixmaps); //HiDPI pixmaps diff --git a/appbench/main.cpp b/appbench/main.cpp index 1bb7f1f5f..49161a862 100644 --- a/appbench/main.cpp +++ b/appbench/main.cpp @@ -57,7 +57,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setApplicationName("SDRangelBench"); - QCoreApplication::setApplicationVersion("4.3.0"); + QCoreApplication::setApplicationVersion("4.3.1"); int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP}; std::vector vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int)); diff --git a/appsrv/main.cpp b/appsrv/main.cpp index e11724111..af308e7a3 100644 --- a/appsrv/main.cpp +++ b/appsrv/main.cpp @@ -56,7 +56,7 @@ static int runQtApplication(int argc, char* argv[], qtwebapp::LoggerWithFile *lo QCoreApplication::setOrganizationName("f4exb"); QCoreApplication::setApplicationName("SDRangelSrv"); - QCoreApplication::setApplicationVersion("4.3.0"); + QCoreApplication::setApplicationVersion("4.3.1"); int catchSignals[] = {SIGQUIT, SIGINT, SIGTERM, SIGHUP}; std::vector vsig(catchSignals, catchSignals + sizeof(catchSignals) / sizeof(int)); diff --git a/debian/changelog b/debian/changelog index ef646f6cb..753586486 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +sdrangel (4.3.1-1) unstable; urgency=medium + + * RTL-SDR: offset tuning support + + -- Edouard Griffiths, F4EXB Sun, 02 Dec 2018 21:14:18 +0100 + sdrangel (4.3.0-1) unstable; urgency=medium * SoapySDR support diff --git a/plugins/samplesource/rtlsdr/rtlsdrgui.ui b/plugins/samplesource/rtlsdr/rtlsdrgui.ui index 0549f25e6..dcf3a8a25 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrgui.ui +++ b/plugins/samplesource/rtlsdr/rtlsdrgui.ui @@ -496,7 +496,7 @@ - Offset tuning + Offset tuning (applies to some tuners only incl. E4000) Ofs diff --git a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp index 394096e59..01d3265b9 100644 --- a/plugins/samplesource/rtlsdr/rtlsdrinput.cpp +++ b/plugins/samplesource/rtlsdr/rtlsdrinput.cpp @@ -598,6 +598,9 @@ int RTLSDRInput::webapiSettingsPutPatch( if (deviceSettingsKeys.contains("noModMode")) { settings.m_noModMode = response.getRtlSdrSettings()->getNoModMode() != 0; } + if (deviceSettingsKeys.contains("offsetTuning")) { + settings.m_offsetTuning = response.getRtlSdrSettings()->getOffsetTuning() != 0; + } if (deviceSettingsKeys.contains("transverterDeltaFrequency")) { settings.m_transverterDeltaFrequency = response.getRtlSdrSettings()->getTransverterDeltaFrequency(); } @@ -638,6 +641,7 @@ void RTLSDRInput::webapiFormatDeviceSettings(SWGSDRangel::SWGDeviceSettings& res response.getRtlSdrSettings()->setLog2Decim(settings.m_log2Decim); response.getRtlSdrSettings()->setLowSampleRate(settings.m_lowSampleRate ? 1 : 0); response.getRtlSdrSettings()->setNoModMode(settings.m_noModMode ? 1 : 0); + response.getRtlSdrSettings()->setOffsetTuning(settings.m_offsetTuning ? 1 : 0); response.getRtlSdrSettings()->setTransverterDeltaFrequency(settings.m_transverterDeltaFrequency); response.getRtlSdrSettings()->setTransverterMode(settings.m_transverterMode ? 1 : 0); response.getRtlSdrSettings()->setRfBandwidth(settings.m_rfBandwidth); diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index 2eefbe096..5d9f1d1a8 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -3474,6 +3474,9 @@ margin-bottom: 20px; "noModMode" : { "type" : "integer" }, + "offsetTuning" : { + "type" : "integer" + }, "transverterMode" : { "type" : "integer" }, @@ -23614,7 +23617,7 @@ except ApiException as e:
- Generated 2018-11-14T01:13:54.986+01:00 + Generated 2018-11-26T13:24:54.460+01:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml b/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml index 566866e1a..8b80ce510 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/RtlSdr.yaml @@ -24,11 +24,13 @@ RtlSdrSettings: type: integer noModMode: type: integer + offsetTuning: + type: integer transverterMode: type: integer transverterDeltaFrequency: type: integer - format: int64 + format: int64 rfBandwidth: type: integer fileRecordName: diff --git a/swagger/sdrangel/api/swagger/include/RtlSdr.yaml b/swagger/sdrangel/api/swagger/include/RtlSdr.yaml index 848b5a61f..1c4c0fde2 100644 --- a/swagger/sdrangel/api/swagger/include/RtlSdr.yaml +++ b/swagger/sdrangel/api/swagger/include/RtlSdr.yaml @@ -24,11 +24,13 @@ RtlSdrSettings: type: integer noModMode: type: integer + offsetTuning: + type: integer transverterMode: type: integer transverterDeltaFrequency: type: integer - format: int64 + format: int64 rfBandwidth: type: integer fileRecordName: diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index 2eefbe096..5d9f1d1a8 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -3474,6 +3474,9 @@ margin-bottom: 20px; "noModMode" : { "type" : "integer" }, + "offsetTuning" : { + "type" : "integer" + }, "transverterMode" : { "type" : "integer" }, @@ -23614,7 +23617,7 @@ except ApiException as e:
- Generated 2018-11-14T01:13:54.986+01:00 + Generated 2018-11-26T13:24:54.460+01:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.cpp index 297e5ce1b..4300f89d3 100644 --- a/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.cpp @@ -50,6 +50,8 @@ SWGRtlSdrSettings::SWGRtlSdrSettings() { m_agc_isSet = false; no_mod_mode = 0; m_no_mod_mode_isSet = false; + offset_tuning = 0; + m_offset_tuning_isSet = false; transverter_mode = 0; m_transverter_mode_isSet = false; transverter_delta_frequency = 0L; @@ -88,6 +90,8 @@ SWGRtlSdrSettings::init() { m_agc_isSet = false; no_mod_mode = 0; m_no_mod_mode_isSet = false; + offset_tuning = 0; + m_offset_tuning_isSet = false; transverter_mode = 0; m_transverter_mode_isSet = false; transverter_delta_frequency = 0L; @@ -114,6 +118,7 @@ SWGRtlSdrSettings::cleanup() { + if(file_record_name != nullptr) { delete file_record_name; } @@ -152,6 +157,8 @@ SWGRtlSdrSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&no_mod_mode, pJson["noModMode"], "qint32", ""); + ::SWGSDRangel::setValue(&offset_tuning, pJson["offsetTuning"], "qint32", ""); + ::SWGSDRangel::setValue(&transverter_mode, pJson["transverterMode"], "qint32", ""); ::SWGSDRangel::setValue(&transverter_delta_frequency, pJson["transverterDeltaFrequency"], "qint64", ""); @@ -209,6 +216,9 @@ SWGRtlSdrSettings::asJsonObject() { if(m_no_mod_mode_isSet){ obj->insert("noModMode", QJsonValue(no_mod_mode)); } + if(m_offset_tuning_isSet){ + obj->insert("offsetTuning", QJsonValue(offset_tuning)); + } if(m_transverter_mode_isSet){ obj->insert("transverterMode", QJsonValue(transverter_mode)); } @@ -335,6 +345,16 @@ SWGRtlSdrSettings::setNoModMode(qint32 no_mod_mode) { this->m_no_mod_mode_isSet = true; } +qint32 +SWGRtlSdrSettings::getOffsetTuning() { + return offset_tuning; +} +void +SWGRtlSdrSettings::setOffsetTuning(qint32 offset_tuning) { + this->offset_tuning = offset_tuning; + this->m_offset_tuning_isSet = true; +} + qint32 SWGRtlSdrSettings::getTransverterMode() { return transverter_mode; @@ -391,6 +411,7 @@ SWGRtlSdrSettings::isSet(){ if(m_iq_imbalance_isSet){ isObjectUpdated = true; break;} if(m_agc_isSet){ isObjectUpdated = true; break;} if(m_no_mod_mode_isSet){ isObjectUpdated = true; break;} + if(m_offset_tuning_isSet){ isObjectUpdated = true; break;} if(m_transverter_mode_isSet){ isObjectUpdated = true; break;} if(m_transverter_delta_frequency_isSet){ isObjectUpdated = true; break;} if(m_rf_bandwidth_isSet){ isObjectUpdated = true; break;} diff --git a/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h b/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h index 4044644ea..16c1dcdff 100644 --- a/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGRtlSdrSettings.h @@ -75,6 +75,9 @@ public: qint32 getNoModMode(); void setNoModMode(qint32 no_mod_mode); + qint32 getOffsetTuning(); + void setOffsetTuning(qint32 offset_tuning); + qint32 getTransverterMode(); void setTransverterMode(qint32 transverter_mode); @@ -124,6 +127,9 @@ private: qint32 no_mod_mode; bool m_no_mod_mode_isSet; + qint32 offset_tuning; + bool m_offset_tuning_isSet; + qint32 transverter_mode; bool m_transverter_mode_isSet;