1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-11-21 23:55:13 -05:00

WDSP Receiver: API implementation

This commit is contained in:
f4exb 2024-07-11 21:25:22 +02:00
parent 7db7159349
commit a379692252
25 changed files with 4189 additions and 242 deletions

View File

@ -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<float>* 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<float>* 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<float>());
}
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<float>());
}
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<float>());
}
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<float>());
}
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);
}
}

View File

@ -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 - Samplehold (take the value of noncorrupt signal at the beginning of the impulse and hold that throughout the corrupt sequence)\n * 2 - Meanhold (average the noncorrupt values at the beginning and end of the corrupt sequence and use that as the estimate during the corrupt sequence)\n * 3 - holdsample (take the value of noncorrupt 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 MeanSquare 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:
<h2>Responses</h2>
<h3> Status: 202 - </h3>
<h3> Status: 202 - Successful sending of the message </h3>
<ul class="nav nav-tabs nav-tabs-examples" >
<li class="active">
@ -58655,6 +58966,7 @@ except ApiException as e:
<script>
$(document).ready(function() {
var schemaWrapper = {
"description" : "Successful sending of the message",
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
}
@ -58974,7 +59286,7 @@ except ApiException as e:
<h2>Responses</h2>
<h3> Status: 202 - </h3>
<h3> Status: 202 - Successful sending of the message </h3>
<ul class="nav nav-tabs nav-tabs-examples" >
<li class="active">
@ -58989,6 +59301,7 @@ except ApiException as e:
<script>
$(document).ready(function() {
var schemaWrapper = {
"description" : "Successful sending of the message",
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
}
@ -59119,7 +59432,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2024-06-21T11:03:53.536+02:00
Generated 2024-07-10T22:13:04.144+02:00
</div>
</div>
</div>

View File

@ -109,6 +109,8 @@ ChannelReport:
# $ref: "/doc/swagger/include/VORDemodMC.yaml#/VORDemodMCReport"
VORDemodReport:
$ref: "/doc/swagger/include/VORDemod.yaml#/VORDemodReport"
WDSPRxReport:
$ref: "/doc/swagger/include/WDSPRx.yaml#/WDSPRxReport"
WFMDemodReport:
$ref: "/doc/swagger/include/WFMDemod.yaml#/WFMDemodReport"
WFMModReport:

View File

@ -135,6 +135,8 @@ ChannelSettings:
# $ref: "/doc/swagger/include/VORDemodMC.yaml#/VORDemodMCSettings"
VORDemodSettings:
$ref: "/doc/swagger/include/VORDemod.yaml#/VORDemodSettings"
WDSPRxSettings:
$ref: "/doc/swagger/include/WDSPRx.yaml#/WDSPRxSettings"
WFMDemodSettings:
$ref: "/doc/swagger/include/WFMDemod.yaml#/WFMDemodSettings"
WFMModSettings:

View File

@ -12,7 +12,7 @@ DATVDemodSettings:
standard:
type: integer
description: >
DVB version (see DATVDemodSettings::dvb_version)
DVB bersion (see DATVDemodSettings::dvb_version)
* 0 - DVB-S
* 1 - DVB-S2
modulation:
@ -46,7 +46,7 @@ DATVDemodSettings:
* 11 - 2/5
* 12 - 3/5
softLDPC:
description: (boolean) engage soft LDPC with LDPC tool sub processes (Linux only)
description: (boolean) engage sodt LDPC with LDPC tool sub processes (Linux only)
type: integer
softLDPCToolPath:
description: O/S path to the LDPC tool binary

View File

@ -115,10 +115,10 @@ SigMFFileInputActions:
description: Move to beginning of track given its number. Must stop first.
seekTrackMillis:
type: integer
description: Move to this number / 1000 ratio in track. Must stop first.
description: Move to this number / 1000 raio in track. Must stop first.
seekRecordMillis:
type: integer
description: Move to this number / 1000 ratio in full record. Must stop first.
description: Move to this number / 1000 raio in full record. Must stop first.
definitions:

View File

@ -0,0 +1,294 @@
WDSPRxSettings:
description: WDSPRx
properties:
inputFrequencyOffset:
type: integer
format: int64
profileIndex:
type: integer
demod:
type: integer
description: >
Demodulator type:
* 0 - SSB
* 1 - AM
* 2 - SAM
* 3 - FM
volume:
type: number
format: float
audioBinaural:
description: Audio binaural mode (1 if active else 0)
type: integer
audioFlipChannels:
description: Flip audio channels (1 if flipped else 0)
type: integer
dsb:
description: Double sidebands mode (1 if DSB else 0)
type: integer
audioMute:
description: Mute audio (1 if muted else 0)
type: integer
agc:
description: AGC (1 if AGC active else 0)
type: integer
agcMode:
type: integer
description: >
AGC Mode:
* 0 - Long
* 1 - Slow
* 2 - Medium
* 3 - Fast
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:
* 0 - Off
* 1 - On
nbScheme:
type: integer
description: >
Noise blanker scheme:
* 0 - NB or Preemptive Wideband Noise Blanker
* 1 - NB2 or Interpolating Wideband Noise Blanker
nb2Mode:
type: integer
description: >
NB2 Noise blanking mode:
* 0 - Zero mode (estimate as zero)
* 1 - Samplehold (take the value of noncorrupt signal at the beginning of the impulse and hold that throughout the corrupt sequence)
* 2 - Meanhold (average the noncorrupt values at the beginning and end of the corrupt sequence and use that as the estimate during the corrupt sequence)
* 3 - holdsample (take the value of noncorrupt signal at the end of the impulse and hold that throughout the corrupt sequence)
* 4 - linearly interpolate across the corrupt sequence.
nbSlewTime:
type: number
format: float
description: Advance slew time (s)
nbLeadTime:
type: number
format: float
descriuption: Advance time (s)
nbLagTime:
type: number
format: float
description: Hang time (S)
nbThreshold:
type: integer
nbAvgTime:
type: number
format: float
dnr:
type: integer
description: >
Digital Noise Reduction:
* 0 - Off
* 1 - On
anf:
type: integer
description: >
Automatic Notch Filter:
* 0 - Off
* 1 - On
nrScheme:
type: integer
description: >
Noise Reduction Scheme:
* 0 - NR or LMS Noise Reduction
* 1 - NR2 or Spectral Noise Reduction
nr2Gain:
type: integer
description: >
Noise Reduction gain for NR2:
* 0 - Linear
* 1 - Log
* 2 - Gamma
nr2NPE:
type: integer
description: >
Noise Power Estimation algorithm for NR2:
* 0 - Optimal Smoothing Minimum Statistics (OSMS)
* 1 - Minimum MeanSquare Error (MMSE)
nrPosition:
type: integer
description: >
Noise reduction position:
* 0 - Before AGC
* 1 - After AGC
nr2ArtifactReduction:
type: integer
description: >
NR2 artifacts reduction:
* 0 - Off
* 1 - On
amFadeLevel:
type: integer
description: >
AM fade levelling:
* 0 - Off
* 1 - On
cwPeaking:
type: integer
description: >
CW peaking filter:
* 0 - Off
* 1 - On
cwPeakFrequency:
type: number
format: float
description: >
CW peaking filter center frequency (Hz)
cwBandwidth:
type: number
format: float
description: >
CW peaking filter bandwidth (Hz)
cwGain:
type: number
format: float
description: >
CW peaking filter gain (linear)
fmDeviation:
type: number
format: float
description: >
FM demodulator deviation (Hz)
fmAFLow:
type: number
format: float
description: >
FM Audio filter low cutoff frequency (HZ)
fmAFHigh:
type: number
format: float
description: >
FM Audio filter high cutoff frequency (HZ)
fmAFLimiter:
type: integer
description: >
FM Audio level limiter (audio AGC)
fmAFLimiterGain:
type: number
format: float
description: >
FM Audio level limiter top gain (Audio AGC top gain)
fmCTCSSNotch:
type: integer
description: >
FM CTCSS notch filter
* 0 - Off
* 1 - On
fmCTCSSNotchFrequency:
type: number
format: float
description: >
FM CTCSS notch filter frequency (Hz)
squelch:
type: integer
description: >
Squelch:
* 0 - Off
* 1 - On
squelchThreshold:
type: integer
description: Squelch threshold (percent)
squelchMode:
type: integer
description: >
Squelch mode:
* 0 - Voice squelch (for SSB). Based on voice artifacts.
* 1 - AM squelch (for AM, SAM, CW). Signal power based.
* 2 - FM squelch (for FM). Demod noise based squelch
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:
* 0 - Off
* 1 - On
eqF:
description: Frequency points (Hz). Positon 0 is preamp then 10 frequency points
type: array
items:
type: number
format: float
eqG:
description: Frequency points gains (dB). Positon 0 is for preamp gain then for the 10 frequency points
type: array
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):
* 0 - Blackman-Harris 4 term
* 1 - Blackman-Harris 7 term
rgbColor:
type: integer
title:
type: string
audioDeviceName:
type: string
streamIndex:
description: MIMO channel. Not relevant when connected to SI (single Rx).
type: integer
useReverseAPI:
description: Synchronize with reverse API (1 for yes, 0 for no)
type: integer
reverseAPIAddress:
type: string
reverseAPIPort:
type: integer
reverseAPIDeviceIndex:
type: integer
reverseAPIChannelIndex:
type: integer
spectrumConfig:
$ref: "/doc/swagger/include/GLSpectrum.yaml#/GLSpectrum"
channelMarker:
$ref: "/doc/swagger/include/ChannelMarker.yaml#/ChannelMarker"
rollupState:
$ref: "/doc/swagger/include/RollupState.yaml#/RollupState"
WDSPRxReport:
description: WDSPRx
properties:
channelPowerDB:
description: power received in channel (dB)
type: number
format: float
squelch:
description: Audio squelch status (1 if open else 0)
type: integer
audioSampleRate:
type: integer
channelSampleRate:
type: integer

View File

@ -109,6 +109,8 @@ ChannelReport:
# $ref: "http://swgserver:8081/api/swagger/include/VORDemodMC.yaml#/VORDemodMCReport"
VORDemodReport:
$ref: "http://swgserver:8081/api/swagger/include/VORDemod.yaml#/VORDemodReport"
WDSPRxReport:
$ref: "http://swgserver:8081/api/swagger/include/WDSPRx.yaml#/WDSPRxReport"
WFMDemodReport:
$ref: "http://swgserver:8081/api/swagger/include/WFMDemod.yaml#/WFMDemodReport"
WFMModReport:

View File

@ -135,6 +135,8 @@ ChannelSettings:
# $ref: "http://swgserver:8081/api/swagger/include/VORDemodMC.yaml#/VORDemodMCSettings"
VORDemodSettings:
$ref: "http://swgserver:8081/api/swagger/include/VORDemod.yaml#/VORDemodSettings"
WDSPRxSettings:
$ref: "http://swgserver:8081/api/swagger/include/WDSPRx.yaml#/WDSPRxSettings"
WFMDemodSettings:
$ref: "http://swgserver:8081/api/swagger/include/WFMDemod.yaml#/WFMDemodSettings"
WFMModSettings:

View File

@ -0,0 +1,296 @@
WDSPRxSettings:
description: WDSPRx
properties:
inputFrequencyOffset:
type: integer
format: int64
profileIndex:
type: integer
demod:
type: integer
description: >
Demodulator type:
* 0 - SSB
* 1 - AM
* 2 - SAM
* 3 - FM
volume:
type: number
format: float
audioBinaural:
description: Audio binaural mode (1 if active else 0)
type: integer
audioFlipChannels:
description: Flip audio channels (1 if flipped else 0)
type: integer
dsb:
description: Double sidebands mode (1 if DSB else 0)
type: integer
audioMute:
description: Mute audio (1 if muted else 0)
type: integer
agc:
description: AGC (1 if AGC active else 0)
type: integer
agcMode:
type: integer
description: >
AGC Mode:
* 0 - Long
* 1 - Slow
* 2 - Medium
* 3 - Fast
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:
* 0 - Off
* 1 - On
nbScheme:
type: integer
description: >
Noise blanker scheme:
* 0 - NB or Preemptive Wideband Noise Blanker
* 1 - NB2 or Interpolating Wideband Noise Blanker
nb2Mode:
type: integer
description: >
NB2 Noise blanking mode:
* 0 - Zero mode (estimate as zero)
* 1 - Samplehold (take the value of noncorrupt signal at the beginning of the impulse and hold that throughout the corrupt sequence)
* 2 - Meanhold (average the noncorrupt values at the beginning and end of the corrupt sequence and use that as the estimate during the corrupt sequence)
* 3 - holdsample (take the value of noncorrupt signal at the end of the impulse and hold that throughout the corrupt sequence)
* 4 - linearly interpolate across the corrupt sequence.
nbSlewTime:
type: number
format: float
description: Advance slew time (s)
nbLeadTime:
type: number
format: float
descriuption: Advance time (s)
nbLagTime:
type: number
format: float
description: Hang time (S)
nbThreshold:
type: integer
nbAvgTime:
type: number
format: float
dnr:
type: integer
description: >
Digital Noise Reduction:
* 0 - Off
* 1 - On
anf:
type: integer
description: >
Automatic Notch Filter:
* 0 - Off
* 1 - On
nrScheme:
type: integer
description: >
Noise Reduction Scheme:
* 0 - NR or LMS Noise Reduction
* 1 - NR2 or Spectral Noise Reduction
nr2Gain:
type: integer
description: >
Noise Reduction gain for NR2:
* 0 - Linear
* 1 - Log
* 2 - Gamma
nr2NPE:
type: integer
description: >
Noise Power Estimation algorithm for NR2:
* 0 - Optimal Smoothing Minimum Statistics (OSMS)
* 1 - Minimum MeanSquare Error (MMSE)
nrPosition:
type: integer
description: >
Noise reduction position:
* 0 - Before AGC
* 1 - After AGC
nr2ArtifactReduction:
type: integer
description: >
NR2 artifacts reduction:
* 0 - Off
* 1 - On
amFadeLevel:
type: integer
description: >
AM fade levelling:
* 0 - Off
* 1 - On
cwPeaking:
type: integer
description: >
CW peaking filter:
* 0 - Off
* 1 - On
cwPeakFrequency:
type: number
format: float
description: >
CW peaking filter center frequency (Hz)
cwBandwidth:
type: number
format: float
description: >
CW peaking filter bandwidth (Hz)
cwGain:
type: number
format: float
description: >
CW peaking filter gain (linear)
fmDeviation:
type: number
format: float
description: >
FM demodulator deviation (Hz)
fmAFLow:
type: number
format: float
description: >
FM Audio filter low cutoff frequency (HZ)
fmAFHigh:
type: number
format: float
description: >
FM Audio filter high cutoff frequency (HZ)
fmAFLimiter:
type: integer
description: >
FM Audio level limiter (audio AGC)
* 0 - Off
* 1 - On
fmAFLimiterGain:
type: number
format: float
description: >
FM Audio level limiter top gain (Audio AGC top gain)
fmCTCSSNotch:
type: integer
description: >
FM CTCSS notch filter
* 0 - Off
* 1 - On
fmCTCSSNotchFrequency:
type: number
format: float
description: >
FM CTCSS notch filter frequency (Hz)
squelch:
type: integer
description: >
Squelch:
* 0 - Off
* 1 - On
squelchThreshold:
type: integer
description: Squelch threshold (percent)
squelchMode:
type: integer
description: >
Squelch mode:
* 0 - Voice squelch (for SSB). Based on voice artifacts.
* 1 - AM squelch (for AM, SAM, CW). Signal power based.
* 2 - FM squelch (for FM). Demod noise based squelch
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:
* 0 - Off
* 1 - On
eqF:
description: Frequency points (Hz). Positon 0 is preamp then 10 frequency points
type: array
items:
type: number
format: float
eqG:
description: Frequency points gains (dB). Positon 0 is for preamp gain then for the 10 frequency points
type: array
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):
* 0 - Blackman-Harris 4 term
* 1 - Blackman-Harris 7 term
rgbColor:
type: integer
title:
type: string
audioDeviceName:
type: string
streamIndex:
description: MIMO channel. Not relevant when connected to SI (single Rx).
type: integer
useReverseAPI:
description: Synchronize with reverse API (1 for yes, 0 for no)
type: integer
reverseAPIAddress:
type: string
reverseAPIPort:
type: integer
reverseAPIDeviceIndex:
type: integer
reverseAPIChannelIndex:
type: integer
spectrumConfig:
$ref: "http://swgserver:8081/api/swagger/include/GLSpectrum.yaml#/GLSpectrum"
channelMarker:
$ref: "http://swgserver:8081/api/swagger/include/ChannelMarker.yaml#/ChannelMarker"
rollupState:
$ref: "http://swgserver:8081/api/swagger/include/RollupState.yaml#/RollupState"
WDSPRxReport:
description: WDSPRx
properties:
channelPowerDB:
description: power received in channel (dB)
type: number
format: float
squelch:
description: Audio squelch status (1 if open else 0)
type: integer
audioSampleRate:
type: integer
channelSampleRate:
type: integer

View File

@ -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 - Samplehold (take the value of noncorrupt signal at the beginning of the impulse and hold that throughout the corrupt sequence)\n * 2 - Meanhold (average the noncorrupt values at the beginning and end of the corrupt sequence and use that as the estimate during the corrupt sequence)\n * 3 - holdsample (take the value of noncorrupt 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 MeanSquare 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:
<h2>Responses</h2>
<h3> Status: 202 - </h3>
<h3> Status: 202 - Successful sending of the message </h3>
<ul class="nav nav-tabs nav-tabs-examples" >
<li class="active">
@ -58655,6 +58966,7 @@ except ApiException as e:
<script>
$(document).ready(function() {
var schemaWrapper = {
"description" : "Successful sending of the message",
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
}
@ -58974,7 +59286,7 @@ except ApiException as e:
<h2>Responses</h2>
<h3> Status: 202 - </h3>
<h3> Status: 202 - Successful sending of the message </h3>
<ul class="nav nav-tabs nav-tabs-examples" >
<li class="active">
@ -58989,6 +59301,7 @@ except ApiException as e:
<script>
$(document).ready(function() {
var schemaWrapper = {
"description" : "Successful sending of the message",
"schema" : {
"$ref" : "#/definitions/SuccessResponse"
}
@ -59119,7 +59432,7 @@ except ApiException as e:
</div>
<div id="generator">
<div class="content">
Generated 2024-06-21T11:03:53.536+02:00
Generated 2024-07-10T22:13:04.144+02:00
</div>
</div>
</div>

View File

@ -13,7 +13,7 @@
/*
* SWGArgInfo.h
*
*
* Generic argument information
*/
#ifndef SWGArgInfo_H_

View File

@ -13,7 +13,7 @@
/*
* SWGArgValue.h
*
*
* Generic argument value
*/
#ifndef SWGArgValue_H_

View File

@ -13,7 +13,7 @@
/*
* SWGCapture.h
*
*
* Capture (track) information
*/
#ifndef SWGCapture_H_

View File

@ -128,6 +128,8 @@ SWGChannelReport::SWGChannelReport() {
m_udp_sink_report_isSet = false;
vor_demod_report = nullptr;
m_vor_demod_report_isSet = false;
wdsp_rx_report = nullptr;
m_wdsp_rx_report_isSet = false;
wfm_demod_report = nullptr;
m_wfm_demod_report_isSet = false;
wfm_mod_report = nullptr;
@ -240,6 +242,8 @@ SWGChannelReport::init() {
m_udp_sink_report_isSet = false;
vor_demod_report = new SWGVORDemodReport();
m_vor_demod_report_isSet = false;
wdsp_rx_report = new SWGWDSPRxReport();
m_wdsp_rx_report_isSet = false;
wfm_demod_report = new SWGWFMDemodReport();
m_wfm_demod_report_isSet = false;
wfm_mod_report = new SWGWFMModReport();
@ -396,6 +400,9 @@ SWGChannelReport::cleanup() {
if(vor_demod_report != nullptr) {
delete vor_demod_report;
}
if(wdsp_rx_report != nullptr) {
delete wdsp_rx_report;
}
if(wfm_demod_report != nullptr) {
delete wfm_demod_report;
}
@ -515,6 +522,8 @@ SWGChannelReport::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&vor_demod_report, pJson["VORDemodReport"], "SWGVORDemodReport", "SWGVORDemodReport");
::SWGSDRangel::setValue(&wdsp_rx_report, pJson["WDSPRxReport"], "SWGWDSPRxReport", "SWGWDSPRxReport");
::SWGSDRangel::setValue(&wfm_demod_report, pJson["WFMDemodReport"], "SWGWFMDemodReport", "SWGWFMDemodReport");
::SWGSDRangel::setValue(&wfm_mod_report, pJson["WFMModReport"], "SWGWFMModReport", "SWGWFMModReport");
@ -685,6 +694,9 @@ SWGChannelReport::asJsonObject() {
if((vor_demod_report != nullptr) && (vor_demod_report->isSet())){
toJsonValue(QString("VORDemodReport"), vor_demod_report, obj, QString("SWGVORDemodReport"));
}
if((wdsp_rx_report != nullptr) && (wdsp_rx_report->isSet())){
toJsonValue(QString("WDSPRxReport"), wdsp_rx_report, obj, QString("SWGWDSPRxReport"));
}
if((wfm_demod_report != nullptr) && (wfm_demod_report->isSet())){
toJsonValue(QString("WFMDemodReport"), wfm_demod_report, obj, QString("SWGWFMDemodReport"));
}
@ -1195,6 +1207,16 @@ SWGChannelReport::setVorDemodReport(SWGVORDemodReport* vor_demod_report) {
this->m_vor_demod_report_isSet = true;
}
SWGWDSPRxReport*
SWGChannelReport::getWdspRxReport() {
return wdsp_rx_report;
}
void
SWGChannelReport::setWdspRxReport(SWGWDSPRxReport* wdsp_rx_report) {
this->wdsp_rx_report = wdsp_rx_report;
this->m_wdsp_rx_report_isSet = true;
}
SWGWFMDemodReport*
SWGChannelReport::getWfmDemodReport() {
return wfm_demod_report;
@ -1370,6 +1392,9 @@ SWGChannelReport::isSet(){
if(vor_demod_report && vor_demod_report->isSet()){
isObjectUpdated = true; break;
}
if(wdsp_rx_report && wdsp_rx_report->isSet()){
isObjectUpdated = true; break;
}
if(wfm_demod_report && wfm_demod_report->isSet()){
isObjectUpdated = true; break;
}

View File

@ -70,6 +70,7 @@
#include "SWGUDPSinkReport.h"
#include "SWGUDPSourceReport.h"
#include "SWGVORDemodReport.h"
#include "SWGWDSPRxReport.h"
#include "SWGWFMDemodReport.h"
#include "SWGWFMModReport.h"
#include <QString>
@ -242,6 +243,9 @@ public:
SWGVORDemodReport* getVorDemodReport();
void setVorDemodReport(SWGVORDemodReport* vor_demod_report);
SWGWDSPRxReport* getWdspRxReport();
void setWdspRxReport(SWGWDSPRxReport* wdsp_rx_report);
SWGWFMDemodReport* getWfmDemodReport();
void setWfmDemodReport(SWGWFMDemodReport* wfm_demod_report);
@ -402,6 +406,9 @@ private:
SWGVORDemodReport* vor_demod_report;
bool m_vor_demod_report_isSet;
SWGWDSPRxReport* wdsp_rx_report;
bool m_wdsp_rx_report_isSet;
SWGWFMDemodReport* wfm_demod_report;
bool m_wfm_demod_report_isSet;

View File

@ -152,6 +152,8 @@ SWGChannelSettings::SWGChannelSettings() {
m_udp_sink_settings_isSet = false;
vor_demod_settings = nullptr;
m_vor_demod_settings_isSet = false;
wdsp_rx_settings = nullptr;
m_wdsp_rx_settings_isSet = false;
wfm_demod_settings = nullptr;
m_wfm_demod_settings_isSet = false;
wfm_mod_settings = nullptr;
@ -288,6 +290,8 @@ SWGChannelSettings::init() {
m_udp_sink_settings_isSet = false;
vor_demod_settings = new SWGVORDemodSettings();
m_vor_demod_settings_isSet = false;
wdsp_rx_settings = new SWGWDSPRxSettings();
m_wdsp_rx_settings_isSet = false;
wfm_demod_settings = new SWGWFMDemodSettings();
m_wfm_demod_settings_isSet = false;
wfm_mod_settings = new SWGWFMModSettings();
@ -476,6 +480,9 @@ SWGChannelSettings::cleanup() {
if(vor_demod_settings != nullptr) {
delete vor_demod_settings;
}
if(wdsp_rx_settings != nullptr) {
delete wdsp_rx_settings;
}
if(wfm_demod_settings != nullptr) {
delete wfm_demod_settings;
}
@ -619,6 +626,8 @@ SWGChannelSettings::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&vor_demod_settings, pJson["VORDemodSettings"], "SWGVORDemodSettings", "SWGVORDemodSettings");
::SWGSDRangel::setValue(&wdsp_rx_settings, pJson["WDSPRxSettings"], "SWGWDSPRxSettings", "SWGWDSPRxSettings");
::SWGSDRangel::setValue(&wfm_demod_settings, pJson["WFMDemodSettings"], "SWGWFMDemodSettings", "SWGWFMDemodSettings");
::SWGSDRangel::setValue(&wfm_mod_settings, pJson["WFMModSettings"], "SWGWFMModSettings", "SWGWFMModSettings");
@ -825,6 +834,9 @@ SWGChannelSettings::asJsonObject() {
if((vor_demod_settings != nullptr) && (vor_demod_settings->isSet())){
toJsonValue(QString("VORDemodSettings"), vor_demod_settings, obj, QString("SWGVORDemodSettings"));
}
if((wdsp_rx_settings != nullptr) && (wdsp_rx_settings->isSet())){
toJsonValue(QString("WDSPRxSettings"), wdsp_rx_settings, obj, QString("SWGWDSPRxSettings"));
}
if((wfm_demod_settings != nullptr) && (wfm_demod_settings->isSet())){
toJsonValue(QString("WFMDemodSettings"), wfm_demod_settings, obj, QString("SWGWFMDemodSettings"));
}
@ -1455,6 +1467,16 @@ SWGChannelSettings::setVorDemodSettings(SWGVORDemodSettings* vor_demod_settings)
this->m_vor_demod_settings_isSet = true;
}
SWGWDSPRxSettings*
SWGChannelSettings::getWdspRxSettings() {
return wdsp_rx_settings;
}
void
SWGChannelSettings::setWdspRxSettings(SWGWDSPRxSettings* wdsp_rx_settings) {
this->wdsp_rx_settings = wdsp_rx_settings;
this->m_wdsp_rx_settings_isSet = true;
}
SWGWFMDemodSettings*
SWGChannelSettings::getWfmDemodSettings() {
return wfm_demod_settings;
@ -1666,6 +1688,9 @@ SWGChannelSettings::isSet(){
if(vor_demod_settings && vor_demod_settings->isSet()){
isObjectUpdated = true; break;
}
if(wdsp_rx_settings && wdsp_rx_settings->isSet()){
isObjectUpdated = true; break;
}
if(wfm_demod_settings && wfm_demod_settings->isSet()){
isObjectUpdated = true; break;
}

View File

@ -80,6 +80,7 @@
#include "SWGUDPSinkSettings.h"
#include "SWGUDPSourceSettings.h"
#include "SWGVORDemodSettings.h"
#include "SWGWDSPRxSettings.h"
#include "SWGWFMDemodSettings.h"
#include "SWGWFMModSettings.h"
#include <QString>
@ -288,6 +289,9 @@ public:
SWGVORDemodSettings* getVorDemodSettings();
void setVorDemodSettings(SWGVORDemodSettings* vor_demod_settings);
SWGWDSPRxSettings* getWdspRxSettings();
void setWdspRxSettings(SWGWDSPRxSettings* wdsp_rx_settings);
SWGWFMDemodSettings* getWfmDemodSettings();
void setWfmDemodSettings(SWGWFMDemodSettings* wfm_demod_settings);
@ -484,6 +488,9 @@ private:
SWGVORDemodSettings* vor_demod_settings;
bool m_vor_demod_settings_isSet;
SWGWDSPRxSettings* wdsp_rx_settings;
bool m_wdsp_rx_settings_isSet;
SWGWFMDemodSettings* wfm_demod_settings;
bool m_wfm_demod_settings_isSet;

View File

@ -13,7 +13,7 @@
/*
* SWGConfigurationImportExport.h
*
* Details to impprt/export a configuration from/to file
* Details to import/export a configuration from/to file
*/
#ifndef SWGConfigurationImportExport_H_

View File

@ -13,7 +13,7 @@
/*
* SWGFrequencyRange.h
*
* An frequency range with 64 bit support for min and max
* A frequency range with 64 bit support for min and max
*/
#ifndef SWGFrequencyRange_H_

View File

@ -374,6 +374,8 @@
#include "SWGVORLocalizerActions.h"
#include "SWGVORLocalizerReport.h"
#include "SWGVORLocalizerSettings.h"
#include "SWGWDSPRxReport.h"
#include "SWGWDSPRxSettings.h"
#include "SWGWFMDemodReport.h"
#include "SWGWFMDemodSettings.h"
#include "SWGWFMModReport.h"
@ -2189,6 +2191,16 @@ namespace SWGSDRangel {
obj->init();
return obj;
}
if(QString("SWGWDSPRxReport").compare(type) == 0) {
SWGWDSPRxReport *obj = new SWGWDSPRxReport();
obj->init();
return obj;
}
if(QString("SWGWDSPRxSettings").compare(type) == 0) {
SWGWDSPRxSettings *obj = new SWGWDSPRxSettings();
obj->init();
return obj;
}
if(QString("SWGWFMDemodReport").compare(type) == 0) {
SWGWFMDemodReport *obj = new SWGWFMDemodReport();
obj->init();

View File

@ -0,0 +1,177 @@
/**
* SDRangel
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time ---
*
* OpenAPI spec version: 7.0.0
* Contact: f4exb06@gmail.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
#include "SWGWDSPRxReport.h"
#include "SWGHelpers.h"
#include <QJsonDocument>
#include <QJsonArray>
#include <QObject>
#include <QDebug>
namespace SWGSDRangel {
SWGWDSPRxReport::SWGWDSPRxReport(QString* json) {
init();
this->fromJson(*json);
}
SWGWDSPRxReport::SWGWDSPRxReport() {
channel_power_db = 0.0f;
m_channel_power_db_isSet = false;
squelch = 0;
m_squelch_isSet = false;
audio_sample_rate = 0;
m_audio_sample_rate_isSet = false;
channel_sample_rate = 0;
m_channel_sample_rate_isSet = false;
}
SWGWDSPRxReport::~SWGWDSPRxReport() {
this->cleanup();
}
void
SWGWDSPRxReport::init() {
channel_power_db = 0.0f;
m_channel_power_db_isSet = false;
squelch = 0;
m_squelch_isSet = false;
audio_sample_rate = 0;
m_audio_sample_rate_isSet = false;
channel_sample_rate = 0;
m_channel_sample_rate_isSet = false;
}
void
SWGWDSPRxReport::cleanup() {
}
SWGWDSPRxReport*
SWGWDSPRxReport::fromJson(QString &json) {
QByteArray array (json.toStdString().c_str());
QJsonDocument doc = QJsonDocument::fromJson(array);
QJsonObject jsonObject = doc.object();
this->fromJsonObject(jsonObject);
return this;
}
void
SWGWDSPRxReport::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&channel_power_db, pJson["channelPowerDB"], "float", "");
::SWGSDRangel::setValue(&squelch, pJson["squelch"], "qint32", "");
::SWGSDRangel::setValue(&audio_sample_rate, pJson["audioSampleRate"], "qint32", "");
::SWGSDRangel::setValue(&channel_sample_rate, pJson["channelSampleRate"], "qint32", "");
}
QString
SWGWDSPRxReport::asJson ()
{
QJsonObject* obj = this->asJsonObject();
QJsonDocument doc(*obj);
QByteArray bytes = doc.toJson();
delete obj;
return QString(bytes);
}
QJsonObject*
SWGWDSPRxReport::asJsonObject() {
QJsonObject* obj = new QJsonObject();
if(m_channel_power_db_isSet){
obj->insert("channelPowerDB", QJsonValue(channel_power_db));
}
if(m_squelch_isSet){
obj->insert("squelch", QJsonValue(squelch));
}
if(m_audio_sample_rate_isSet){
obj->insert("audioSampleRate", QJsonValue(audio_sample_rate));
}
if(m_channel_sample_rate_isSet){
obj->insert("channelSampleRate", QJsonValue(channel_sample_rate));
}
return obj;
}
float
SWGWDSPRxReport::getChannelPowerDb() {
return channel_power_db;
}
void
SWGWDSPRxReport::setChannelPowerDb(float channel_power_db) {
this->channel_power_db = channel_power_db;
this->m_channel_power_db_isSet = true;
}
qint32
SWGWDSPRxReport::getSquelch() {
return squelch;
}
void
SWGWDSPRxReport::setSquelch(qint32 squelch) {
this->squelch = squelch;
this->m_squelch_isSet = true;
}
qint32
SWGWDSPRxReport::getAudioSampleRate() {
return audio_sample_rate;
}
void
SWGWDSPRxReport::setAudioSampleRate(qint32 audio_sample_rate) {
this->audio_sample_rate = audio_sample_rate;
this->m_audio_sample_rate_isSet = true;
}
qint32
SWGWDSPRxReport::getChannelSampleRate() {
return channel_sample_rate;
}
void
SWGWDSPRxReport::setChannelSampleRate(qint32 channel_sample_rate) {
this->channel_sample_rate = channel_sample_rate;
this->m_channel_sample_rate_isSet = true;
}
bool
SWGWDSPRxReport::isSet(){
bool isObjectUpdated = false;
do{
if(m_channel_power_db_isSet){
isObjectUpdated = true; break;
}
if(m_squelch_isSet){
isObjectUpdated = true; break;
}
if(m_audio_sample_rate_isSet){
isObjectUpdated = true; break;
}
if(m_channel_sample_rate_isSet){
isObjectUpdated = true; break;
}
}while(false);
return isObjectUpdated;
}
}

View File

@ -0,0 +1,76 @@
/**
* SDRangel
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time ---
*
* OpenAPI spec version: 7.0.0
* Contact: f4exb06@gmail.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
/*
* SWGWDSPRxReport.h
*
* WDSPRx
*/
#ifndef SWGWDSPRxReport_H_
#define SWGWDSPRxReport_H_
#include <QJsonObject>
#include "SWGObject.h"
#include "export.h"
namespace SWGSDRangel {
class SWG_API SWGWDSPRxReport: public SWGObject {
public:
SWGWDSPRxReport();
SWGWDSPRxReport(QString* json);
virtual ~SWGWDSPRxReport();
void init();
void cleanup();
virtual QString asJson () override;
virtual QJsonObject* asJsonObject() override;
virtual void fromJsonObject(QJsonObject &json) override;
virtual SWGWDSPRxReport* fromJson(QString &jsonString) override;
float getChannelPowerDb();
void setChannelPowerDb(float channel_power_db);
qint32 getSquelch();
void setSquelch(qint32 squelch);
qint32 getAudioSampleRate();
void setAudioSampleRate(qint32 audio_sample_rate);
qint32 getChannelSampleRate();
void setChannelSampleRate(qint32 channel_sample_rate);
virtual bool isSet() override;
private:
float channel_power_db;
bool m_channel_power_db_isSet;
qint32 squelch;
bool m_squelch_isSet;
qint32 audio_sample_rate;
bool m_audio_sample_rate_isSet;
qint32 channel_sample_rate;
bool m_channel_sample_rate_isSet;
};
}
#endif /* SWGWDSPRxReport_H_ */

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,447 @@
/**
* SDRangel
* This is the web REST/JSON API of SDRangel SDR software. SDRangel is an Open Source Qt5/OpenGL 3.0+ (4.3+ in Windows) GUI and server Software Defined Radio and signal analyzer in software. It supports Airspy, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube --- Limitations and specifcities: * In SDRangel GUI the first Rx device set cannot be deleted. Conversely the server starts with no device sets and its number of device sets can be reduced to zero by as many calls as necessary to /sdrangel/deviceset with DELETE method. * Preset import and export from/to file is a server only feature. * Device set focus is a GUI only feature. * The following channels are not implemented (status 501 is returned): ATV and DATV demodulators, Channel Analyzer NG, LoRa demodulator * The device settings and report structures contains only the sub-structure corresponding to the device type. The DeviceSettings and DeviceReport structures documented here shows all of them but only one will be or should be present at a time * The channel settings and report structures contains only the sub-structure corresponding to the channel type. The ChannelSettings and ChannelReport structures documented here shows all of them but only one will be or should be present at a time ---
*
* OpenAPI spec version: 7.0.0
* Contact: f4exb06@gmail.com
*
* NOTE: This class is auto generated by the swagger code generator program.
* https://github.com/swagger-api/swagger-codegen.git
* Do not edit the class manually.
*/
/*
* SWGWDSPRxSettings.h
*
* WDSPRx
*/
#ifndef SWGWDSPRxSettings_H_
#define SWGWDSPRxSettings_H_
#include <QJsonObject>
#include "SWGChannelMarker.h"
#include "SWGGLSpectrum.h"
#include "SWGRollupState.h"
#include <QList>
#include <QString>
#include "SWGObject.h"
#include "export.h"
namespace SWGSDRangel {
class SWG_API SWGWDSPRxSettings: public SWGObject {
public:
SWGWDSPRxSettings();
SWGWDSPRxSettings(QString* json);
virtual ~SWGWDSPRxSettings();
void init();
void cleanup();
virtual QString asJson () override;
virtual QJsonObject* asJsonObject() override;
virtual void fromJsonObject(QJsonObject &json) override;
virtual SWGWDSPRxSettings* fromJson(QString &jsonString) override;
qint64 getInputFrequencyOffset();
void setInputFrequencyOffset(qint64 input_frequency_offset);
qint32 getProfileIndex();
void setProfileIndex(qint32 profile_index);
qint32 getDemod();
void setDemod(qint32 demod);
float getVolume();
void setVolume(float volume);
qint32 getAudioBinaural();
void setAudioBinaural(qint32 audio_binaural);
qint32 getAudioFlipChannels();
void setAudioFlipChannels(qint32 audio_flip_channels);
qint32 getDsb();
void setDsb(qint32 dsb);
qint32 getAudioMute();
void setAudioMute(qint32 audio_mute);
qint32 getAgc();
void setAgc(qint32 agc);
qint32 getAgcMode();
void setAgcMode(qint32 agc_mode);
qint32 getAgcGain();
void setAgcGain(qint32 agc_gain);
qint32 getAgcSlope();
void setAgcSlope(qint32 agc_slope);
qint32 getAgcHangThreshold();
void setAgcHangThreshold(qint32 agc_hang_threshold);
qint32 getDnb();
void setDnb(qint32 dnb);
qint32 getNbScheme();
void setNbScheme(qint32 nb_scheme);
qint32 getNb2Mode();
void setNb2Mode(qint32 nb2_mode);
float getNbSlewTime();
void setNbSlewTime(float nb_slew_time);
float getNbLeadTime();
void setNbLeadTime(float nb_lead_time);
float getNbLagTime();
void setNbLagTime(float nb_lag_time);
qint32 getNbThreshold();
void setNbThreshold(qint32 nb_threshold);
float getNbAvgTime();
void setNbAvgTime(float nb_avg_time);
qint32 getDnr();
void setDnr(qint32 dnr);
qint32 getAnf();
void setAnf(qint32 anf);
qint32 getNrScheme();
void setNrScheme(qint32 nr_scheme);
qint32 getNr2Gain();
void setNr2Gain(qint32 nr2_gain);
qint32 getNr2Npe();
void setNr2Npe(qint32 nr2_npe);
qint32 getNrPosition();
void setNrPosition(qint32 nr_position);
qint32 getNr2ArtifactReduction();
void setNr2ArtifactReduction(qint32 nr2_artifact_reduction);
qint32 getAmFadeLevel();
void setAmFadeLevel(qint32 am_fade_level);
qint32 getCwPeaking();
void setCwPeaking(qint32 cw_peaking);
float getCwPeakFrequency();
void setCwPeakFrequency(float cw_peak_frequency);
float getCwBandwidth();
void setCwBandwidth(float cw_bandwidth);
float getCwGain();
void setCwGain(float cw_gain);
float getFmDeviation();
void setFmDeviation(float fm_deviation);
float getFmAfLow();
void setFmAfLow(float fm_af_low);
float getFmAfHigh();
void setFmAfHigh(float fm_af_high);
qint32 getFmAfLimiter();
void setFmAfLimiter(qint32 fm_af_limiter);
float getFmAfLimiterGain();
void setFmAfLimiterGain(float fm_af_limiter_gain);
qint32 getFmCtcssNotch();
void setFmCtcssNotch(qint32 fm_ctcss_notch);
float getFmCtcssNotchFrequency();
void setFmCtcssNotchFrequency(float fm_ctcss_notch_frequency);
qint32 getSquelch();
void setSquelch(qint32 squelch);
qint32 getSquelchThreshold();
void setSquelchThreshold(qint32 squelch_threshold);
qint32 getSquelchMode();
void setSquelchMode(qint32 squelch_mode);
float getSsqlTauMute();
void setSsqlTauMute(float ssql_tau_mute);
float getSsqlTauUnmute();
void setSsqlTauUnmute(float ssql_tau_unmute);
float getAmsqMaxTail();
void setAmsqMaxTail(float amsq_max_tail);
qint32 getEqualizer();
void setEqualizer(qint32 equalizer);
QList<float>* getEqF();
void setEqF(QList<float>* eq_f);
QList<float>* getEqG();
void setEqG(QList<float>* eq_g);
qint32 getSpanLog2();
void setSpanLog2(qint32 span_log2);
float getRfBandwidth();
void setRfBandwidth(float rf_bandwidth);
float getLowCutoff();
void setLowCutoff(float low_cutoff);
qint32 getFftWindow();
void setFftWindow(qint32 fft_window);
qint32 getRgbColor();
void setRgbColor(qint32 rgb_color);
QString* getTitle();
void setTitle(QString* title);
QString* getAudioDeviceName();
void setAudioDeviceName(QString* audio_device_name);
qint32 getStreamIndex();
void setStreamIndex(qint32 stream_index);
qint32 getUseReverseApi();
void setUseReverseApi(qint32 use_reverse_api);
QString* getReverseApiAddress();
void setReverseApiAddress(QString* reverse_api_address);
qint32 getReverseApiPort();
void setReverseApiPort(qint32 reverse_api_port);
qint32 getReverseApiDeviceIndex();
void setReverseApiDeviceIndex(qint32 reverse_api_device_index);
qint32 getReverseApiChannelIndex();
void setReverseApiChannelIndex(qint32 reverse_api_channel_index);
SWGGLSpectrum* getSpectrumConfig();
void setSpectrumConfig(SWGGLSpectrum* spectrum_config);
SWGChannelMarker* getChannelMarker();
void setChannelMarker(SWGChannelMarker* channel_marker);
SWGRollupState* getRollupState();
void setRollupState(SWGRollupState* rollup_state);
virtual bool isSet() override;
private:
qint64 input_frequency_offset;
bool m_input_frequency_offset_isSet;
qint32 profile_index;
bool m_profile_index_isSet;
qint32 demod;
bool m_demod_isSet;
float volume;
bool m_volume_isSet;
qint32 audio_binaural;
bool m_audio_binaural_isSet;
qint32 audio_flip_channels;
bool m_audio_flip_channels_isSet;
qint32 dsb;
bool m_dsb_isSet;
qint32 audio_mute;
bool m_audio_mute_isSet;
qint32 agc;
bool m_agc_isSet;
qint32 agc_mode;
bool m_agc_mode_isSet;
qint32 agc_gain;
bool m_agc_gain_isSet;
qint32 agc_slope;
bool m_agc_slope_isSet;
qint32 agc_hang_threshold;
bool m_agc_hang_threshold_isSet;
qint32 dnb;
bool m_dnb_isSet;
qint32 nb_scheme;
bool m_nb_scheme_isSet;
qint32 nb2_mode;
bool m_nb2_mode_isSet;
float nb_slew_time;
bool m_nb_slew_time_isSet;
float nb_lead_time;
bool m_nb_lead_time_isSet;
float nb_lag_time;
bool m_nb_lag_time_isSet;
qint32 nb_threshold;
bool m_nb_threshold_isSet;
float nb_avg_time;
bool m_nb_avg_time_isSet;
qint32 dnr;
bool m_dnr_isSet;
qint32 anf;
bool m_anf_isSet;
qint32 nr_scheme;
bool m_nr_scheme_isSet;
qint32 nr2_gain;
bool m_nr2_gain_isSet;
qint32 nr2_npe;
bool m_nr2_npe_isSet;
qint32 nr_position;
bool m_nr_position_isSet;
qint32 nr2_artifact_reduction;
bool m_nr2_artifact_reduction_isSet;
qint32 am_fade_level;
bool m_am_fade_level_isSet;
qint32 cw_peaking;
bool m_cw_peaking_isSet;
float cw_peak_frequency;
bool m_cw_peak_frequency_isSet;
float cw_bandwidth;
bool m_cw_bandwidth_isSet;
float cw_gain;
bool m_cw_gain_isSet;
float fm_deviation;
bool m_fm_deviation_isSet;
float fm_af_low;
bool m_fm_af_low_isSet;
float fm_af_high;
bool m_fm_af_high_isSet;
qint32 fm_af_limiter;
bool m_fm_af_limiter_isSet;
float fm_af_limiter_gain;
bool m_fm_af_limiter_gain_isSet;
qint32 fm_ctcss_notch;
bool m_fm_ctcss_notch_isSet;
float fm_ctcss_notch_frequency;
bool m_fm_ctcss_notch_frequency_isSet;
qint32 squelch;
bool m_squelch_isSet;
qint32 squelch_threshold;
bool m_squelch_threshold_isSet;
qint32 squelch_mode;
bool m_squelch_mode_isSet;
float ssql_tau_mute;
bool m_ssql_tau_mute_isSet;
float ssql_tau_unmute;
bool m_ssql_tau_unmute_isSet;
float amsq_max_tail;
bool m_amsq_max_tail_isSet;
qint32 equalizer;
bool m_equalizer_isSet;
QList<float>* eq_f;
bool m_eq_f_isSet;
QList<float>* eq_g;
bool m_eq_g_isSet;
qint32 span_log2;
bool m_span_log2_isSet;
float rf_bandwidth;
bool m_rf_bandwidth_isSet;
float low_cutoff;
bool m_low_cutoff_isSet;
qint32 fft_window;
bool m_fft_window_isSet;
qint32 rgb_color;
bool m_rgb_color_isSet;
QString* title;
bool m_title_isSet;
QString* audio_device_name;
bool m_audio_device_name_isSet;
qint32 stream_index;
bool m_stream_index_isSet;
qint32 use_reverse_api;
bool m_use_reverse_api_isSet;
QString* reverse_api_address;
bool m_reverse_api_address_isSet;
qint32 reverse_api_port;
bool m_reverse_api_port_isSet;
qint32 reverse_api_device_index;
bool m_reverse_api_device_index_isSet;
qint32 reverse_api_channel_index;
bool m_reverse_api_channel_index_isSet;
SWGGLSpectrum* spectrum_config;
bool m_spectrum_config_isSet;
SWGChannelMarker* channel_marker;
bool m_channel_marker_isSet;
SWGRollupState* rollup_state;
bool m_rollup_state_isSet;
};
}
#endif /* SWGWDSPRxSettings_H_ */