1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-09-27 15:26:33 -04:00

REST API: config: GET (12): added spectrum settings data

This commit is contained in:
f4exb 2019-08-05 03:31:44 +02:00
parent 4b3d088407
commit e06b7fce90
8 changed files with 58 additions and 24 deletions

View File

@ -19,6 +19,11 @@
#include "util/simpleserializer.h" #include "util/simpleserializer.h"
#include "glspectrumsettings.h" #include "glspectrumsettings.h"
GLSpectrumSettings::GLSpectrumSettings()
{
resetToDefaults();
}
void GLSpectrumSettings::resetToDefaults() void GLSpectrumSettings::resetToDefaults()
{ {
m_fftSize = 1024; m_fftSize = 1024;

View File

@ -3099,7 +3099,7 @@ margin-bottom: 20px;
"fftOverlap" : { "fftOverlap" : {
"type" : "integer" "type" : "integer"
}, },
"m_fftWindow" : { "fftWindow" : {
"type" : "integer", "type" : "integer",
"description" : "See FFTWindow" "description" : "See FFTWindow"
}, },
@ -26955,7 +26955,7 @@ except ApiException as e:
</div> </div>
<div id="generator"> <div id="generator">
<div class="content"> <div class="content">
Generated 2019-08-04T02:40:24.306+02:00 Generated 2019-08-05T03:02:48.921+02:00
</div> </div>
</div> </div>
</div> </div>

View File

@ -5,7 +5,7 @@ GLSpectrum:
type: integer type: integer
fftOverlap: fftOverlap:
type: integer type: integer
m_fftWindow: fftWindow:
description: See FFTWindow description: See FFTWindow
type: integer type: integer
refLevel: refLevel:

View File

@ -22,6 +22,7 @@
#include "channel/channelutils.h" #include "channel/channelutils.h"
#include "device/devicewebapiadapter.h" #include "device/devicewebapiadapter.h"
#include "device/deviceutils.h" #include "device/deviceutils.h"
#include "dsp/glspectrumsettings.h"
#include "webapiadapterbase.h" #include "webapiadapterbase.h"
WebAPIAdapterBase::WebAPIAdapterBase() WebAPIAdapterBase::WebAPIAdapterBase()
@ -60,9 +61,37 @@ void WebAPIAdapterBase::webapiFormatPreset(
apiPreset->setGroup(new QString(preset.getGroup())); apiPreset->setGroup(new QString(preset.getGroup()));
apiPreset->setDescription(new QString(preset.getDescription())); apiPreset->setDescription(new QString(preset.getDescription()));
apiPreset->setCenterFrequency(preset.getCenterFrequency()); apiPreset->setCenterFrequency(preset.getCenterFrequency());
apiPreset->getSpectrumConfig()->init(); // TODO when spectrum config is extracted to sdrbase
apiPreset->setDcOffsetCorrection(preset.hasDCOffsetCorrection() ? 1 : 0); apiPreset->setDcOffsetCorrection(preset.hasDCOffsetCorrection() ? 1 : 0);
apiPreset->setIqImbalanceCorrection(preset.hasIQImbalanceCorrection() ? 1 : 0); apiPreset->setIqImbalanceCorrection(preset.hasIQImbalanceCorrection() ? 1 : 0);
const QByteArray& spectrumConfig = preset.getSpectrumConfig();
GLSpectrumSettings m_spectrumSettings;
if (m_spectrumSettings.deserialize(spectrumConfig))
{
SWGSDRangel::SWGGLSpectrum *swgSpectrumConfig = apiPreset->getSpectrumConfig();
swgSpectrumConfig->init();
swgSpectrumConfig->setFftSize(m_spectrumSettings.m_fftSize);
swgSpectrumConfig->setFftOverlap(m_spectrumSettings.m_fftOverlap);
swgSpectrumConfig->setFftWindow((int) m_spectrumSettings.m_fftWindow);
swgSpectrumConfig->setRefLevel(m_spectrumSettings.m_refLevel);
swgSpectrumConfig->setPowerRange(m_spectrumSettings.m_powerRange);
swgSpectrumConfig->setDisplayWaterfall(m_spectrumSettings.m_displayWaterfall ? 0 : 1);
swgSpectrumConfig->setInvertedWaterfall(m_spectrumSettings.m_invertedWaterfall ? 0 : 1);
swgSpectrumConfig->setDisplayMaxHold(m_spectrumSettings.m_displayMaxHold ? 0 : 1);
swgSpectrumConfig->setDisplayHistogram(m_spectrumSettings.m_displayHistogram ? 0 : 1);
swgSpectrumConfig->setDecay(m_spectrumSettings.m_decay);
swgSpectrumConfig->setDisplayGrid(m_spectrumSettings.m_displayGrid ? 1 : 0);
swgSpectrumConfig->setInvert(m_spectrumSettings.m_invert ? 1 : 0);
swgSpectrumConfig->setDisplayGridIntensity(m_spectrumSettings.m_displayGridIntensity);
swgSpectrumConfig->setDecayDivisor(m_spectrumSettings.m_decayDivisor);
swgSpectrumConfig->setHistogramStroke(m_spectrumSettings.m_histogramStroke);
swgSpectrumConfig->setDisplayCurrent(m_spectrumSettings.m_displayCurrent ? 1 : 0);
swgSpectrumConfig->setDisplayTraceIntensity(m_spectrumSettings.m_displayTraceIntensity);
swgSpectrumConfig->setWaterfallShare(m_spectrumSettings.m_waterfallShare);
swgSpectrumConfig->setAveragingMode((int) m_spectrumSettings.m_averagingMode);
swgSpectrumConfig->setAveragingValue(GLSpectrumSettings::getAveragingValue(m_spectrumSettings.m_averagingIndex, m_spectrumSettings.m_averagingMode));
swgSpectrumConfig->setLinear(m_spectrumSettings.m_linear ? 1 : 0);
}
int nbChannels = preset.getChannelCount(); int nbChannels = preset.getChannelCount();
for (int i = 0; i < nbChannels; i++) for (int i = 0; i < nbChannels; i++)

View File

@ -5,7 +5,7 @@ GLSpectrum:
type: integer type: integer
fftOverlap: fftOverlap:
type: integer type: integer
m_fftWindow: fftWindow:
description: See FFTWindow description: See FFTWindow
type: integer type: integer
refLevel: refLevel:

View File

@ -3099,7 +3099,7 @@ margin-bottom: 20px;
"fftOverlap" : { "fftOverlap" : {
"type" : "integer" "type" : "integer"
}, },
"m_fftWindow" : { "fftWindow" : {
"type" : "integer", "type" : "integer",
"description" : "See FFTWindow" "description" : "See FFTWindow"
}, },
@ -26955,7 +26955,7 @@ except ApiException as e:
</div> </div>
<div id="generator"> <div id="generator">
<div class="content"> <div class="content">
Generated 2019-08-04T02:40:24.306+02:00 Generated 2019-08-05T03:02:48.921+02:00
</div> </div>
</div> </div>
</div> </div>

View File

@ -32,8 +32,8 @@ SWGGLSpectrum::SWGGLSpectrum() {
m_fft_size_isSet = false; m_fft_size_isSet = false;
fft_overlap = 0; fft_overlap = 0;
m_fft_overlap_isSet = false; m_fft_overlap_isSet = false;
m_fft_window = 0; fft_window = 0;
m_m_fft_window_isSet = false; m_fft_window_isSet = false;
ref_level = 0.0f; ref_level = 0.0f;
m_ref_level_isSet = false; m_ref_level_isSet = false;
power_range = 0.0f; power_range = 0.0f;
@ -82,8 +82,8 @@ SWGGLSpectrum::init() {
m_fft_size_isSet = false; m_fft_size_isSet = false;
fft_overlap = 0; fft_overlap = 0;
m_fft_overlap_isSet = false; m_fft_overlap_isSet = false;
m_fft_window = 0; fft_window = 0;
m_m_fft_window_isSet = false; m_fft_window_isSet = false;
ref_level = 0.0f; ref_level = 0.0f;
m_ref_level_isSet = false; m_ref_level_isSet = false;
power_range = 0.0f; power_range = 0.0f;
@ -162,7 +162,7 @@ SWGGLSpectrum::fromJsonObject(QJsonObject &pJson) {
::SWGSDRangel::setValue(&fft_overlap, pJson["fftOverlap"], "qint32", ""); ::SWGSDRangel::setValue(&fft_overlap, pJson["fftOverlap"], "qint32", "");
::SWGSDRangel::setValue(&m_fft_window, pJson["m_fftWindow"], "qint32", ""); ::SWGSDRangel::setValue(&fft_window, pJson["fftWindow"], "qint32", "");
::SWGSDRangel::setValue(&ref_level, pJson["refLevel"], "float", ""); ::SWGSDRangel::setValue(&ref_level, pJson["refLevel"], "float", "");
@ -222,8 +222,8 @@ SWGGLSpectrum::asJsonObject() {
if(m_fft_overlap_isSet){ if(m_fft_overlap_isSet){
obj->insert("fftOverlap", QJsonValue(fft_overlap)); obj->insert("fftOverlap", QJsonValue(fft_overlap));
} }
if(m_m_fft_window_isSet){ if(m_fft_window_isSet){
obj->insert("m_fftWindow", QJsonValue(m_fft_window)); obj->insert("fftWindow", QJsonValue(fft_window));
} }
if(m_ref_level_isSet){ if(m_ref_level_isSet){
obj->insert("refLevel", QJsonValue(ref_level)); obj->insert("refLevel", QJsonValue(ref_level));
@ -304,13 +304,13 @@ SWGGLSpectrum::setFftOverlap(qint32 fft_overlap) {
} }
qint32 qint32
SWGGLSpectrum::getMFftWindow() { SWGGLSpectrum::getFftWindow() {
return m_fft_window; return fft_window;
} }
void void
SWGGLSpectrum::setMFftWindow(qint32 m_fft_window) { SWGGLSpectrum::setFftWindow(qint32 fft_window) {
this->m_fft_window = m_fft_window; this->fft_window = fft_window;
this->m_m_fft_window_isSet = true; this->m_fft_window_isSet = true;
} }
float float
@ -504,7 +504,7 @@ SWGGLSpectrum::isSet(){
if(m_fft_overlap_isSet){ if(m_fft_overlap_isSet){
isObjectUpdated = true; break; isObjectUpdated = true; break;
} }
if(m_m_fft_window_isSet){ if(m_fft_window_isSet){
isObjectUpdated = true; break; isObjectUpdated = true; break;
} }
if(m_ref_level_isSet){ if(m_ref_level_isSet){

View File

@ -47,8 +47,8 @@ public:
qint32 getFftOverlap(); qint32 getFftOverlap();
void setFftOverlap(qint32 fft_overlap); void setFftOverlap(qint32 fft_overlap);
qint32 getMFftWindow(); qint32 getFftWindow();
void setMFftWindow(qint32 m_fft_window); void setFftWindow(qint32 fft_window);
float getRefLevel(); float getRefLevel();
void setRefLevel(float ref_level); void setRefLevel(float ref_level);
@ -114,8 +114,8 @@ private:
qint32 fft_overlap; qint32 fft_overlap;
bool m_fft_overlap_isSet; bool m_fft_overlap_isSet;
qint32 m_fft_window; qint32 fft_window;
bool m_m_fft_window_isSet; bool m_fft_window_isSet;
float ref_level; float ref_level;
bool m_ref_level_isSet; bool m_ref_level_isSet;