1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2025-06-25 05:25:27 -04:00

Added spectrum histogram clear button

This commit is contained in:
f4exb 2015-07-24 01:09:03 +02:00
parent bec9d90bd3
commit a5bf0c2720
9 changed files with 64 additions and 5 deletions

View File

@ -112,21 +112,24 @@ Done since the fork
- Added a scope widget in the channel analyzer plugin - Added a scope widget in the channel analyzer plugin
- Channel analyzer bandwidth up to half the available RF (IF) bandwidth (was 48k fixed) - Channel analyzer bandwidth up to half the available RF (IF) bandwidth (was 48k fixed)
- Enhanced scope display and controls: scale display, better X (time) and Y scales control, grid fit to scale, effectively implementing triggers, trigger on magnitude and phase, properly handling time shift, ... - Enhanced scope display and controls: scale display, better X (time) and Y scales control, grid fit to scale, effectively implementing triggers, trigger on magnitude and phase, properly handling time shift, ...
- Enhanced spectrum display: Histogram: define NO_AVX, wider decay range, make stroke and late holdoff adjustable. Added option to show live spectrum (had only max hold before). - Enhanced spectrum display: Histogram: wider decay range, make stroke and late holdoff adjustable. Added option to show live spectrum (had only max hold before).
- Enhanced channel analyzer: enhanced scope and spectrum displays as mentioned above, make the spectrum display synchronous to scope (hence triggerable a la E4406A). - Enhanced channel analyzer: enhanced scope and spectrum displays as mentioned above, make the spectrum display synchronous to scope (hence triggerable a la E4406A).
- Sort channel plugins by delta frequency and type before saving to preset - Sort channel plugins by delta frequency and type before saving to preset
- Implemented scope pre-trigger delay - Implemented scope pre-trigger delay
- Implemented variable scope memory depth - Implemented variable scope memory depth
- Implemented trigger delay - Implemented trigger delay
- Trigger on both edges - Trigger on both edges
- Spectrum histogram clear
===== =====
To Do To Do
===== =====
- Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON) - Trigger line display for all trigger modes
- Level calibration - Level calibration
- Enhance WFM (stereo, RDS?) - Enhance presets management (Edit, Move, Import/Export from/to human readable format like JSON)
- Even more demods ...
- recording capability - recording capability
- Tx channels for Rx/Tx boards like BladeRF - Tx channels for Rx/Tx boards like BladeRF
- Enhance WFM (stereo, RDS?)
- Even more demods ...

View File

@ -54,6 +54,7 @@ public:
void removeChannelMarker(ChannelMarker* channelMarker); void removeChannelMarker(ChannelMarker* channelMarker);
void newSpectrum(const std::vector<Real>& spectrum, int fftSize); void newSpectrum(const std::vector<Real>& spectrum, int fftSize);
void clearSpectrumHistogram();
private: private:
struct ChannelMarkerState { struct ChannelMarkerState {

View File

@ -70,6 +70,7 @@ private slots:
void on_current_toggled(bool checked); void on_current_toggled(bool checked);
void on_invert_toggled(bool checked); void on_invert_toggled(bool checked);
void on_grid_toggled(bool checked); void on_grid_toggled(bool checked);
void on_clearSpectrum_clicked(bool checked);
}; };
#endif // INCLUDE_GLSPECTRUMGUI_H #endif // INCLUDE_GLSPECTRUMGUI_H

View File

@ -472,6 +472,18 @@ void GLSpectrum::resizeGL(int width, int height)
m_changesPending = true; m_changesPending = true;
} }
void GLSpectrum::clearSpectrumHistogram()
{
if(!m_mutex.tryLock(2))
return;
memset(m_histogram, 0x00, 100 * m_fftSize);
memset(m_histogramHoldoff, 0x07, 100 * m_fftSize);
m_mutex.unlock();
update();
}
void GLSpectrum::paintGL() void GLSpectrum::paintGL()
{ {
if(!m_mutex.tryLock(2)) if(!m_mutex.tryLock(2))

View File

@ -288,3 +288,9 @@ void GLSpectrumGUI::on_traceIntensity_valueChanged(int index)
if(m_glSpectrum != NULL) if(m_glSpectrum != NULL)
m_glSpectrum->setDisplayTraceIntensity(m_displayTraceIntensity); m_glSpectrum->setDisplayTraceIntensity(m_displayTraceIntensity);
} }
void GLSpectrumGUI::on_clearSpectrum_clicked(bool checked)
{
if(m_glSpectrum != NULL)
m_glSpectrum->clearSpectrumHistogram();
}

View File

@ -6,7 +6,7 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>273</width> <width>320</width>
<height>60</height> <height>60</height>
</rect> </rect>
</property> </property>
@ -270,6 +270,9 @@
<property name="checkable"> <property name="checkable">
<bool>true</bool> <bool>true</bool>
</property> </property>
<property name="autoRaise">
<bool>false</bool>
</property>
</widget> </widget>
</item> </item>
<item> <item>
@ -484,6 +487,38 @@
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="QPushButton" name="clearSpectrum">
<property name="minimumSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>24</width>
<height>24</height>
</size>
</property>
<property name="toolTip">
<string>Clear spectrum histogram</string>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset resource="../resources/res.qrc">
<normaloff>:/clear.png</normaloff>:/clear.png</iconset>
</property>
<property name="iconSize">
<size>
<width>16</width>
<height>16</height>
</size>
</property>
</widget>
</item>
<item> <item>
<widget class="QDial" name="traceIntensity"> <widget class="QDial" name="traceIntensity">
<property name="maximumSize"> <property name="maximumSize">

BIN
sdrbase/resources/clear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 259 B

After

Width:  |  Height:  |  Size: 240 B

View File

@ -24,5 +24,6 @@
<file>vertical_w.png</file> <file>vertical_w.png</file>
<file>current.png</file> <file>current.png</file>
<file>slopeb_icon.png</file> <file>slopeb_icon.png</file>
<file>clear.png</file>
</qresource> </qresource>
</RCC> </RCC>