From ec4030052a4570712996ee3e76e803304f5244e9 Mon Sep 17 00:00:00 2001 From: f4exb Date: Sat, 13 Jul 2024 20:27:57 +0200 Subject: [PATCH] WDSP receiver: added RIT to the API --- plugins/channelrx/wdsprx/wdsprx.cpp | 14 ++++++ sdrbase/resources/webapi/doc/html2/index.html | 13 +++++- .../webapi/doc/swagger/include/WDSPRx.yaml | 12 +++++ .../sdrangel/api/swagger/include/WDSPRx.yaml | 10 ++++ swagger/sdrangel/code/html2/index.html | 13 +++++- .../code/qt5/client/SWGWDSPRxSettings.cpp | 46 +++++++++++++++++++ .../code/qt5/client/SWGWDSPRxSettings.h | 12 +++++ 7 files changed, 116 insertions(+), 4 deletions(-) diff --git a/plugins/channelrx/wdsprx/wdsprx.cpp b/plugins/channelrx/wdsprx/wdsprx.cpp index a9c42a4d9..12f5f4670 100644 --- a/plugins/channelrx/wdsprx/wdsprx.cpp +++ b/plugins/channelrx/wdsprx/wdsprx.cpp @@ -632,6 +632,12 @@ void WDSPRx::webapiUpdateChannelSettings( } } + if (channelSettingsKeys.contains("rit")) { + settings.m_rit = response.getWdspRxSettings()->getRit() != 0; + } + if (channelSettingsKeys.contains("ritFrequency")) { + settings.m_ritFrequency = response.getWdspRxSettings()->getRitFrequency(); + } if (channelSettingsKeys.contains("spanLog2")) { settings.m_profiles[settings.m_profileIndex].m_spanLog2 = response.getWdspRxSettings()->getSpanLog2(); } @@ -763,6 +769,8 @@ void WDSPRx::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& respon response.getWdspRxSettings()->getEqG()->push_back(settings.m_eqG[i]); } + response.getWdspRxSettings()->setRit(settings.m_rit ? 1 : 0); + response.getWdspRxSettings()->setRitFrequency(settings.m_ritFrequency); response.getWdspRxSettings()->setSpanLog2(settings.m_profiles[settings.m_profileIndex].m_spanLog2); response.getWdspRxSettings()->setRfBandwidth(settings.m_profiles[settings.m_profileIndex].m_highCutoff); response.getWdspRxSettings()->setLowCutoff(settings.m_profiles[settings.m_profileIndex].m_lowCutoff); @@ -1089,6 +1097,12 @@ void WDSPRx::webapiFormatChannelSettings( } } + if (channelSettingsKeys.contains("rit")) { + swgWDSPRxSettings->setRit(settings.m_rit ? 1 : 0); + } + if (channelSettingsKeys.contains("ritFrequency")) { + swgWDSPRxSettings->setRit(settings.m_ritFrequency); + } if (channelSettingsKeys.contains("spanLog2") || force) { swgWDSPRxSettings->setSpanLog2(settings.m_profiles[settings.m_profileIndex].m_spanLog2); } diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index b042a1bdb..2a7aefd0d 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -17281,7 +17281,7 @@ margin-bottom: 20px; }, "fmAFLimiter" : { "type" : "integer", - "description" : "FM Audio level limiter (audio AGC)\n" + "description" : "FM Audio level limiter (audio AGC)\n * 0 - Off\n * 1 - On\n" }, "fmAFLimiterGain" : { "type" : "number", @@ -17344,6 +17344,15 @@ margin-bottom: 20px; "format" : "float" } }, + "rit" : { + "type" : "integer", + "description" : "RIT:\n * 0 - Off\n * 1 - On\n" + }, + "ritFrequency" : { + "type" : "number", + "format" : "float", + "description" : "RIT shift frequency (Hz)" + }, "spanLog2" : { "type" : "integer" }, @@ -59432,7 +59441,7 @@ except ApiException as e:
- Generated 2024-07-10T22:13:04.144+02:00 + Generated 2024-07-13T13:44:10.416+02:00
diff --git a/sdrbase/resources/webapi/doc/swagger/include/WDSPRx.yaml b/sdrbase/resources/webapi/doc/swagger/include/WDSPRx.yaml index 5cd613245..d4ec64791 100644 --- a/sdrbase/resources/webapi/doc/swagger/include/WDSPRx.yaml +++ b/sdrbase/resources/webapi/doc/swagger/include/WDSPRx.yaml @@ -175,6 +175,8 @@ WDSPRxSettings: type: integer description: > FM Audio level limiter (audio AGC) + * 0 - Off + * 1 - On fmAFLimiterGain: type: number format: float @@ -237,6 +239,16 @@ WDSPRxSettings: items: type: number format: float + rit: + type: integer + description: > + RIT: + * 0 - Off + * 1 - On + ritFrequency: + type: number + format: float + description: RIT shift frequency (Hz) spanLog2: type: integer rfBandwidth: diff --git a/swagger/sdrangel/api/swagger/include/WDSPRx.yaml b/swagger/sdrangel/api/swagger/include/WDSPRx.yaml index 1921a5404..1f1452669 100644 --- a/swagger/sdrangel/api/swagger/include/WDSPRx.yaml +++ b/swagger/sdrangel/api/swagger/include/WDSPRx.yaml @@ -239,6 +239,16 @@ WDSPRxSettings: items: type: number format: float + rit: + type: integer + description: > + RIT: + * 0 - Off + * 1 - On + ritFrequency: + type: number + format: float + description: RIT shift frequency (Hz) spanLog2: type: integer rfBandwidth: diff --git a/swagger/sdrangel/code/html2/index.html b/swagger/sdrangel/code/html2/index.html index b042a1bdb..2a7aefd0d 100644 --- a/swagger/sdrangel/code/html2/index.html +++ b/swagger/sdrangel/code/html2/index.html @@ -17281,7 +17281,7 @@ margin-bottom: 20px; }, "fmAFLimiter" : { "type" : "integer", - "description" : "FM Audio level limiter (audio AGC)\n" + "description" : "FM Audio level limiter (audio AGC)\n * 0 - Off\n * 1 - On\n" }, "fmAFLimiterGain" : { "type" : "number", @@ -17344,6 +17344,15 @@ margin-bottom: 20px; "format" : "float" } }, + "rit" : { + "type" : "integer", + "description" : "RIT:\n * 0 - Off\n * 1 - On\n" + }, + "ritFrequency" : { + "type" : "number", + "format" : "float", + "description" : "RIT shift frequency (Hz)" + }, "spanLog2" : { "type" : "integer" }, @@ -59432,7 +59441,7 @@ except ApiException as e:
- Generated 2024-07-10T22:13:04.144+02:00 + Generated 2024-07-13T13:44:10.416+02:00
diff --git a/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.cpp b/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.cpp index 0839aff5d..f5ee64999 100644 --- a/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.cpp +++ b/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.cpp @@ -126,6 +126,10 @@ SWGWDSPRxSettings::SWGWDSPRxSettings() { m_eq_f_isSet = false; eq_g = new QList(); m_eq_g_isSet = false; + rit = 0; + m_rit_isSet = false; + rit_frequency = 0.0f; + m_rit_frequency_isSet = false; span_log2 = 0; m_span_log2_isSet = false; rf_bandwidth = 0.0f; @@ -264,6 +268,10 @@ SWGWDSPRxSettings::init() { m_eq_f_isSet = false; eq_g = new QList(); m_eq_g_isSet = false; + rit = 0; + m_rit_isSet = false; + rit_frequency = 0.0f; + m_rit_frequency_isSet = false; span_log2 = 0; m_span_log2_isSet = false; rf_bandwidth = 0.0f; @@ -351,6 +359,8 @@ SWGWDSPRxSettings::cleanup() { + + @@ -488,6 +498,10 @@ SWGWDSPRxSettings::fromJsonObject(QJsonObject &pJson) { ::SWGSDRangel::setValue(&eq_f, pJson["eqF"], "QList", "float"); ::SWGSDRangel::setValue(&eq_g, pJson["eqG"], "QList", "float"); + ::SWGSDRangel::setValue(&rit, pJson["rit"], "qint32", ""); + + ::SWGSDRangel::setValue(&rit_frequency, pJson["ritFrequency"], "float", ""); + ::SWGSDRangel::setValue(&span_log2, pJson["spanLog2"], "qint32", ""); ::SWGSDRangel::setValue(&rf_bandwidth, pJson["rfBandwidth"], "float", ""); @@ -683,6 +697,12 @@ SWGWDSPRxSettings::asJsonObject() { if(eq_g && eq_g->size() > 0){ toJsonArray((QList*)eq_g, obj, "eqG", ""); } + if(m_rit_isSet){ + obj->insert("rit", QJsonValue(rit)); + } + if(m_rit_frequency_isSet){ + obj->insert("ritFrequency", QJsonValue(rit_frequency)); + } if(m_span_log2_isSet){ obj->insert("spanLog2", QJsonValue(span_log2)); } @@ -1225,6 +1245,26 @@ SWGWDSPRxSettings::setEqG(QList* eq_g) { this->m_eq_g_isSet = true; } +qint32 +SWGWDSPRxSettings::getRit() { + return rit; +} +void +SWGWDSPRxSettings::setRit(qint32 rit) { + this->rit = rit; + this->m_rit_isSet = true; +} + +float +SWGWDSPRxSettings::getRitFrequency() { + return rit_frequency; +} +void +SWGWDSPRxSettings::setRitFrequency(float rit_frequency) { + this->rit_frequency = rit_frequency; + this->m_rit_frequency_isSet = true; +} + qint32 SWGWDSPRxSettings::getSpanLog2() { return span_log2; @@ -1543,6 +1583,12 @@ SWGWDSPRxSettings::isSet(){ if(eq_g && (eq_g->size() > 0)){ isObjectUpdated = true; break; } + if(m_rit_isSet){ + isObjectUpdated = true; break; + } + if(m_rit_frequency_isSet){ + isObjectUpdated = true; break; + } if(m_span_log2_isSet){ isObjectUpdated = true; break; } diff --git a/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.h b/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.h index 8e5b8a601..a311c3ace 100644 --- a/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.h +++ b/swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.h @@ -193,6 +193,12 @@ public: QList* getEqG(); void setEqG(QList* eq_g); + qint32 getRit(); + void setRit(qint32 rit); + + float getRitFrequency(); + void setRitFrequency(float rit_frequency); + qint32 getSpanLog2(); void setSpanLog2(qint32 span_log2); @@ -392,6 +398,12 @@ private: QList* eq_g; bool m_eq_g_isSet; + qint32 rit; + bool m_rit_isSet; + + float rit_frequency; + bool m_rit_frequency_isSet; + qint32 span_log2; bool m_span_log2_isSet;