diff --git a/doc/img/ChAnalyzerNG_plugin_scope2.png b/doc/img/ChAnalyzerNG_plugin_scope2.png index dcf1d2826..cefd35fe0 100644 Binary files a/doc/img/ChAnalyzerNG_plugin_scope2.png and b/doc/img/ChAnalyzerNG_plugin_scope2.png differ diff --git a/doc/img/ChAnalyzerNG_plugin_scope2.xcf b/doc/img/ChAnalyzerNG_plugin_scope2.xcf index 8b46b1140..f3354046d 100644 Binary files a/doc/img/ChAnalyzerNG_plugin_scope2.xcf and b/doc/img/ChAnalyzerNG_plugin_scope2.xcf differ diff --git a/plugins/channelrx/chanalyzer/chanalyzergui.cpp b/plugins/channelrx/chanalyzer/chanalyzergui.cpp index 18e1c9b25..4a21d237b 100644 --- a/plugins/channelrx/chanalyzer/chanalyzergui.cpp +++ b/plugins/channelrx/chanalyzer/chanalyzergui.cpp @@ -462,7 +462,7 @@ void ChannelAnalyzerGUI::setNewFinalRate() QString s = QString::number(m_rate/1000.0, 'f', 1); ui->spanText->setText(tr("%1 kS/s").arg(s)); - m_scopeVis->setLiveRate(m_rate); + m_scopeVis->setLiveRate(getRequestedChannelSampleRate()); } void ChannelAnalyzerGUI::setFiltersUIBoundaries() @@ -547,6 +547,8 @@ void ChannelAnalyzerGUI::applySettings(bool force) ChannelAnalyzer::MsgConfigureChannelAnalyzer* message = ChannelAnalyzer::MsgConfigureChannelAnalyzer::create( m_settings, force); m_channelAnalyzer->getInputMessageQueue()->push(message); + + m_scopeVis->setLiveRateLog2Decim(m_settings.m_spanLog2); } } diff --git a/plugins/channelrx/chanalyzer/readme.md b/plugins/channelrx/chanalyzer/readme.md index 17b9f20cb..7eaa726de 100644 --- a/plugins/channelrx/chanalyzer/readme.md +++ b/plugins/channelrx/chanalyzer/readme.md @@ -321,12 +321,22 @@ By default the trace display is enabled and this checkbox is checked. You can op This area shows the current trace color. When clicking on it a color chooser dialog appears that lets you change the color of the current trace -

11. Memory select

+

11. Save traces in memory

-The last 15 traces are stored in memory and this button lets you browse through traces in memory. The memory index appears on the left of the button. Traces in memory are sorted from latest (1) to oldest (15). The memory index 0 is the current live trace. When indexes > 0 are selected the live trace is suspended. +While in memory mode (see E.13 next) use this button to save the bank of traces in memory (50 last traces) to file. A file dialog will open to let you choose the file name and locaion. By default the file extension is `.trcm`. + +

12. Load traces into memory

+ +While in memory mode (see E.13 next) use this button to load traces previously saved to file using the (E.11) button into the traces memory bank (50 traces). A file dialog will open to let you select the file. It will look for files with `.trcm` extension by default. + +

13. Memory select

+ +The last 50 traces are stored in memory and this button lets you browse through traces in memory. The memory index appears on the left of the button. Traces in memory are sorted from latest (1) to oldest (50). The memory index 0 is the current live trace. When indexes > 0 are selected the live trace is suspended. It is the complex signal that is memorized actually so when a trace in memory is selected you can still use the global and trace controls to change the display. In particular the projection mode and the number of traces can be changed. Only the full trace length cannot be modified. When in memory mode the triggers are disabled since they only apply to a live trace. +While in memory trace the save (E.11) and load (E.12) traces to file buttons can be used. +

F. Trigger control line

![Channel Analyzer NG plugin scope1 controls](../../../doc/img/ChAnalyzerNG_plugin_scope3.png) diff --git a/sdrgui/dsp/scopevis.cpp b/sdrgui/dsp/scopevis.cpp index 9d65c6456..5ac6a2e10 100644 --- a/sdrgui/dsp/scopevis.cpp +++ b/sdrgui/dsp/scopevis.cpp @@ -55,6 +55,7 @@ ScopeVis::ScopeVis(GLScope* glScope) : m_traceStart(true), m_sampleRate(0), m_liveSampleRate(0), + m_liveLog2Decim(0), m_traceDiscreteMemory(m_nbTraceMemories), m_freeRun(true), m_maxTraceDelay(0), @@ -82,12 +83,19 @@ void ScopeVis::setLiveRate(int sampleRate) m_liveSampleRate = sampleRate; if (m_currentTraceMemoryIndex == 0) { // update only in live mode - setSampleRate(m_liveSampleRate); + setSampleRate(m_liveSampleRate/(1<4.8. Phosphor display stroke decay divisor -When phosphor display is engaged (4.C) and stroke decay is 1 (4.7) this divides the unit decay by this value by diminishing histogram pixel value by one each time a decay divisor of FFTs have been produced. So actual decay rate is 1 over this value. +When phosphor display is engaged (4.C) and stroke decay is 1 (4.7) this divides the unit decay by this value by diminishing histogram pixel value by one each time a number of FFTs equal to this number have been produced. Thus the actual decay rate is 1 over this value. This allow setting a slower decay rate than one unit for each new FFT.

4.9. Phosphor display stroke strength