1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-11-10 16:20:24 -05:00

GLSpectrum settings: removed confusing invert indicator and added ssb and usb

This commit is contained in:
f4exb 2020-05-04 18:39:24 +02:00
parent 8364354094
commit 094fdad9ea
9 changed files with 59 additions and 31 deletions

View File

@ -39,16 +39,17 @@ void GLSpectrumSettings::resetToDefaults()
m_histogramStroke = 30; m_histogramStroke = 30;
m_displayGridIntensity = 5, m_displayGridIntensity = 5,
m_displayWaterfall = true; m_displayWaterfall = true;
m_invertedWaterfall = false; m_invertedWaterfall = true;
m_displayMaxHold = false; m_displayMaxHold = false;
m_displayHistogram = false; m_displayHistogram = false;
m_displayGrid = false; m_displayGrid = false;
m_invert = true;
m_averagingMode = AvgModeNone; m_averagingMode = AvgModeNone;
m_averagingIndex = 0; m_averagingIndex = 0;
m_linear = false; m_linear = false;
m_wsSpectrumAddress = "127.0.0.1"; m_wsSpectrumAddress = "127.0.0.1";
m_wsSpectrumPort = 8887; m_wsSpectrumPort = 8887;
m_ssb = false;
m_usb = true;
} }
QByteArray GLSpectrumSettings::serialize() const QByteArray GLSpectrumSettings::serialize() const
@ -66,7 +67,6 @@ QByteArray GLSpectrumSettings::serialize() const
s.writeBool(9, m_displayHistogram); s.writeBool(9, m_displayHistogram);
s.writeS32(10, m_decay); s.writeS32(10, m_decay);
s.writeBool(11, m_displayGrid); s.writeBool(11, m_displayGrid);
s.writeBool(12, m_invert);
s.writeS32(13, m_displayGridIntensity); s.writeS32(13, m_displayGridIntensity);
s.writeS32(14, m_decayDivisor); s.writeS32(14, m_decayDivisor);
s.writeS32(15, m_histogramStroke); s.writeS32(15, m_histogramStroke);
@ -78,6 +78,8 @@ QByteArray GLSpectrumSettings::serialize() const
s.writeBool(21, m_linear); s.writeBool(21, m_linear);
s.writeString(22, m_wsSpectrumAddress); s.writeString(22, m_wsSpectrumAddress);
s.writeU32(23, m_wsSpectrumPort); s.writeU32(23, m_wsSpectrumPort);
s.writeBool(24, m_ssb);
s.writeBool(25, m_usb);
return s.final(); return s.final();
} }
@ -108,7 +110,6 @@ bool GLSpectrumSettings::deserialize(const QByteArray& data)
d.readBool(9, &m_displayHistogram, false); d.readBool(9, &m_displayHistogram, false);
d.readS32(10, &m_decay, 1); d.readS32(10, &m_decay, 1);
d.readBool(11, &m_displayGrid, false); d.readBool(11, &m_displayGrid, false);
d.readBool(12, &m_invert, true);
d.readS32(13, &m_displayGridIntensity, 5); d.readS32(13, &m_displayGridIntensity, 5);
d.readS32(14, &m_decayDivisor, 1); d.readS32(14, &m_decayDivisor, 1);
d.readS32(15, &m_histogramStroke, 30); d.readS32(15, &m_histogramStroke, 30);
@ -124,6 +125,8 @@ bool GLSpectrumSettings::deserialize(const QByteArray& data)
d.readString(22, &m_wsSpectrumAddress, "127.0.0.1"); d.readString(22, &m_wsSpectrumAddress, "127.0.0.1");
d.readU32(23, &utmp, 8887); d.readU32(23, &utmp, 8887);
m_wsSpectrumPort = utmp < 1024 ? 1024 : utmp > 65535 ? 65535 : utmp; m_wsSpectrumPort = utmp < 1024 ? 1024 : utmp > 65535 ? 65535 : utmp;
d.readBool(24, &m_ssb, false);
d.readBool(25, &m_usb, true);
return true; return true;
} }

View File

@ -53,11 +53,12 @@ public:
bool m_displayCurrent; bool m_displayCurrent;
bool m_displayHistogram; bool m_displayHistogram;
bool m_displayGrid; bool m_displayGrid;
bool m_invert;
AveragingMode m_averagingMode; AveragingMode m_averagingMode;
int m_averagingIndex; int m_averagingIndex;
unsigned int m_averagingNb; unsigned int m_averagingNb;
bool m_linear; //!< linear else logarithmic scale bool m_linear; //!< linear else logarithmic scale
bool m_ssb; //!< SSB display with spectrum center at start of array or display - else spectrum center is on center
bool m_usb; //!< USB display with increasing frequencies towads the right - else decreasing frequencies
QString m_wsSpectrumAddress; QString m_wsSpectrumAddress;
uint16_t m_wsSpectrumPort; uint16_t m_wsSpectrumPort;

View File

@ -142,7 +142,9 @@ void SpectrumVis::feed(const Complex *begin, unsigned int length)
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
} }
@ -175,7 +177,9 @@ void SpectrumVis::feed(const Complex *begin, unsigned int length)
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
@ -219,7 +223,9 @@ void SpectrumVis::feed(const Complex *begin, unsigned int length)
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
} }
@ -262,7 +268,9 @@ void SpectrumVis::feed(const Complex *begin, unsigned int length)
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
} }
@ -354,7 +362,9 @@ void SpectrumVis::feed(const SampleVector::const_iterator& cbegin, const SampleV
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
} }
@ -403,7 +413,9 @@ void SpectrumVis::feed(const SampleVector::const_iterator& cbegin, const SampleV
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
@ -470,7 +482,9 @@ void SpectrumVis::feed(const SampleVector::const_iterator& cbegin, const SampleV
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
} }
@ -536,7 +550,9 @@ void SpectrumVis::feed(const SampleVector::const_iterator& cbegin, const SampleV
m_settings.m_fftSize, m_settings.m_fftSize,
m_centerFrequency, m_centerFrequency,
m_sampleRate, m_sampleRate,
m_settings.m_linear m_settings.m_linear,
m_settings.m_ssb,
m_settings.m_usb
); );
} }
} }
@ -640,6 +656,8 @@ void SpectrumVis::applySettings(const GLSpectrumSettings& settings, bool force)
<< " m_refLevel: " << settings.m_refLevel << " m_refLevel: " << settings.m_refLevel
<< " m_powerRange: " << settings.m_powerRange << " m_powerRange: " << settings.m_powerRange
<< " m_linear: " << settings.m_linear << " m_linear: " << settings.m_linear
<< " m_ssb: " << settings.m_ssb
<< " m_usb: " << settings.m_usb
<< " m_wsSpectrumAddress: " << settings.m_wsSpectrumAddress << " m_wsSpectrumAddress: " << settings.m_wsSpectrumAddress
<< " m_wsSpectrumPort: " << settings.m_wsSpectrumPort << " m_wsSpectrumPort: " << settings.m_wsSpectrumPort
<< " force: " << force; << " force: " << force;

View File

@ -120,7 +120,6 @@ void WebAPIAdapterBase::webapiFormatPreset(
swgSpectrumConfig->setDisplayHistogram(m_spectrumSettings.m_displayHistogram ? 1 : 0); swgSpectrumConfig->setDisplayHistogram(m_spectrumSettings.m_displayHistogram ? 1 : 0);
swgSpectrumConfig->setDecay(m_spectrumSettings.m_decay); swgSpectrumConfig->setDecay(m_spectrumSettings.m_decay);
swgSpectrumConfig->setDisplayGrid(m_spectrumSettings.m_displayGrid ? 1 : 0); swgSpectrumConfig->setDisplayGrid(m_spectrumSettings.m_displayGrid ? 1 : 0);
swgSpectrumConfig->setInvert(m_spectrumSettings.m_invert ? 1 : 0);
swgSpectrumConfig->setDisplayGridIntensity(m_spectrumSettings.m_displayGridIntensity); swgSpectrumConfig->setDisplayGridIntensity(m_spectrumSettings.m_displayGridIntensity);
swgSpectrumConfig->setDecayDivisor(m_spectrumSettings.m_decayDivisor); swgSpectrumConfig->setDecayDivisor(m_spectrumSettings.m_decayDivisor);
swgSpectrumConfig->setHistogramStroke(m_spectrumSettings.m_histogramStroke); swgSpectrumConfig->setHistogramStroke(m_spectrumSettings.m_histogramStroke);
@ -264,9 +263,6 @@ void WebAPIAdapterBase::webapiUpdatePreset(
if (spectrumIt->contains("histogramStroke")) { if (spectrumIt->contains("histogramStroke")) {
spectrumSettings.m_histogramStroke = apiPreset->getSpectrumConfig()->getHistogramStroke(); spectrumSettings.m_histogramStroke = apiPreset->getSpectrumConfig()->getHistogramStroke();
} }
if (spectrumIt->contains("invert")) {
spectrumSettings.m_invert = apiPreset->getSpectrumConfig()->getInvert() != 0;
}
if (spectrumIt->contains("invertedWaterfall")) { if (spectrumIt->contains("invertedWaterfall")) {
spectrumSettings.m_invertedWaterfall = apiPreset->getSpectrumConfig()->getInvertedWaterfall() != 0; spectrumSettings.m_invertedWaterfall = apiPreset->getSpectrumConfig()->getInvertedWaterfall() != 0;
} }

View File

@ -117,7 +117,9 @@ void WSSpectrum::newSpectrum(
int fftSize, int fftSize,
uint64_t centerFrequency, uint64_t centerFrequency,
int bandwidth, int bandwidth,
bool linear bool linear,
bool ssb,
bool usb
) )
{ {
if (m_timer.elapsed() < 200) { // Max 5 frames per second if (m_timer.elapsed() < 200) { // Max 5 frames per second
@ -137,7 +139,9 @@ void WSSpectrum::newSpectrum(
nowMs, nowMs,
centerFrequency, centerFrequency,
bandwidth, bandwidth,
linear linear,
ssb,
usb
); );
//qDebug() << "WSSpectrum::newSpectrum: " << payload.size() << " bytes in " << elapsed << " ms"; //qDebug() << "WSSpectrum::newSpectrum: " << payload.size() << " bytes in " << elapsed << " ms";
emit payloadToSend(payload); emit payloadToSend(payload);
@ -159,7 +163,9 @@ void WSSpectrum::buildPayload(
uint64_t timestampMs, uint64_t timestampMs,
uint64_t centerFrequency, uint64_t centerFrequency,
int bandwidth, int bandwidth,
bool linear bool linear,
bool ssb,
bool usb
) )
{ {
QBuffer buffer(&bytes); QBuffer buffer(&bytes);
@ -169,8 +175,8 @@ void WSSpectrum::buildPayload(
buffer.write((char*) &timestampMs, sizeof(uint64_t)); // 16 buffer.write((char*) &timestampMs, sizeof(uint64_t)); // 16
buffer.write((char*) &fftSize, sizeof(int)); // 24 buffer.write((char*) &fftSize, sizeof(int)); // 24
buffer.write((char*) &bandwidth, sizeof(int)); // 28 buffer.write((char*) &bandwidth, sizeof(int)); // 28
int linearInt = linear ? 1 : 0; int indicators = (linear ? 1 : 0) + (ssb ? 2 : 0) + (usb ? 4 : 0);
buffer.write((char*) &linearInt, sizeof(int)); // 32 buffer.write((char*) &indicators, sizeof(int)); // 32
buffer.write((char*) spectrum.data(), fftSize*sizeof(Real)); // 36 buffer.write((char*) spectrum.data(), fftSize*sizeof(Real)); // 36
buffer.close(); buffer.close();
} }

View File

@ -49,7 +49,9 @@ public:
int fftSize, int fftSize,
uint64_t centerFrequency, uint64_t centerFrequency,
int bandwidth, int bandwidth,
bool linear bool linear,
bool ssb = false,
bool usb = true
); );
signals: signals:
@ -77,7 +79,9 @@ private:
uint64_t timestampMs, uint64_t timestampMs,
uint64_t centerFrequency, uint64_t centerFrequency,
int bandwidth, int bandwidth,
bool linear bool linear,
bool ssb,
bool usb
); );
}; };

View File

@ -110,7 +110,7 @@ void GLSpectrumGUI::displaySettings()
ui->maxHold->setChecked(m_settings.m_displayMaxHold); ui->maxHold->setChecked(m_settings.m_displayMaxHold);
ui->current->setChecked(m_settings.m_displayCurrent); ui->current->setChecked(m_settings.m_displayCurrent);
ui->histogram->setChecked(m_settings.m_displayHistogram); ui->histogram->setChecked(m_settings.m_displayHistogram);
ui->invert->setChecked(m_settings.m_invert); ui->invertWaterfall->setChecked(m_settings.m_invertedWaterfall);
ui->grid->setChecked(m_settings.m_displayGrid); ui->grid->setChecked(m_settings.m_displayGrid);
ui->gridIntensity->setSliderPosition(m_settings.m_displayGridIntensity); ui->gridIntensity->setSliderPosition(m_settings.m_displayGridIntensity);
@ -169,7 +169,7 @@ void GLSpectrumGUI::applySettings()
m_glSpectrum->setDecay(m_settings.m_decay); m_glSpectrum->setDecay(m_settings.m_decay);
m_glSpectrum->setDecayDivisor(m_settings.m_decayDivisor); m_glSpectrum->setDecayDivisor(m_settings.m_decayDivisor);
m_glSpectrum->setHistoStroke(m_settings.m_histogramStroke); m_glSpectrum->setHistoStroke(m_settings.m_histogramStroke);
m_glSpectrum->setInvertedWaterfall(m_settings.m_invert); m_glSpectrum->setInvertedWaterfall(m_settings.m_invertedWaterfall);
m_glSpectrum->setDisplayGrid(m_settings.m_displayGrid); m_glSpectrum->setDisplayGrid(m_settings.m_displayGrid);
m_glSpectrum->setDisplayGridIntensity(m_settings.m_displayGridIntensity); m_glSpectrum->setDisplayGridIntensity(m_settings.m_displayGridIntensity);
m_glSpectrum->setDisplayTraceIntensity(m_settings.m_displayTraceIntensity); m_glSpectrum->setDisplayTraceIntensity(m_settings.m_displayTraceIntensity);
@ -306,9 +306,9 @@ void GLSpectrumGUI::on_current_toggled(bool checked)
applySettings(); applySettings();
} }
void GLSpectrumGUI::on_invert_toggled(bool checked) void GLSpectrumGUI::on_invertWaterfall_toggled(bool checked)
{ {
m_settings.m_invert = checked; m_settings.m_invertedWaterfall = checked;
applySettings(); applySettings();
} }

View File

@ -99,7 +99,7 @@ private slots:
void on_histogram_toggled(bool checked); void on_histogram_toggled(bool checked);
void on_maxHold_toggled(bool checked); void on_maxHold_toggled(bool checked);
void on_current_toggled(bool checked); void on_current_toggled(bool checked);
void on_invert_toggled(bool checked); void on_invertWaterfall_toggled(bool checked);
void on_grid_toggled(bool checked); void on_grid_toggled(bool checked);
void on_clearSpectrum_clicked(bool checked); void on_clearSpectrum_clicked(bool checked);

View File

@ -215,7 +215,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="ButtonSwitch" name="invert"> <widget class="ButtonSwitch" name="invertWaterfall">
<property name="toolTip"> <property name="toolTip">
<string>Exchange waterfall and histogram</string> <string>Exchange waterfall and histogram</string>
</property> </property>
@ -748,7 +748,7 @@
<tabstops> <tabstops>
<tabstop>histogram</tabstop> <tabstop>histogram</tabstop>
<tabstop>maxHold</tabstop> <tabstop>maxHold</tabstop>
<tabstop>invert</tabstop> <tabstop>invertWaterfall</tabstop>
<tabstop>grid</tabstop> <tabstop>grid</tabstop>
</tabstops> </tabstops>
<resources> <resources>