From a379692252a3918381e43aff8c94fed0f4fdcde1 Mon Sep 17 00:00:00 2001 From: f4exb Date: Thu, 11 Jul 2024 21:25:22 +0200 Subject: [PATCH] WDSP Receiver: API implementation --- plugins/channelrx/wdsprx/wdsprx.cpp | 579 ++++-- sdrbase/resources/webapi/doc/html2/index.html | 431 ++++- .../doc/swagger/include/ChannelReport.yaml | 2 + .../doc/swagger/include/ChannelSettings.yaml | 2 + .../webapi/doc/swagger/include/DATVDemod.yaml | 4 +- .../doc/swagger/include/SigMFFileInput.yaml | 4 +- .../webapi/doc/swagger/include/WDSPRx.yaml | 294 +++ .../api/swagger/include/ChannelReport.yaml | 2 + .../api/swagger/include/ChannelSettings.yaml | 2 + .../sdrangel/api/swagger/include/WDSPRx.yaml | 296 +++ swagger/sdrangel/code/html2/index.html | 431 ++++- swagger/sdrangel/code/qt5/client/SWGArgInfo.h | 2 +- .../sdrangel/code/qt5/client/SWGArgValue.h | 2 +- swagger/sdrangel/code/qt5/client/SWGCapture.h | 2 +- .../code/qt5/client/SWGChannelReport.cpp | 25 + .../code/qt5/client/SWGChannelReport.h | 7 + .../code/qt5/client/SWGChannelSettings.cpp | 25 + .../code/qt5/client/SWGChannelSettings.h | 7 + .../qt5/client/SWGConfigurationImportExport.h | 2 +- .../code/qt5/client/SWGFrequencyRange.h | 2 +- .../code/qt5/client/SWGModelFactory.h | 12 + .../code/qt5/client/SWGWDSPRxReport.cpp | 177 ++ .../code/qt5/client/SWGWDSPRxReport.h | 76 + .../code/qt5/client/SWGWDSPRxSettings.cpp | 1598 +++++++++++++++++ .../code/qt5/client/SWGWDSPRxSettings.h | 447 +++++ 25 files changed, 4189 insertions(+), 242 deletions(-) create mode 100644 sdrbase/resources/webapi/doc/swagger/include/WDSPRx.yaml create mode 100644 swagger/sdrangel/api/swagger/include/WDSPRx.yaml create mode 100644 swagger/sdrangel/code/qt5/client/SWGWDSPRxReport.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGWDSPRxReport.h create mode 100644 swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.cpp create mode 100644 swagger/sdrangel/code/qt5/client/SWGWDSPRxSettings.h diff --git a/plugins/channelrx/wdsprx/wdsprx.cpp b/plugins/channelrx/wdsprx/wdsprx.cpp index ae9e3e47b..a9c42a4d9 100644 --- a/plugins/channelrx/wdsprx/wdsprx.cpp +++ b/plugins/channelrx/wdsprx/wdsprx.cpp @@ -34,9 +34,9 @@ #include "SWGChannelSettings.h" #include "SWGWorkspaceInfo.h" -#include "SWGSSBDemodSettings.h" +#include "SWGWDSPRxSettings.h" #include "SWGChannelReport.h" -#include "SWGSSBDemodReport.h" +#include "SWGWDSPRxReport.h" #include "dsp/dspcommands.h" #include "dsp/devicesamplemimo.h" @@ -417,8 +417,8 @@ int WDSPRx::webapiSettingsGet( QString& errorMessage) { (void) errorMessage; - response.setSsbDemodSettings(new SWGSDRangel::SWGSSBDemodSettings()); - response.getSsbDemodSettings()->init(); + response.setWdspRxSettings(new SWGSDRangel::SWGWDSPRxSettings()); + response.getWdspRxSettings()->init(); webapiFormatChannelSettings(response, m_settings); return 200; } @@ -463,76 +463,222 @@ void WDSPRx::webapiUpdateChannelSettings( SWGSDRangel::SWGChannelSettings& response) { if (channelSettingsKeys.contains("inputFrequencyOffset")) { - settings.m_inputFrequencyOffset = response.getSsbDemodSettings()->getInputFrequencyOffset(); + settings.m_inputFrequencyOffset = response.getWdspRxSettings()->getInputFrequencyOffset(); } - if (channelSettingsKeys.contains("filterIndex")) { - settings.m_profileIndex = response.getSsbDemodSettings()->getFilterIndex(); - } - if (channelSettingsKeys.contains("spanLog2")) { - settings.m_profiles[settings.m_profileIndex].m_spanLog2 = response.getSsbDemodSettings()->getSpanLog2(); - } - if (channelSettingsKeys.contains("rfBandwidth")) { - settings.m_profiles[settings.m_profileIndex].m_highCutoff = response.getSsbDemodSettings()->getRfBandwidth(); - } - if (channelSettingsKeys.contains("lowCutoff")) { - settings.m_profiles[settings.m_profileIndex].m_lowCutoff = response.getSsbDemodSettings()->getLowCutoff(); - } - if (channelSettingsKeys.contains("fftWimdow")) { - settings.m_profiles[settings.m_profileIndex].m_fftWindow = (FFTWindow::Function) response.getSsbDemodSettings()->getFftWindow(); + if (channelSettingsKeys.contains("profileIndex")) { + settings.m_profileIndex = response.getWdspRxSettings()->getProfileIndex(); } if (channelSettingsKeys.contains("volume")) { - settings.m_volume = response.getSsbDemodSettings()->getVolume(); + settings.m_volume = response.getWdspRxSettings()->getVolume(); } if (channelSettingsKeys.contains("audioBinaural")) { - settings.m_audioBinaural = response.getSsbDemodSettings()->getAudioBinaural() != 0; + settings.m_audioBinaural = response.getWdspRxSettings()->getAudioBinaural() != 0; } if (channelSettingsKeys.contains("audioFlipChannels")) { - settings.m_audioFlipChannels = response.getSsbDemodSettings()->getAudioFlipChannels() != 0; + settings.m_audioFlipChannels = response.getWdspRxSettings()->getAudioFlipChannels() != 0; } if (channelSettingsKeys.contains("dsb")) { - settings.m_dsb = response.getSsbDemodSettings()->getDsb() != 0; + settings.m_dsb = response.getWdspRxSettings()->getDsb() != 0; } if (channelSettingsKeys.contains("audioMute")) { - settings.m_audioMute = response.getSsbDemodSettings()->getAudioMute() != 0; + settings.m_audioMute = response.getWdspRxSettings()->getAudioMute() != 0; } if (channelSettingsKeys.contains("agc")) { - settings.m_agc = response.getSsbDemodSettings()->getAgc() != 0; + settings.m_agc = response.getWdspRxSettings()->getAgc() != 0; + } + if (channelSettingsKeys.contains("demod")) { + settings.m_demod = (WDSPRxProfile::WDSPRxDemod) response.getWdspRxSettings()->getDemod(); + } + if (channelSettingsKeys.contains("agcMode")) { + settings.m_agcMode = (WDSPRxProfile::WDSPRxAGCMode) response.getWdspRxSettings()->getAgcMode(); + } + if (channelSettingsKeys.contains("agcGain")) { + settings.m_agcGain = response.getWdspRxSettings()->getAgcGain(); + } + if (channelSettingsKeys.contains("agcSlope")) { + settings.m_agcSlope = response.getWdspRxSettings()->getAgcSlope(); + } + if (channelSettingsKeys.contains("agcHangThreshold")) { + settings.m_agcHangThreshold = response.getWdspRxSettings()->getAgcHangThreshold(); + } + if (channelSettingsKeys.contains("dnb")) { + settings.m_dnb = response.getWdspRxSettings()->getDnb() != 0; + } + if (channelSettingsKeys.contains("nbScheme")) { + settings.m_nbScheme = (WDSPRxProfile::WDSPRxNBScheme) response.getWdspRxSettings()->getNbScheme(); + } + if (channelSettingsKeys.contains("nb2Mode")) { + settings.m_nb2Mode = (WDSPRxProfile::WDSPRxNB2Mode) response.getWdspRxSettings()->getNb2Mode(); + } + if (channelSettingsKeys.contains("nbSlewTime")) { + settings.m_nbSlewTime = response.getWdspRxSettings()->getNbSlewTime(); + } + if (channelSettingsKeys.contains("nbLeadTime")) { + settings.m_nbLeadTime = response.getWdspRxSettings()->getNbLeadTime(); + } + if (channelSettingsKeys.contains("nbLagTime")) { + settings.m_nbLagTime = response.getWdspRxSettings()->getNbLagTime(); + } + if (channelSettingsKeys.contains("nbThreshold")) { + settings.m_nbThreshold = response.getWdspRxSettings()->getNbThreshold(); + } + if (channelSettingsKeys.contains("nbAvgTime")) { + settings.m_nbAvgTime = response.getWdspRxSettings()->getNbAvgTime(); + } + if (channelSettingsKeys.contains("dnr")) { + settings.m_dnr = response.getWdspRxSettings()->getDnr() != 0; + } + if (channelSettingsKeys.contains("anf")) { + settings.m_anf = response.getWdspRxSettings()->getAnf() != 0; + } + if (channelSettingsKeys.contains("nrScheme")) { + settings.m_nrScheme = (WDSPRxProfile::WDSPRxNRScheme) response.getWdspRxSettings()->getNrScheme(); + } + if (channelSettingsKeys.contains("nr2Gain")) { + settings.m_nr2Gain = (WDSPRxProfile::WDSPRxNR2Gain) response.getWdspRxSettings()->getNr2Gain(); + } + if (channelSettingsKeys.contains("nr2NPE")) { + settings.m_nr2NPE = (WDSPRxProfile::WDSPRxNR2NPE) response.getWdspRxSettings()->getNr2Npe(); + } + if (channelSettingsKeys.contains("nrPosition")) { + settings.m_nrPosition = (WDSPRxProfile::WDSPRxNRPosition) response.getWdspRxSettings()->getNrPosition(); + } + if (channelSettingsKeys.contains("nr2ArtifactReduction")) { + settings.m_nr2ArtifactReduction = response.getWdspRxSettings()->getNr2ArtifactReduction() != 0; + } + if (channelSettingsKeys.contains("amFadeLevel")) { + settings.m_amFadeLevel = response.getWdspRxSettings()->getAmFadeLevel() != 0; + } + if (channelSettingsKeys.contains("cwPeaking")) { + settings.m_cwPeaking = response.getWdspRxSettings()->getCwPeaking() != 0; + } + if (channelSettingsKeys.contains("cwPeakFrequency")) { + settings.m_cwPeakFrequency = response.getWdspRxSettings()->getCwPeakFrequency(); + } + if (channelSettingsKeys.contains("cwBandwidth")) { + settings.m_cwBandwidth = response.getWdspRxSettings()->getCwBandwidth(); + } + if (channelSettingsKeys.contains("cwGain")) { + settings.m_cwGain = response.getWdspRxSettings()->getCwGain(); + } + if (channelSettingsKeys.contains("fmDeviation")) { + settings.m_fmDeviation = response.getWdspRxSettings()->getFmDeviation(); + } + if (channelSettingsKeys.contains("fmAFLow")) { + settings.m_fmAFLow = response.getWdspRxSettings()->getFmAfLow(); + } + if (channelSettingsKeys.contains("fmAFHigh")) { + settings.m_fmAFHigh = response.getWdspRxSettings()->getFmAfHigh(); + } + if (channelSettingsKeys.contains("fmAFLimiter")) { + settings.m_fmAFLimiter = response.getWdspRxSettings()->getFmAfLimiter() != 0; + } + if (channelSettingsKeys.contains("fmAFLimiterGain")) { + settings.m_fmAFLimiterGain = response.getWdspRxSettings()->getFmAfLimiterGain(); + } + if (channelSettingsKeys.contains("fmCTCSSNotch")) { + settings.m_fmCTCSSNotch = response.getWdspRxSettings()->getFmCtcssNotch() != 0; + } + if (channelSettingsKeys.contains("fmCTCSSNotchFrequency")) { + settings.m_fmCTCSSNotchFrequency = response.getWdspRxSettings()->getFmCtcssNotchFrequency(); + } + if (channelSettingsKeys.contains("squelch")) { + settings.m_squelch = response.getWdspRxSettings()->getSquelch() != 0; + } + if (channelSettingsKeys.contains("squelchThreshold")) { + settings.m_squelchThreshold = response.getWdspRxSettings()->getSquelchThreshold(); + } + if (channelSettingsKeys.contains("squelchMode")) { + settings.m_squelchMode = (WDSPRxProfile::WDSPRxSquelchMode) response.getWdspRxSettings()->getSquelchMode(); + } + if (channelSettingsKeys.contains("ssqlTauMute")) { + settings.m_ssqlTauMute = response.getWdspRxSettings()->getSsqlTauMute(); + } + if (channelSettingsKeys.contains("ssqlTauUnmute")) { + settings.m_ssqlTauUnmute = response.getWdspRxSettings()->getSsqlTauUnmute(); + } + if (channelSettingsKeys.contains("amsqMaxTail")) { + settings.m_amsqMaxTail = response.getWdspRxSettings()->getAmsqMaxTail(); + } + if (channelSettingsKeys.contains("equalizer")) { + settings.m_equalizer = response.getWdspRxSettings()->getEqualizer() != 0; + } + + if (channelSettingsKeys.contains("eqF")) + { + const QList* eqF = response.getWdspRxSettings()->getEqF(); + + for (int i = 0; i < 11; i++) + { + if (i >= eqF->size()) { + break; + } + + settings.m_eqF[i] = (*eqF)[i]; + } + } + + if (channelSettingsKeys.contains("eqG")) + { + const QList* eqG = response.getWdspRxSettings()->getEqG(); + + for (int i = 0; i < 11; i++) + { + if (i >= eqG->size()) { + break; + } + + settings.m_eqG[i] = (*eqG)[i]; + } + } + + if (channelSettingsKeys.contains("spanLog2")) { + settings.m_profiles[settings.m_profileIndex].m_spanLog2 = response.getWdspRxSettings()->getSpanLog2(); + } + if (channelSettingsKeys.contains("rfBandwidth")) { + settings.m_profiles[settings.m_profileIndex].m_highCutoff = response.getWdspRxSettings()->getRfBandwidth(); + } + if (channelSettingsKeys.contains("lowCutoff")) { + settings.m_profiles[settings.m_profileIndex].m_lowCutoff = response.getWdspRxSettings()->getLowCutoff(); + } + if (channelSettingsKeys.contains("fftWimdow")) { + settings.m_profiles[settings.m_profileIndex].m_fftWindow = response.getWdspRxSettings()->getFftWindow(); } if (channelSettingsKeys.contains("rgbColor")) { - settings.m_rgbColor = response.getSsbDemodSettings()->getRgbColor(); + settings.m_rgbColor = response.getWdspRxSettings()->getRgbColor(); } if (channelSettingsKeys.contains("title")) { - settings.m_title = *response.getSsbDemodSettings()->getTitle(); + settings.m_title = *response.getWdspRxSettings()->getTitle(); } if (channelSettingsKeys.contains("audioDeviceName")) { - settings.m_audioDeviceName = *response.getSsbDemodSettings()->getAudioDeviceName(); + settings.m_audioDeviceName = *response.getWdspRxSettings()->getAudioDeviceName(); } if (channelSettingsKeys.contains("streamIndex")) { - settings.m_streamIndex = response.getSsbDemodSettings()->getStreamIndex(); + settings.m_streamIndex = response.getWdspRxSettings()->getStreamIndex(); } if (channelSettingsKeys.contains("useReverseAPI")) { - settings.m_useReverseAPI = response.getSsbDemodSettings()->getUseReverseApi() != 0; + settings.m_useReverseAPI = response.getWdspRxSettings()->getUseReverseApi() != 0; } if (channelSettingsKeys.contains("reverseAPIAddress")) { - settings.m_reverseAPIAddress = *response.getSsbDemodSettings()->getReverseApiAddress(); + settings.m_reverseAPIAddress = *response.getWdspRxSettings()->getReverseApiAddress(); } if (channelSettingsKeys.contains("reverseAPIPort")) { - settings.m_reverseAPIPort = response.getSsbDemodSettings()->getReverseApiPort(); + settings.m_reverseAPIPort = response.getWdspRxSettings()->getReverseApiPort(); } if (channelSettingsKeys.contains("reverseAPIDeviceIndex")) { - settings.m_reverseAPIDeviceIndex = response.getSsbDemodSettings()->getReverseApiDeviceIndex(); + settings.m_reverseAPIDeviceIndex = response.getWdspRxSettings()->getReverseApiDeviceIndex(); } if (channelSettingsKeys.contains("reverseAPIChannelIndex")) { - settings.m_reverseAPIChannelIndex = response.getSsbDemodSettings()->getReverseApiChannelIndex(); + settings.m_reverseAPIChannelIndex = response.getWdspRxSettings()->getReverseApiChannelIndex(); } if (settings.m_spectrumGUI && channelSettingsKeys.contains("spectrumConfig")) { - settings.m_spectrumGUI->updateFrom(channelSettingsKeys, response.getSsbDemodSettings()->getSpectrumConfig()); + settings.m_spectrumGUI->updateFrom(channelSettingsKeys, response.getWdspRxSettings()->getSpectrumConfig()); } if (settings.m_channelMarker && channelSettingsKeys.contains("channelMarker")) { - settings.m_channelMarker->updateFrom(channelSettingsKeys, response.getSsbDemodSettings()->getChannelMarker()); + settings.m_channelMarker->updateFrom(channelSettingsKeys, response.getWdspRxSettings()->getChannelMarker()); } if (settings.m_rollupState && channelSettingsKeys.contains("rollupState")) { - settings.m_rollupState->updateFrom(channelSettingsKeys, response.getSsbDemodSettings()->getRollupState()); + settings.m_rollupState->updateFrom(channelSettingsKeys, response.getWdspRxSettings()->getRollupState()); } } @@ -541,93 +687,152 @@ int WDSPRx::webapiReportGet( QString& errorMessage) { (void) errorMessage; - response.setSsbDemodReport(new SWGSDRangel::SWGSSBDemodReport()); - response.getSsbDemodReport()->init(); + response.setWdspRxReport(new SWGSDRangel::SWGWDSPRxReport()); + response.getWdspRxReport()->init(); webapiFormatChannelReport(response); return 200; } void WDSPRx::webapiFormatChannelSettings(SWGSDRangel::SWGChannelSettings& response, const WDSPRxSettings& settings) { - response.getSsbDemodSettings()->setAudioMute(settings.m_audioMute ? 1 : 0); - response.getSsbDemodSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset); - response.getSsbDemodSettings()->setFilterIndex(settings.m_profileIndex); - response.getSsbDemodSettings()->setSpanLog2(settings.m_profiles[settings.m_profileIndex].m_spanLog2); - response.getSsbDemodSettings()->setRfBandwidth(settings.m_profiles[settings.m_profileIndex].m_highCutoff); - response.getSsbDemodSettings()->setLowCutoff(settings.m_profiles[settings.m_profileIndex].m_lowCutoff); - response.getSsbDemodSettings()->setFftWindow((int) settings.m_profiles[settings.m_profileIndex].m_fftWindow); - response.getSsbDemodSettings()->setVolume(settings.m_volume); - response.getSsbDemodSettings()->setAudioBinaural(settings.m_audioBinaural ? 1 : 0); - response.getSsbDemodSettings()->setAudioFlipChannels(settings.m_audioFlipChannels ? 1 : 0); - response.getSsbDemodSettings()->setDsb(settings.m_dsb ? 1 : 0); - response.getSsbDemodSettings()->setAudioMute(settings.m_audioMute ? 1 : 0); - response.getSsbDemodSettings()->setAgc(settings.m_agc ? 1 : 0); - response.getSsbDemodSettings()->setRgbColor(settings.m_rgbColor); + response.getWdspRxSettings()->setInputFrequencyOffset(settings.m_inputFrequencyOffset); + response.getWdspRxSettings()->setProfileIndex(settings.m_profileIndex); + response.getWdspRxSettings()->setDemod((int) settings.m_demod); + response.getWdspRxSettings()->setVolume(settings.m_volume); + response.getWdspRxSettings()->setAudioBinaural(settings.m_audioBinaural ? 1 : 0); + response.getWdspRxSettings()->setAudioFlipChannels(settings.m_audioFlipChannels ? 1 : 0); + response.getWdspRxSettings()->setDsb(settings.m_dsb ? 1 : 0); + response.getWdspRxSettings()->setAudioMute(settings.m_audioMute ? 1 : 0); + response.getWdspRxSettings()->setAgc(settings.m_agc ? 1 : 0); + response.getWdspRxSettings()->setAgcMode((int) settings.m_agcMode); + response.getWdspRxSettings()->setAgcGain(settings.m_agcGain); + response.getWdspRxSettings()->setAgcSlope(settings.m_agcSlope); + response.getWdspRxSettings()->setAgcHangThreshold(settings.m_agcHangThreshold); + response.getWdspRxSettings()->setDnb(settings.m_dnb ? 1 : 0); + response.getWdspRxSettings()->setNbScheme((int) settings.m_nbScheme); + response.getWdspRxSettings()->setNb2Mode((int) settings.m_nb2Mode); + response.getWdspRxSettings()->setNbSlewTime(settings.m_nbSlewTime); + response.getWdspRxSettings()->setNbLeadTime(settings.m_nbLeadTime); + response.getWdspRxSettings()->setNbLagTime(settings.m_nbLagTime); + response.getWdspRxSettings()->setNbThreshold(settings.m_nbThreshold); + response.getWdspRxSettings()->setNbAvgTime(settings.m_nbAvgTime); + response.getWdspRxSettings()->setDnr(settings.m_dnr ? 1 : 0); + response.getWdspRxSettings()->setAnf(settings.m_anf ? 1 : 0); + response.getWdspRxSettings()->setNrScheme((int) settings.m_nrScheme); + response.getWdspRxSettings()->setNr2Gain((int) settings.m_nr2Gain); + response.getWdspRxSettings()->setNr2Npe((int) settings.m_nr2NPE); + response.getWdspRxSettings()->setNrPosition((int) settings.m_nrPosition); + response.getWdspRxSettings()->setNr2ArtifactReduction(settings.m_nr2ArtifactReduction ? 1 : 0); + response.getWdspRxSettings()->setAmFadeLevel(settings.m_amFadeLevel ? 1 : 0); + response.getWdspRxSettings()->setCwPeaking(settings.m_cwPeaking ? 1 : 0); + response.getWdspRxSettings()->setCwPeakFrequency(settings.m_cwPeakFrequency); + response.getWdspRxSettings()->setCwBandwidth(settings.m_cwBandwidth); + response.getWdspRxSettings()->setCwGain(settings.m_cwGain); + response.getWdspRxSettings()->setFmDeviation(settings.m_fmDeviation); + response.getWdspRxSettings()->setFmAfLow(settings.m_fmAFLow); + response.getWdspRxSettings()->setFmAfHigh(settings.m_fmAFHigh); + response.getWdspRxSettings()->setFmAfLimiter(settings.m_fmAFLimiter ? 1 : 0); + response.getWdspRxSettings()->setFmAfLimiterGain(settings.m_fmAFLimiterGain); + response.getWdspRxSettings()->setFmCtcssNotch(settings.m_fmCTCSSNotch ? 1 : 0); + response.getWdspRxSettings()->setFmCtcssNotchFrequency(settings.m_fmCTCSSNotchFrequency); + response.getWdspRxSettings()->setSquelch(settings.m_squelch ? 1 : 0); + response.getWdspRxSettings()->setSquelchThreshold(settings.m_squelchThreshold); + response.getWdspRxSettings()->setSquelchMode((int) settings.m_squelchMode); + response.getWdspRxSettings()->setSsqlTauMute(settings.m_ssqlTauMute); + response.getWdspRxSettings()->setSsqlTauUnmute(settings.m_ssqlTauUnmute); + response.getWdspRxSettings()->setAmsqMaxTail(settings.m_amsqMaxTail); + response.getWdspRxSettings()->setEqualizer(settings.m_equalizer ? 1 : 0); - if (response.getSsbDemodSettings()->getTitle()) { - *response.getSsbDemodSettings()->getTitle() = settings.m_title; - } else { - response.getSsbDemodSettings()->setTitle(new QString(settings.m_title)); + if (!response.getWdspRxSettings()->getEqF()) { + response.getWdspRxSettings()->setEqF(new QList()); } - if (response.getSsbDemodSettings()->getAudioDeviceName()) { - *response.getSsbDemodSettings()->getAudioDeviceName() = settings.m_audioDeviceName; - } else { - response.getSsbDemodSettings()->setAudioDeviceName(new QString(settings.m_audioDeviceName)); + response.getWdspRxSettings()->getEqF()->clear(); + + for (int i = 0; i < 11; i++) { + response.getWdspRxSettings()->getEqF()->push_back(settings.m_eqF[i]); } - response.getSsbDemodSettings()->setStreamIndex(settings.m_streamIndex); - response.getSsbDemodSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); - - if (response.getSsbDemodSettings()->getReverseApiAddress()) { - *response.getSsbDemodSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; - } else { - response.getSsbDemodSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + if (!response.getWdspRxSettings()->getEqG()) { + response.getWdspRxSettings()->setEqG(new QList()); } - response.getSsbDemodSettings()->setReverseApiPort(settings.m_reverseAPIPort); - response.getSsbDemodSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); - response.getSsbDemodSettings()->setReverseApiChannelIndex(settings.m_reverseAPIChannelIndex); + response.getWdspRxSettings()->getEqG()->clear(); + + for (int i = 0; i < 11; i++) { + response.getWdspRxSettings()->getEqG()->push_back(settings.m_eqG[i]); + } + + 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); + response.getWdspRxSettings()->setFftWindow((int) settings.m_profiles[settings.m_profileIndex].m_fftWindow); + response.getWdspRxSettings()->setRgbColor(settings.m_rgbColor); + + if (response.getWdspRxSettings()->getTitle()) { + *response.getWdspRxSettings()->getTitle() = settings.m_title; + } else { + response.getWdspRxSettings()->setTitle(new QString(settings.m_title)); + } + + if (response.getWdspRxSettings()->getAudioDeviceName()) { + *response.getWdspRxSettings()->getAudioDeviceName() = settings.m_audioDeviceName; + } else { + response.getWdspRxSettings()->setAudioDeviceName(new QString(settings.m_audioDeviceName)); + } + + response.getWdspRxSettings()->setStreamIndex(settings.m_streamIndex); + response.getWdspRxSettings()->setUseReverseApi(settings.m_useReverseAPI ? 1 : 0); + + if (response.getWdspRxSettings()->getReverseApiAddress()) { + *response.getWdspRxSettings()->getReverseApiAddress() = settings.m_reverseAPIAddress; + } else { + response.getWdspRxSettings()->setReverseApiAddress(new QString(settings.m_reverseAPIAddress)); + } + + response.getWdspRxSettings()->setReverseApiPort(settings.m_reverseAPIPort); + response.getWdspRxSettings()->setReverseApiDeviceIndex(settings.m_reverseAPIDeviceIndex); + response.getWdspRxSettings()->setReverseApiChannelIndex(settings.m_reverseAPIChannelIndex); if (settings.m_spectrumGUI) { - if (response.getSsbDemodSettings()->getSpectrumConfig()) + if (response.getWdspRxSettings()->getSpectrumConfig()) { - settings.m_spectrumGUI->formatTo(response.getSsbDemodSettings()->getSpectrumConfig()); + settings.m_spectrumGUI->formatTo(response.getWdspRxSettings()->getSpectrumConfig()); } else { SWGSDRangel::SWGGLSpectrum *swgGLSpectrum = new SWGSDRangel::SWGGLSpectrum(); settings.m_spectrumGUI->formatTo(swgGLSpectrum); - response.getSsbDemodSettings()->setSpectrumConfig(swgGLSpectrum); + response.getWdspRxSettings()->setSpectrumConfig(swgGLSpectrum); } } if (settings.m_channelMarker) { - if (response.getSsbDemodSettings()->getChannelMarker()) + if (response.getWdspRxSettings()->getChannelMarker()) { - settings.m_channelMarker->formatTo(response.getSsbDemodSettings()->getChannelMarker()); + settings.m_channelMarker->formatTo(response.getWdspRxSettings()->getChannelMarker()); } else { SWGSDRangel::SWGChannelMarker *swgChannelMarker = new SWGSDRangel::SWGChannelMarker(); settings.m_channelMarker->formatTo(swgChannelMarker); - response.getSsbDemodSettings()->setChannelMarker(swgChannelMarker); + response.getWdspRxSettings()->setChannelMarker(swgChannelMarker); } } if (settings.m_rollupState) { - if (response.getSsbDemodSettings()->getRollupState()) + if (response.getWdspRxSettings()->getRollupState()) { - settings.m_rollupState->formatTo(response.getSsbDemodSettings()->getRollupState()); + settings.m_rollupState->formatTo(response.getWdspRxSettings()->getRollupState()); } else { SWGSDRangel::SWGRollupState *swgRollupState = new SWGSDRangel::SWGRollupState(); settings.m_rollupState->formatTo(swgRollupState); - response.getSsbDemodSettings()->setRollupState(swgRollupState); + response.getWdspRxSettings()->setRollupState(swgRollupState); } } } @@ -711,79 +916,223 @@ void WDSPRx::webapiFormatChannelSettings( swgChannelSettings->setOriginatorChannelIndex(getIndexInDeviceSet()); swgChannelSettings->setOriginatorDeviceSetIndex(getDeviceSetIndex()); swgChannelSettings->setChannelType(new QString(m_channelId)); - swgChannelSettings->setSsbDemodSettings(new SWGSDRangel::SWGSSBDemodSettings()); - SWGSDRangel::SWGSSBDemodSettings *swgSSBDemodSettings = swgChannelSettings->getSsbDemodSettings(); + swgChannelSettings->setWdspRxSettings(new SWGSDRangel::SWGWDSPRxSettings()); + SWGSDRangel::SWGWDSPRxSettings *swgWDSPRxSettings = swgChannelSettings->getWdspRxSettings(); // transfer data that has been modified. When force is on transfer all data except reverse API data - if (channelSettingsKeys.contains("inputFrequencyOffset") || force) { - swgSSBDemodSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset); + if (channelSettingsKeys.contains("inputFrequencyOffset")) { + swgWDSPRxSettings->setInputFrequencyOffset(settings.m_inputFrequencyOffset); } - if (channelSettingsKeys.contains("filteIndex") || force) { - swgSSBDemodSettings->setFilterIndex(settings.m_profileIndex); + if (channelSettingsKeys.contains("profileIndex")) { + swgWDSPRxSettings->setProfileIndex(settings.m_profileIndex); } + if (channelSettingsKeys.contains("volume")) { + swgWDSPRxSettings->setVolume(settings.m_volume); + } + if (channelSettingsKeys.contains("audioBinaural")) { + swgWDSPRxSettings->setAudioBinaural(settings.m_audioBinaural ? 1 : 0); + } + if (channelSettingsKeys.contains("audioFlipChannels")) { + swgWDSPRxSettings->setAudioFlipChannels(settings.m_audioFlipChannels ? 1 : 0); + } + if (channelSettingsKeys.contains("dsb")) { + swgWDSPRxSettings->setDsb(settings.m_dsb ? 1 : 0); + } + if (channelSettingsKeys.contains("audioMute")) { + swgWDSPRxSettings->setAudioMute(settings.m_audioMute ? 1 : 0); + } + if (channelSettingsKeys.contains("agc")) { + swgWDSPRxSettings->setAgc(settings.m_agc ? 1 : 0); + } + if (channelSettingsKeys.contains("demod")) { + swgWDSPRxSettings->setDemod((int) settings.m_demod); + } + if (channelSettingsKeys.contains("agcMode")) { + swgWDSPRxSettings->setAgcMode((int) settings.m_agcMode); + } + if (channelSettingsKeys.contains("agcGain")) { + swgWDSPRxSettings->setAgcGain(settings.m_agcGain); + } + if (channelSettingsKeys.contains("agcSlope")) { + swgWDSPRxSettings->setAgcSlope(settings.m_agcSlope); + } + if (channelSettingsKeys.contains("agcHangThreshold")) { + swgWDSPRxSettings->setAgcHangThreshold(settings.m_agcHangThreshold); + } + if (channelSettingsKeys.contains("dnb")) { + swgWDSPRxSettings->setDnb(settings.m_dnb ? 1 : 0); + } + if (channelSettingsKeys.contains("nbScheme")) { + swgWDSPRxSettings->setNbScheme((int) settings.m_nbScheme); + } + if (channelSettingsKeys.contains("nb2Mode")) { + swgWDSPRxSettings->setNb2Mode((int) settings.m_nb2Mode); + } + if (channelSettingsKeys.contains("nbSlewTime")) { + swgWDSPRxSettings->setNbSlewTime(settings.m_nbSlewTime); + } + if (channelSettingsKeys.contains("nbLeadTime")) { + swgWDSPRxSettings->setNbLeadTime(settings.m_nbSlewTime); + } + if (channelSettingsKeys.contains("nbLagTime")) { + swgWDSPRxSettings->setNbLagTime(settings.m_nbLagTime); + } + if (channelSettingsKeys.contains("nbThreshold")) { + swgWDSPRxSettings->setNbThreshold(settings.m_nbThreshold); + } + if (channelSettingsKeys.contains("nbAvgTime")) { + swgWDSPRxSettings->setNbAvgTime(settings.m_nbAvgTime); + } + if (channelSettingsKeys.contains("dnr")) { + swgWDSPRxSettings->setDnr(settings.m_dnr ? 1 : 0); + } + if (channelSettingsKeys.contains("anf")) { + swgWDSPRxSettings->setAnf(settings.m_anf ? 1 : 0); + } + if (channelSettingsKeys.contains("nrScheme")) { + swgWDSPRxSettings->setNrScheme((int) settings.m_nrScheme); + } + if (channelSettingsKeys.contains("nr2Gain")) { + swgWDSPRxSettings->setNr2Gain((int) settings.m_nr2Gain); + } + if (channelSettingsKeys.contains("nr2NPE")) { + swgWDSPRxSettings->setNr2Npe((int) settings.m_nr2NPE); + } + if (channelSettingsKeys.contains("nrPosition")) { + swgWDSPRxSettings->setNrPosition((int) settings.m_nrPosition); + } + if (channelSettingsKeys.contains("nr2ArtifactReduction")) { + swgWDSPRxSettings->setNr2ArtifactReduction(settings.m_nr2ArtifactReduction ? 1 : 0); + } + if (channelSettingsKeys.contains("amFadeLevel")) { + swgWDSPRxSettings->setAmFadeLevel(settings.m_amFadeLevel ? 1 : 0); + } + if (channelSettingsKeys.contains("cwPeaking")) { + swgWDSPRxSettings->setCwPeaking(settings.m_cwPeaking ? 1 : 0); + } + if (channelSettingsKeys.contains("cwPeakFrequency")) { + swgWDSPRxSettings->setCwPeakFrequency(settings.m_cwPeakFrequency); + } + if (channelSettingsKeys.contains("cwBandwidth")) { + swgWDSPRxSettings->setCwBandwidth(settings.m_cwBandwidth); + } + if (channelSettingsKeys.contains("cwGain")) { + swgWDSPRxSettings->setCwGain(settings.m_cwGain); + } + if (channelSettingsKeys.contains("fmDeviation")) { + swgWDSPRxSettings->setFmDeviation(settings.m_fmDeviation); + } + if (channelSettingsKeys.contains("fmAFLow")) { + swgWDSPRxSettings->setFmAfLow(settings.m_fmAFLow); + } + if (channelSettingsKeys.contains("fmAFHigh")) { + swgWDSPRxSettings->setFmAfHigh(settings.m_fmAFHigh); + } + if (channelSettingsKeys.contains("fmAFLimiter")) { + swgWDSPRxSettings->setFmAfLimiter(settings.m_fmAFLimiter ? 1 : 0); + } + if (channelSettingsKeys.contains("fmAFLimiterGain")) { + swgWDSPRxSettings->setFmAfLimiterGain(settings.m_fmAFLimiterGain); + } + if (channelSettingsKeys.contains("fmCTCSSNotch")) { + swgWDSPRxSettings->setFmCtcssNotch(settings.m_fmCTCSSNotch ? 1 : 0); + } + if (channelSettingsKeys.contains("fmCTCSSNotchFrequency")) { + swgWDSPRxSettings->setFmCtcssNotchFrequency(settings.m_fmCTCSSNotchFrequency); + } + if (channelSettingsKeys.contains("squelch")) { + swgWDSPRxSettings->setSquelch(settings.m_squelch ? 1 : 0); + } + if (channelSettingsKeys.contains("squelchThreshold")) { + swgWDSPRxSettings->setSquelchThreshold(settings.m_squelchThreshold); + } + if (channelSettingsKeys.contains("squelchMode")) { + swgWDSPRxSettings->setSquelchMode((int) settings.m_squelchMode); + } + if (channelSettingsKeys.contains("ssqlTauMute")) { + swgWDSPRxSettings->setSsqlTauMute(settings.m_ssqlTauMute); + } + if (channelSettingsKeys.contains("ssqlTauUnmute")) { + swgWDSPRxSettings->setSsqlTauUnmute(settings.m_ssqlTauUnmute); + } + if (channelSettingsKeys.contains("amsqMaxTail")) { + swgWDSPRxSettings->setAmsqMaxTail(settings.m_amsqMaxTail); + } + if (channelSettingsKeys.contains("equalizer")) { + swgWDSPRxSettings->setEqualizer(settings.m_equalizer ? 1 : 0); + } + + if (channelSettingsKeys.contains("eqF")) + { + if (!swgWDSPRxSettings->getEqF()) { + swgWDSPRxSettings->setEqF(new QList()); + } + + swgWDSPRxSettings->getEqF()->clear(); + + for (int i = 0; i < 11; i++) { + swgWDSPRxSettings->getEqF()->push_back(settings.m_eqF[i]); + } + } + + if (channelSettingsKeys.contains("eqG")) + { + if (!swgWDSPRxSettings->getEqG()) { + swgWDSPRxSettings->setEqG(new QList()); + } + + swgWDSPRxSettings->getEqG()->clear(); + + for (int i = 0; i < 11; i++) { + swgWDSPRxSettings->getEqG()->push_back(settings.m_eqG[i]); + } + } + if (channelSettingsKeys.contains("spanLog2") || force) { - swgSSBDemodSettings->setSpanLog2(settings.m_profiles[settings.m_profileIndex].m_spanLog2); + swgWDSPRxSettings->setSpanLog2(settings.m_profiles[settings.m_profileIndex].m_spanLog2); } if (channelSettingsKeys.contains("rfBandwidth") || force) { - swgSSBDemodSettings->setRfBandwidth(settings.m_profiles[settings.m_profileIndex].m_highCutoff); + swgWDSPRxSettings->setRfBandwidth(settings.m_profiles[settings.m_profileIndex].m_highCutoff); } if (channelSettingsKeys.contains("lowCutoff") || force) { - swgSSBDemodSettings->setLowCutoff(settings.m_profiles[settings.m_profileIndex].m_lowCutoff); + swgWDSPRxSettings->setLowCutoff(settings.m_profiles[settings.m_profileIndex].m_lowCutoff); } if (channelSettingsKeys.contains("fftWindow") || force) { - swgSSBDemodSettings->setLowCutoff(settings.m_profiles[settings.m_profileIndex].m_fftWindow); - } - if (channelSettingsKeys.contains("volume") || force) { - swgSSBDemodSettings->setVolume(settings.m_volume); - } - if (channelSettingsKeys.contains("audioBinaural") || force) { - swgSSBDemodSettings->setAudioBinaural(settings.m_audioBinaural ? 1 : 0); - } - if (channelSettingsKeys.contains("audioFlipChannels") || force) { - swgSSBDemodSettings->setAudioFlipChannels(settings.m_audioFlipChannels ? 1 : 0); - } - if (channelSettingsKeys.contains("dsb") || force) { - swgSSBDemodSettings->setDsb(settings.m_dsb ? 1 : 0); - } - if (channelSettingsKeys.contains("audioMute") || force) { - swgSSBDemodSettings->setAudioMute(settings.m_audioMute ? 1 : 0); - } - if (channelSettingsKeys.contains("agc") || force) { - swgSSBDemodSettings->setAgc(settings.m_agc ? 1 : 0); + swgWDSPRxSettings->setLowCutoff(settings.m_profiles[settings.m_profileIndex].m_fftWindow); } if (channelSettingsKeys.contains("rgbColor") || force) { - swgSSBDemodSettings->setRgbColor(settings.m_rgbColor); + swgWDSPRxSettings->setRgbColor(settings.m_rgbColor); } if (channelSettingsKeys.contains("title") || force) { - swgSSBDemodSettings->setTitle(new QString(settings.m_title)); + swgWDSPRxSettings->setTitle(new QString(settings.m_title)); } if (channelSettingsKeys.contains("audioDeviceName") || force) { - swgSSBDemodSettings->setAudioDeviceName(new QString(settings.m_audioDeviceName)); + swgWDSPRxSettings->setAudioDeviceName(new QString(settings.m_audioDeviceName)); } if (channelSettingsKeys.contains("streamIndex") || force) { - swgSSBDemodSettings->setStreamIndex(settings.m_streamIndex); + swgWDSPRxSettings->setStreamIndex(settings.m_streamIndex); } if (settings.m_spectrumGUI && (channelSettingsKeys.contains("spectrunConfig") || force)) { SWGSDRangel::SWGGLSpectrum *swgGLSpectrum = new SWGSDRangel::SWGGLSpectrum(); settings.m_spectrumGUI->formatTo(swgGLSpectrum); - swgSSBDemodSettings->setSpectrumConfig(swgGLSpectrum); + swgWDSPRxSettings->setSpectrumConfig(swgGLSpectrum); } if (settings.m_channelMarker && (channelSettingsKeys.contains("channelMarker") || force)) { SWGSDRangel::SWGChannelMarker *swgChannelMarker = new SWGSDRangel::SWGChannelMarker(); settings.m_channelMarker->formatTo(swgChannelMarker); - swgSSBDemodSettings->setChannelMarker(swgChannelMarker); + swgWDSPRxSettings->setChannelMarker(swgChannelMarker); } if (settings.m_rollupState && (channelSettingsKeys.contains("rollupState") || force)) { SWGSDRangel::SWGRollupState *swgRolllupState = new SWGSDRangel::SWGRollupState(); settings.m_rollupState->formatTo(swgRolllupState); - swgSSBDemodSettings->setRollupState(swgRolllupState); + swgWDSPRxSettings->setRollupState(swgRolllupState); } } diff --git a/sdrbase/resources/webapi/doc/html2/index.html b/sdrbase/resources/webapi/doc/html2/index.html index d406cb817..b042a1bdb 100644 --- a/sdrbase/resources/webapi/doc/html2/index.html +++ b/sdrbase/resources/webapi/doc/html2/index.html @@ -924,7 +924,8 @@ margin-bottom: 20px; }, "trackerDeviceFrequency" : { "type" : "integer", - "format" : "int64" + "format" : "int64", + "description" : "Center frequency of tracker device" }, "trackerChannelOffset" : { "type" : "integer", @@ -963,7 +964,8 @@ margin-bottom: 20px; "description" : "Target frequency for the tracker" }, "freqTolerance" : { - "type" : "integer" + "type" : "integer", + "description" : "Frequency shift tolerance before tracker frequency is (re)adjusted" }, "trackerAdjustPeriod" : { "type" : "integer", @@ -2556,7 +2558,8 @@ margin-bottom: 20px; "type" : "string" } } - } + }, + "description" : "Generic argument information" }; defs.ArgValue = { "properties" : { @@ -2570,7 +2573,8 @@ margin-bottom: 20px; "valueString" : { "type" : "string" } - } + }, + "description" : "Generic argument value" }; defs.AudioCATSISOSettings = { "properties" : { @@ -2642,7 +2646,8 @@ margin-bottom: 20px; "description" : "Tx volume in dB usually negative" }, "catSpeedIndex" : { - "type" : "integer" + "type" : "integer", + "description" : "CAT serial link baud rate\n * 0 - 1200\n * 1 - 2400\n * 2 - 4800\n * 3 - 9800\n * 4 - 19200 (default)\n * 5 - 38400\n * 6 - 57600\n * 7 - 115200\n" }, "catDataBitsIndex" : { "type" : "integer", @@ -2650,7 +2655,7 @@ margin-bottom: 20px; }, "catStopBitsIndex" : { "type" : "integer", - "description" : "CAT serial linkj stop bits\n * 0 - 1 (default)\n * 1 - 2\n" + "description" : "CAT serial link stop bits\n * 0 - 1 (default)\n * 1 - 2\n" }, "catHandshakeIndex" : { "type" : "integer", @@ -2658,7 +2663,7 @@ margin-bottom: 20px; }, "catPTTMethodIndex" : { "type" : "integer", - "description" : "CAT PTT metgod\n * 0 - PTT (default)\n * 1 - DTR\n * 2 - RTS\n" + "description" : "CAT PTT method\n * 0 - PTT (default)\n * 1 - DTR\n * 2 - RTS\n" }, "catDTRHigh" : { "type" : "integer", @@ -3530,7 +3535,8 @@ margin-bottom: 20px; "format" : "int64", "description" : "Time in milliseconds of track start since beginning of record" } - } + }, + "description" : "Capture (track) information" }; defs.Channel = { "required" : [ "deltaFrequency", "id", "index", "title", "uid" ], @@ -4035,6 +4041,9 @@ margin-bottom: 20px; "VORDemodReport" : { "$ref" : "#/definitions/VORDemodReport" }, + "WDSPRxReport" : { + "$ref" : "#/definitions/WDSPRxReport" + }, "WFMDemodReport" : { "$ref" : "#/definitions/WFMDemodReport" }, @@ -4238,6 +4247,9 @@ margin-bottom: 20px; "VORDemodSettings" : { "$ref" : "#/definitions/VORDemodSettings" }, + "WDSPRxSettings" : { + "$ref" : "#/definitions/WDSPRxSettings" + }, "WFMDemodSettings" : { "$ref" : "#/definitions/WFMDemodSettings" }, @@ -4346,7 +4358,7 @@ margin-bottom: 20px; }, "decoding" : { "type" : "integer", - "description" : "Boolean - decoding status\n * 0 - no deconding\n * 1 - decoding\n" + "description" : "Boolean - decoding status\n * 0 - no decoding\n * 1 - decoding\n" } }, "description" : "ChirpChatDemod" @@ -4366,7 +4378,7 @@ margin-bottom: 20px; }, "deBits" : { "type" : "integer", - "description" : "Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol" + "description" : "Low data rate optimize (DE) bits i.e. nb of FFT bins per effective symbol" }, "fftWindow" : { "type" : "integer", @@ -4513,7 +4525,7 @@ margin-bottom: 20px; }, "deBits" : { "type" : "integer", - "description" : "Low data rate optmize (DE) bits i.e. nb of FFT bins per effective symbol" + "description" : "Low data rate optimize (DE) bits i.e. nb of FFT bins per effective symbol" }, "preambleChirps" : { "type" : "integer", @@ -4680,7 +4692,8 @@ margin-bottom: 20px; "description" : "Qt::Key" }, "keyModifiers" : { - "type" : "integer" + "type" : "integer", + "description" : "Qt::KeyboardModifiers" }, "associateKey" : { "type" : "integer", @@ -4751,7 +4764,7 @@ margin-bottom: 20px; "$ref" : "#/definitions/ConfigurationIdentifier" } }, - "description" : "Details to impprt/export a configuration from/to file" + "description" : "Details to import/export a configuration from/to file" }; defs.ConfigurationItem = { "required" : [ "name" ], @@ -4952,7 +4965,7 @@ margin-bottom: 20px; }, "filter" : { "type" : "integer", - "description" : "Type of sumbol filtering (see DATVDemodSettings::dvb_sampler)\n * 0 - Nearest\n * 1 - Linear\n * 2 - Root Raised Cosine\n" + "description" : "Type of symbol filtering (see DATVDemodSettings::dvb_sampler)\n * 0 - Nearest\n * 1 - Linear\n * 2 - Root Raised Cosine\n" }, "hardMetric" : { "type" : "integer", @@ -5198,7 +5211,7 @@ margin-bottom: 20px; }, "squelchdB" : { "type" : "integer", - "description" : "Porcessing squared magnitude threshold (squelch) in dB from -140 t0 0" + "description" : "Processing squared magnitude threshold (squelch) in dB from -140 t0 0" }, "fftAveragingValue" : { "type" : "integer", @@ -6322,7 +6335,8 @@ margin-bottom: 20px; }, "decoderTimeBudget" : { "type" : "number", - "format" : "float" + "format" : "float", + "description" : "Decoder time budget in seconds (will stop after running this time)" }, "useOSD" : { "type" : "integer", @@ -6900,11 +6914,11 @@ margin-bottom: 20px; }, "squelchPostRecordTime" : { "type" : "integer", - "description" : "Number of seconds to record after spectrum squelch cloeses" + "description" : "Number of seconds to record after spectrum squelch closes" }, "squelchRecordingEnable" : { "type" : "integer", - "description" : "Automatic recording triggered by spectrum squalch * 0 - disabled * 1 - enabled\n" + "description" : "Automatic recording triggered by spectrum squelch * 0 - disabled * 1 - enabled\n" }, "streamIndex" : { "type" : "integer", @@ -7504,7 +7518,7 @@ margin-bottom: 20px; "type" : "integer" } }, - "description" : "A band of frequencies given its boudaries in Hertz (Hz)" + "description" : "A band of frequencies given its boundaries in Hertz (Hz)" }; defs.FrequencyRange = { "properties" : { @@ -7524,7 +7538,7 @@ margin-bottom: 20px; "format" : "float" } }, - "description" : "An frequency range with 64 bit support for min and max" + "description" : "A frequency range with 64 bit support for min and max" }; defs.GLScope = { "properties" : { @@ -7734,7 +7748,8 @@ margin-bottom: 20px; }, "targetAzimuth" : { "type" : "number", - "format" : "float" + "format" : "float", + "description" : "Target azimuth in degrees (0-450)" }, "targetElevation" : { "type" : "number", @@ -7743,7 +7758,8 @@ margin-bottom: 20px; }, "currentAzimuth" : { "type" : "number", - "format" : "float" + "format" : "float", + "description" : "Current azimuth in degrees (0-450)" }, "currentElevation" : { "type" : "number", @@ -8230,7 +8246,7 @@ margin-bottom: 20px; "beta" : { "type" : "number", "format" : "float", - "description" : "Pulse shapint filter beta factor" + "description" : "Pulse shaping filter beta factor" }, "symbolSpan" : { "type" : "integer" @@ -8711,7 +8727,8 @@ margin-bottom: 20px; "description" : "Select channel\n * 0 - Rx\n * 1 - Tx\n" }, "deviceSetIndex" : { - "type" : "integer" + "type" : "integer", + "description" : "Index of device set to synchronize switch with" }, "switchChannel" : { "type" : "integer", @@ -8824,7 +8841,8 @@ margin-bottom: 20px; "description" : "Rx attenuation factor. Attenuation is 2 times this factor in dB (0..7 => 0..14dB)" }, "amfmNotch" : { - "type" : "integer" + "type" : "integer", + "description" : "Rx AM/FM notch filter (boolean)" }, "txChannels" : { "type" : "integer", @@ -8884,7 +8902,7 @@ margin-bottom: 20px; "properties" : { "success" : { "type" : "integer", - "description" : "1 if info was successfullt retrieved else 0" + "description" : "1 if info was successfully retrieved else 0" }, "streamActive" : { "type" : "integer", @@ -9045,7 +9063,7 @@ margin-bottom: 20px; }, "successRx" : { "type" : "integer", - "description" : "1 if Rx info was successfullt retrieved else 0" + "description" : "1 if Rx info was successfully retrieved else 0" }, "streamActiveRx" : { "type" : "integer", @@ -9072,7 +9090,7 @@ margin-bottom: 20px; }, "successTx" : { "type" : "integer", - "description" : "1 if Tx info was successfullt retrieved else 0" + "description" : "1 if Tx info was successfully retrieved else 0" }, "streamActiveTx" : { "type" : "integer", @@ -9327,7 +9345,7 @@ margin-bottom: 20px; "properties" : { "success" : { "type" : "integer", - "description" : "1 if info was successfullt retrieved else 0" + "description" : "1 if info was successfully retrieved else 0" }, "streamActive" : { "type" : "integer", @@ -10402,42 +10420,42 @@ margin-bottom: 20px; "rx1CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 1" + "description" : "center frequencies of receiver 1" }, "rx2CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 2" + "description" : "center frequencies of receiver 2" }, "rx3CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 3" + "description" : "center frequencies of receiver 3" }, "rx4CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 4" + "description" : "center frequencies of receiver 4" }, "rx5CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 5" + "description" : "center frequencies of receiver 5" }, "rx6CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 6" + "description" : "center frequencies of receiver 6" }, "rx7CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 7" + "description" : "center frequencies of receiver 7" }, "rx8CenterFrequency" : { "type" : "integer", "format" : "int64", - "description" : "center fequencies of receiver 8" + "description" : "center frequencies of receiver 8" }, "txCenterFrequency" : { "type" : "integer", @@ -10602,11 +10620,11 @@ margin-bottom: 20px; }, "udpAddress" : { "type" : "string", - "description" : "Address to semd text via UDP" + "description" : "Address to send text via UDP" }, "udpPort" : { "type" : "integer", - "description" : "Port to semd text via UDP" + "description" : "Port to send text via UDP" }, "logFiledName" : { "type" : "string", @@ -12218,7 +12236,7 @@ margin-bottom: 20px; "description" : "See QtMsgType" } }, - "description" : "Repreents a Prefernce object" + "description" : "Represents a Preference object" }; defs.Preset = { "properties" : { @@ -12309,7 +12327,7 @@ margin-bottom: 20px; "centerFrequency" : { "type" : "integer", "format" : "int64", - "description" : "Center freqeuency in Hz" + "description" : "Center frequency in Hz" }, "type" : { "type" : "string", @@ -12342,7 +12360,7 @@ margin-bottom: 20px; "centerFrequency" : { "type" : "integer", "format" : "int64", - "description" : "Center freqeuency in Hz" + "description" : "Center frequency in Hz" }, "type" : { "type" : "string", @@ -13150,7 +13168,7 @@ margin-bottom: 20px; }, "multicastJoin" : { "type" : "integer", - "description" : "Joim multicast group * 0 - leave group * 1 - join group\n" + "description" : "Join multicast group * 0 - leave group * 1 - join group\n" }, "dcBlock" : { "type" : "integer" @@ -13221,7 +13239,7 @@ margin-bottom: 20px; }, "nbTxBytes" : { "type" : "integer", - "description" : "Number of bytes in a transmited I or Q sample\n * 1\n * 2\n * 4\n" + "description" : "Number of bytes in a transmitted I or Q sample\n * 1\n * 2\n * 4\n" }, "apiAddress" : { "type" : "string" @@ -13265,7 +13283,7 @@ margin-bottom: 20px; }, "nbTxBytes" : { "type" : "integer", - "description" : "Number of bytes in a transmited I or Q sample\n * 1\n * 2\n * 4\n" + "description" : "Number of bytes in a transmitted I or Q sample\n * 1\n * 2\n * 4\n" }, "deviceCenterFrequency" : { "type" : "integer", @@ -14111,12 +14129,12 @@ margin-bottom: 20px; "dnrAboveAvgFactor" : { "type" : "number", "format" : "float", - "description" : "Multiplier of the average to deteermine magnitude threshold in average scheme" + "description" : "Multiplier of the average to determine magnitude threshold in average scheme" }, "dnrSigmaFactor" : { "type" : "number", "format" : "float", - "description" : "Standard deviation (sigma) multiplier to deteermine magnitude threshold in average and standard deviation scheme" + "description" : "Standard deviation (sigma) multiplier to determine magnitude threshold in average and standard deviation scheme" }, "dnrNbPeaks" : { "type" : "integer", @@ -14587,7 +14605,8 @@ margin-bottom: 20px; "description" : "Number of points used to draw ground tracks" }, "dateFormat" : { - "type" : "string" + "type" : "string", + "description" : "Format for dates in the GUI (E.g: yy/MM/dd)" }, "utc" : { "type" : "integer", @@ -14898,11 +14917,11 @@ margin-bottom: 20px; }, "squelchPostRecordTime" : { "type" : "integer", - "description" : "Number of seconds to record after spectrum squelch cloeses" + "description" : "Number of seconds to record after spectrum squelch closes" }, "squelchRecordingEnable" : { "type" : "integer", - "description" : "Automatic recording triggered by spectrum squalch * 0 - disabled * 1 - enabled\n" + "description" : "Automatic recording triggered by spectrum squelch * 0 - disabled * 1 - enabled\n" }, "log2RecordSampleSize" : { "type" : "integer", @@ -15616,7 +15635,7 @@ margin-bottom: 20px; }, "markerColor" : { "type" : "integer", - "description" : "Color in 8 bit BGR serie" + "description" : "Color in 8 bit BGR series" }, "show" : { "type" : "integer", @@ -15659,7 +15678,7 @@ margin-bottom: 20px; }, "markerColor" : { "type" : "integer", - "description" : "Color in 8 bit BGR serie" + "description" : "Color in 8 bit BGR series" }, "show" : { "type" : "integer", @@ -15713,7 +15732,7 @@ margin-bottom: 20px; }, "markerColor" : { "type" : "integer", - "description" : "Color in 8 bit BGR serie" + "description" : "Color in 8 bit BGR series" }, "show" : { "type" : "integer", @@ -16032,7 +16051,7 @@ margin-bottom: 20px; "airTemperature" : { "type" : "number", "format" : "float", - "description" : "Surface air temperature in degrees celsius at antenna location" + "description" : "Surface air temperature in degrees Celsius at antenna location" }, "skyTemperature" : { "type" : "number", @@ -16106,7 +16125,7 @@ margin-bottom: 20px; "airTemperature" : { "type" : "number", "format" : "float", - "description" : "Surface air temperature in degrees celsius at antenna location" + "description" : "Surface air temperature in degrees Celsius at antenna location" }, "skyTemperature" : { "type" : "number", @@ -16705,7 +16724,7 @@ margin-bottom: 20px; }, "multicastJoin" : { "type" : "integer", - "description" : "Joim multicast group * 0 - leave group * 1 - join group\n" + "description" : "Join multicast group * 0 - leave group * 1 - join group\n" }, "title" : { "type" : "string" @@ -17088,6 +17107,298 @@ margin-bottom: 20px; } }, "description" : "VORLocalizer" +}; + defs.WDSPRxReport = { + "properties" : { + "channelPowerDB" : { + "type" : "number", + "format" : "float", + "description" : "power received in channel (dB)" + }, + "squelch" : { + "type" : "integer", + "description" : "Audio squelch status (1 if open else 0)" + }, + "audioSampleRate" : { + "type" : "integer" + }, + "channelSampleRate" : { + "type" : "integer" + } + }, + "description" : "WDSPRx" +}; + defs.WDSPRxSettings = { + "properties" : { + "inputFrequencyOffset" : { + "type" : "integer", + "format" : "int64" + }, + "profileIndex" : { + "type" : "integer" + }, + "demod" : { + "type" : "integer", + "description" : "Demodulator type:\n * 0 - SSB\n * 1 - AM\n * 2 - SAM\n * 3 - FM\n" + }, + "volume" : { + "type" : "number", + "format" : "float" + }, + "audioBinaural" : { + "type" : "integer", + "description" : "Audio binaural mode (1 if active else 0)" + }, + "audioFlipChannels" : { + "type" : "integer", + "description" : "Flip audio channels (1 if flipped else 0)" + }, + "dsb" : { + "type" : "integer", + "description" : "Double sidebands mode (1 if DSB else 0)" + }, + "audioMute" : { + "type" : "integer", + "description" : "Mute audio (1 if muted else 0)" + }, + "agc" : { + "type" : "integer", + "description" : "AGC (1 if AGC active else 0)" + }, + "agcMode" : { + "type" : "integer", + "description" : "AGC Mode:\n * 0 - Long\n * 1 - Slow\n * 2 - Medium\n * 3 - Fast\n" + }, + "agcGain" : { + "type" : "integer", + "description" : "Top gain level" + }, + "agcSlope" : { + "type" : "integer", + "description" : "Slope in centi-Bels" + }, + "agcHangThreshold" : { + "type" : "integer" + }, + "dnb" : { + "type" : "integer", + "description" : "Digital Noise Blanker:\n * 0 - Off\n * 1 - On\n" + }, + "nbScheme" : { + "type" : "integer", + "description" : "Noise blanker scheme:\n * 0 - NB or Preemptive Wideband Noise Blanker\n * 1 - NB2 or Interpolating Wideband Noise Blanker\n" + }, + "nb2Mode" : { + "type" : "integer", + "description" : "NB2 Noise blanking mode:\n * 0 - Zero mode (estimate as zero)\n * 1 - Sample‐hold (take the value of non‐corrupt signal at the beginning of the impulse and hold that throughout the corrupt sequence)\n * 2 - Mean‐hold (average the non‐corrupt values at the beginning and end of the corrupt sequence and use that as the estimate during the corrupt sequence)\n * 3 - hold‐sample (take the value of non‐corrupt signal at the end of the impulse and hold that throughout the corrupt sequence)\n * 4 - linearly interpolate across the corrupt sequence.\n" + }, + "nbSlewTime" : { + "type" : "number", + "format" : "float", + "description" : "Advance slew time (s)" + }, + "nbLeadTime" : { + "type" : "number", + "format" : "float" + }, + "nbLagTime" : { + "type" : "number", + "format" : "float", + "description" : "Hang time (S)" + }, + "nbThreshold" : { + "type" : "integer" + }, + "nbAvgTime" : { + "type" : "number", + "format" : "float" + }, + "dnr" : { + "type" : "integer", + "description" : "Digital Noise Reduction:\n * 0 - Off\n * 1 - On\n" + }, + "anf" : { + "type" : "integer", + "description" : "Automatic Notch Filter:\n * 0 - Off\n * 1 - On\n" + }, + "nrScheme" : { + "type" : "integer", + "description" : "Noise Reduction Scheme:\n * 0 - NR or LMS Noise Reduction\n * 1 - NR2 or Spectral Noise Reduction\n" + }, + "nr2Gain" : { + "type" : "integer", + "description" : "Noise Reduction gain for NR2:\n * 0 - Linear\n * 1 - Log\n * 2 - Gamma\n" + }, + "nr2NPE" : { + "type" : "integer", + "description" : "Noise Power Estimation algorithm for NR2:\n * 0 - Optimal Smoothing Minimum Statistics (OSMS)\n * 1 - Minimum Mean‐Square Error (MMSE)\n" + }, + "nrPosition" : { + "type" : "integer", + "description" : "Noise reduction position:\n * 0 - Before AGC\n * 1 - After AGC\n" + }, + "nr2ArtifactReduction" : { + "type" : "integer", + "description" : "NR2 artifacts reduction:\n * 0 - Off\n * 1 - On\n" + }, + "amFadeLevel" : { + "type" : "integer", + "description" : "AM fade levelling:\n * 0 - Off\n * 1 - On\n" + }, + "cwPeaking" : { + "type" : "integer", + "description" : "CW peaking filter:\n * 0 - Off\n * 1 - On\n" + }, + "cwPeakFrequency" : { + "type" : "number", + "format" : "float", + "description" : "CW peaking filter center frequency (Hz)\n" + }, + "cwBandwidth" : { + "type" : "number", + "format" : "float", + "description" : "CW peaking filter bandwidth (Hz)\n" + }, + "cwGain" : { + "type" : "number", + "format" : "float", + "description" : "CW peaking filter gain (linear)\n" + }, + "fmDeviation" : { + "type" : "number", + "format" : "float", + "description" : "FM demodulator deviation (Hz)\n" + }, + "fmAFLow" : { + "type" : "number", + "format" : "float", + "description" : "FM Audio filter low cutoff frequency (HZ)\n" + }, + "fmAFHigh" : { + "type" : "number", + "format" : "float", + "description" : "FM Audio filter high cutoff frequency (HZ)\n" + }, + "fmAFLimiter" : { + "type" : "integer", + "description" : "FM Audio level limiter (audio AGC)\n" + }, + "fmAFLimiterGain" : { + "type" : "number", + "format" : "float", + "description" : "FM Audio level limiter top gain (Audio AGC top gain)\n" + }, + "fmCTCSSNotch" : { + "type" : "integer", + "description" : "FM CTCSS notch filter\n * 0 - Off\n * 1 - On\n" + }, + "fmCTCSSNotchFrequency" : { + "type" : "number", + "format" : "float", + "description" : "FM CTCSS notch filter frequency (Hz)\n" + }, + "squelch" : { + "type" : "integer", + "description" : "Squelch:\n * 0 - Off\n * 1 - On\n" + }, + "squelchThreshold" : { + "type" : "integer", + "description" : "Squelch threshold (percent)" + }, + "squelchMode" : { + "type" : "integer", + "description" : "Squelch mode:\n * 0 - Voice squelch (for SSB). Based on voice artifacts.\n * 1 - AM squelch (for AM, SAM, CW). Signal power based.\n * 2 - FM squelch (for FM). Demod noise based squelch\n" + }, + "ssqlTauMute" : { + "type" : "number", + "format" : "float", + "description" : "Voice squelch tau mute (s)" + }, + "ssqlTauUnmute" : { + "type" : "number", + "format" : "float", + "description" : "Voice squelch tau unmute (s)" + }, + "amsqMaxTail" : { + "type" : "number", + "format" : "float", + "description" : "AM squelch max tail length (s)" + }, + "equalizer" : { + "type" : "integer", + "description" : "AF equalizer:\n * 0 - Off\n * 1 - On\n" + }, + "eqF" : { + "type" : "array", + "description" : "Frequency points (Hz). Positon 0 is preamp then 10 frequency points", + "items" : { + "type" : "number", + "format" : "float" + } + }, + "eqG" : { + "type" : "array", + "description" : "Frequency points gains (dB). Positon 0 is for preamp gain then for the 10 frequency points", + "items" : { + "type" : "number", + "format" : "float" + } + }, + "spanLog2" : { + "type" : "integer" + }, + "rfBandwidth" : { + "type" : "number", + "format" : "float" + }, + "lowCutoff" : { + "type" : "number", + "format" : "float" + }, + "fftWindow" : { + "type" : "integer", + "description" : "FFT Window index (FFTWindow::Function):\n * 0 - Blackman-Harris 4 term\n * 1 - Blackman-Harris 7 term\n" + }, + "rgbColor" : { + "type" : "integer" + }, + "title" : { + "type" : "string" + }, + "audioDeviceName" : { + "type" : "string" + }, + "streamIndex" : { + "type" : "integer", + "description" : "MIMO channel. Not relevant when connected to SI (single Rx)." + }, + "useReverseAPI" : { + "type" : "integer", + "description" : "Synchronize with reverse API (1 for yes, 0 for no)" + }, + "reverseAPIAddress" : { + "type" : "string" + }, + "reverseAPIPort" : { + "type" : "integer" + }, + "reverseAPIDeviceIndex" : { + "type" : "integer" + }, + "reverseAPIChannelIndex" : { + "type" : "integer" + }, + "spectrumConfig" : { + "$ref" : "#/definitions/GLSpectrum" + }, + "channelMarker" : { + "$ref" : "#/definitions/ChannelMarker" + }, + "rollupState" : { + "$ref" : "#/definitions/RollupState" + } + }, + "description" : "WDSPRx" }; defs.WFMDemodReport = { "properties" : { @@ -58640,7 +58951,7 @@ except ApiException as e:

Responses

-

Status: 202 -

+

Status: 202 - Successful sending of the message