1
0
mirror of https://github.com/f4exb/sdrangel.git synced 2024-12-22 17:45:48 -05:00

Scope GUI: amplitude and offset reset buttons. Fixes and updated documentation

This commit is contained in:
f4exb 2021-06-27 11:42:27 +02:00
parent f886f7d400
commit 2eb8abeb00
8 changed files with 103 additions and 26 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

View File

@ -312,31 +312,74 @@ This is for future use when more than one incoming complex signals can be applie
<h3>6. Amplitude adjustment</h3>
This slider lets you adjust the amplitude scale. The full scale value appears on the left of the slider. The unit depends on the projection.
The amplitude range (vertical scale) can be set to any value from 1e-10 to 9.999e+10. Values are entered as mantissa (6.3 and 6.4) and exponent (6.5) values.
I/Q signal range is +/-1 however values larger than 1 are accomodated for the general usage of the scope in other plugins.
When displayed signal can be negative (+/- scale) the range is -range to +range. When displayed signal is positive (ex: magnitudes) the range is 0 to 2&times;range.
![Channel Analyzer NG plugin amplitude scale control](../../../doc/img/ChAnalyzerNG_plugin_ampScale.png)
<h4>6.1. Amplitude scale reset</h4>
Push this button to reset amplitude scale to 1.
<h4>6.2. Mantissa display</h4>
The amplitude range is M&times;10<sup>E</sup>. This displays the M value.
<h4>6.3 Mantissa fine control</h4>
This slider sets the decimal digits of the mantissa from .000 to .999
<h4>6.4 Mantissa coarse control</h4>
This dial button sets the integer part of the mantissa from 1 to 9.
<h4>6.5 Exponent control</h4>
This slider sets the exponent from -10 to +10. The value is displayed at the left of the slider in exponent notation.
<h4>6.6 Unit multiplier on vertical scale</h4>
This displays the unit multiplier for values on the vertical scale of the display.
- **p**: pico (&times;10<sup>-12</sup>)
- **n**: nano (&times;10<sup>-9</sup>)
- **&mu;**: micro (&times;10<sup>-6</sup>)
- **m**: milli (&times;10<sup>-3</sup>)
- **-**: none (&times;1)
- **k**: kilo (&times;10<sup>3</sup>)
- **M**: mega (&times;10<sup>6</sup>)
- **G**: giga (&times;10<sup>9</sup>)
<h3>7. Offset adjustment</h3>
This pair of sliders let you offset the trace vertically. The offset value from reference appears on the left of the slider. The reference is either:
The amplitude range can be offset by any value from -5&times;10<sup>-10</sup> to 5&times;10<sup>10</sup>.
- central zero value for Real, Imag, Phi and dPhi projections
- bottom zero value for MagLin projection
- bottom -200 dB value for MagDB projection
I/Q signal range is +/-1 however values larger than 1 are accomodated for the general usage of the scope in other plugins.
The top slider is a coarse adjustment. Each step moves the trace by an amount that depends on the projection type:
![Channel Analyzer NG plugin amplitude offset control](../../../doc/img/ChAnalyzerNG_plugin_ampOffset.png)
- Real, Imag: 0.01
- Mag: 0.005
- MagSq: 0.005
- MagDB: 1 dB
- Phi, dPhi: 0.01
<h4>7.1. Amplitude offset reset</h4>
The bottom slider is a fine adjustment. Each step moves the trace by an amount that depends on the projection type:
Push this button to reset amplitude offset to 0.
- Real, Imag: 50.0E-6
- Mag: 25.0sE-6
- MagSq: 25.0sE-6
- MagDB: 0.01 dB
- Phi, dPhi: 50.0E-6
<h4>7.2. Mantissa display</h4>
The amplitude offset is M&times;10<sup>E</sup>. This displays the M value.
<h4>7.3 Mantissa fine control</h4>
This slider sets the decimal digits of the mantissa from .000 to 0.999 and jump to next unit (so 5.000 can be reached)
<h4>7.4 Mantissa coarse control</h4>
This dial button sets the integer part of the mantissa from -5 to 4.
<h4>7.5 Exponent control</h4>
This slider sets the exponent from -10 to +10. The value is displayed at the left of the slider in exponent notation.
<h3>8. Trace delay adjustment</h3>

View File

@ -854,6 +854,16 @@ void GLScopeGUI::on_traceMode_currentIndexChanged(int index)
changeCurrentTrace();
}
void GLScopeGUI::on_ampReset_clicked(bool checked)
{
(void) checked;
ui->amp->setValue(0);
ui->ampCoarse->setValue(1);
ui->ampExp->setValue(0);
setAmpScaleDisplay();
changeCurrentTrace();
}
void GLScopeGUI::on_amp_valueChanged(int value)
{
(void) value;
@ -875,6 +885,16 @@ void GLScopeGUI::on_ampExp_valueChanged(int value)
changeCurrentTrace();
}
void GLScopeGUI::on_ofsReset_clicked(bool checked)
{
(void) checked;
ui->ofsFine->setValue(0);
ui->ofsCoarse->setValue(0);
ui->ofsExp->setValue(0);
setAmpOfsDisplay();
changeCurrentTrace();
}
void GLScopeGUI::on_ofsCoarse_valueChanged(int value)
{
(void) value;
@ -1526,12 +1546,12 @@ void GLScopeGUI::setTraceUI(const GLScopeSettings::TraceData& traceData)
ui->ampExp->setValue(ampExp);
setAmpScaleDisplay();
double ofsValue = traceData.m_amp;
double ofsValue = traceData.m_ofs;
int ofsExp;
double ofsMant = CalcDb::frexp10(ofsValue, &ofsExp) * 10.0;
int ofsCoarse = (int) ofsMant;
int ofsFine = round((ofsMant - ofsCoarse) * 1000.0);
ofsExp -= 1;
ofsExp -= ofsMant == 0 ? 0 : 1;
ui->ofsFine->setValue(ofsFine);
ui->ofsCoarse->setValue(ofsCoarse);
ui->ofsExp->setValue(ofsExp);

View File

@ -219,9 +219,11 @@ private slots:
void on_traceDown_clicked(bool checked);
void on_traceStream_currentIndexChanged(int index);
void on_traceMode_currentIndexChanged(int index);
void on_ampReset_clicked(bool checked);
void on_amp_valueChanged(int value);
void on_ampCoarse_valueChanged(int value);
void on_ampExp_valueChanged(int value);
void on_ofsReset_clicked(bool checked);
void on_ofsCoarse_valueChanged(int value);
void on_ofsFine_valueChanged(int value);
void on_ofsExp_valueChanged(int value);

View File

@ -825,12 +825,18 @@ kS/s</string>
</widget>
</item>
<item>
<widget class="QLabel" name="ampLabel">
<widget class="QPushButton" name="ampReset">
<property name="maximumSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="toolTip">
<string>Vertical range</string>
<string>Vertical range reset</string>
</property>
<property name="text">
<string>A:</string>
<string>A</string>
</property>
</widget>
</item>
@ -952,7 +958,7 @@ kS/s</string>
</size>
</property>
<property name="toolTip">
<string>Vertical range value</string>
<string>Unit multiplier on vertical scale</string>
</property>
<property name="text">
<string>-</string>
@ -974,12 +980,18 @@ kS/s</string>
</widget>
</item>
<item>
<widget class="QLabel" name="ofsLabel">
<widget class="QPushButton" name="ofsReset">
<property name="maximumSize">
<size>
<width>22</width>
<height>22</height>
</size>
</property>
<property name="toolTip">
<string>Vertical offset</string>
<string>Vertical offset reset</string>
</property>
<property name="text">
<string>O:</string>
<string>O</string>
</property>
</widget>
</item>