OpenHantek
Loading...
Searching...
No Matches
scopesettings.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2
3#pragma once
4
5#include <QCoreApplication>
6#include <QPointF>
7
9#include "hantekdso/enums.h"
11#include "viewconstants.h"
12#include <vector>
13
14
18 QPointF pos[ 2 ] = { { -1.0, -1.0 }, { 1.0, 1.0 } };
19};
20
24 double frequencybase = 1e3;
26
27 int recordLength = 0;
28 double timebase = 1e-3;
29 double maxTimebase = 1;
30#ifdef Q_PROCESSOR_ARM
31 // RPi: Not more often than every 10 ms
32 double acquireInterval = 0.010;
33#else
34 // other PC: Not more often than every 1 ms
35 double acquireInterval = 0.001;
36#endif
37 double samplerate = 1e6;
38 int dotsOnScreen = 0;
39 double calfreq = 1e3;
40};
41
51
54 QString name;
55 bool used = false;
56 bool visible = false;
58};
59
62 double offset = 0.0;
63 double magnitude = 20.0;
64};
65
68 double spectrumReference = 0.0;
69 bool calculateDummyLoad = false;
70 unsigned dummyLoad = 50;
71 QString dBsuffixStrings[ 3 ] = { QCoreApplication::translate( "DsoSettingsScopeAnalysis", "V" ),
72 QCoreApplication::translate( "DsoSettingsScopeAnalysis", "u" ),
73 QCoreApplication::translate( "DsoSettingsScopeAnalysis", "m" ) };
74 int dBsuffixIndex = 0; // dBV is default
75 QString dBsuffix() { // use current index
77 };
78 QString dBsuffix( int index ) {
79 if ( index >= 0 && index < 3 ) // valid suffix index
80 return dBsuffixStrings[ index ]; // show this value
81 else
82 return QString();
83 };
84 bool calculateTHD = false;
85 bool showNoteValue = false;
86};
87
91 double offset = 0.0;
92 double trigger = 0.0;
93 unsigned gainStepIndex = 6;
94 unsigned couplingOrMathIndex = 0;
95 bool inverted = false;
96 double probeAttn = 1.0;
97};
98
101 std::vector< double > gainSteps = {
102 2e-2, 5e-2, 1e-1, 2e-1, 5e-1, 1e0, 2e0, 5e0, 1e1 };
103 std::vector< double > mathGainSteps = {
104 2e-2, 5e-2, 1e-1, 2e-1, 5e-1, 1e0, 2e0, 5e0, 1e1, 2e1, 5e1, 1e2, 2e2, 5e2, 1e3 };
105 std::vector< DsoSettingsScopeSpectrum > spectrum;
106 std::vector< DsoSettingsScopeVoltage > voltage;
110
112 int toolTipVisible = 1; // show hints for beginners, can be disabled in settings dialog
113 bool doNotTranslate = false;
114 bool histogram = false;
115 bool hasACcoupling = false;
116 bool hasACmodification = false;
118
119 double gain( unsigned channel ) const {
120 if ( channel < voltage.size() - 1 ) // Voltage channel
121 return gainSteps[ voltage[ channel ].gainStepIndex ] * voltage[ channel ].probeAttn;
122 else
123 return mathGainSteps[ voltage[ channel ].gainStepIndex ] * voltage[ channel ].probeAttn;
124 }
125
126 bool anyUsed( ChannelID channel ) const { return voltage[ channel ].used || spectrum[ channel ].used; }
127
128 Dso::Coupling coupling( ChannelID channel, const Dso::ControlSpecification *deviceSpecification ) const {
129 return deviceSpecification->couplings[ voltage[ channel ].couplingOrMathIndex ];
130 }
131 // Channels, including math channels
132 ChannelID countChannels() const { return ChannelID( voltage.size() ); }
133
134 double getMarker( int marker ) const {
135 double x = qBound( MARGIN_LEFT, marker < 2 ? horizontal.cursor.pos[ marker ].x() : 0.0, MARGIN_RIGHT );
136 return x;
137 }
138
139 void setMarker( unsigned int marker, double value ) {
140 if ( marker < 2 )
141 horizontal.cursor.pos[ marker ].setX( value );
142 }
143};
Coupling
The coupling modes for the channels.
Definition enums.h:27
TriggerMode
The different triggering modes.
Definition enums.h:35
@ AUTO
Automatic without trigger event.
Definition enums.h:36
Slope
The slope that causes a trigger.
Definition enums.h:45
@ Positive
From lower to higher voltage.
Definition enums.h:46
GraphFormat
The possible viewing formats for the graphs on the scope.
Definition enums.h:18
@ TY
The standard mode.
Definition enums.h:19
Holds the settings for the power and frequency analysis.
Definition scopesettings.h:67
bool calculateTHD
Definition scopesettings.h:84
QString dBsuffix()
Definition scopesettings.h:75
QString dBsuffix(int index)
Definition scopesettings.h:78
double spectrumReference
Reference level for spectrum in dBV.
Definition scopesettings.h:68
unsigned dummyLoad
Dummy load in Ohms.
Definition scopesettings.h:70
int dBsuffixIndex
Definition scopesettings.h:74
QString dBsuffixStrings[3]
Definition scopesettings.h:71
bool calculateDummyLoad
Definition scopesettings.h:69
bool showNoteValue
Definition scopesettings.h:85
Base for DsoSettingsScopeSpectrum and DsoSettingsScopeVoltage.
Definition scopesettings.h:53
bool visible
true if the channel is turned on
Definition scopesettings.h:56
DsoSettingsScopeCursor cursor
Definition scopesettings.h:57
bool used
true if the channel is used (either visible or input for math etc.)
Definition scopesettings.h:55
QString name
Name of this channel.
Definition scopesettings.h:54
Holds the cursor parameters.
Definition scopesettings.h:16
enum DsoSettingsScopeCursor::CursorShape shape
QPointF pos[2]
Position in div.
Definition scopesettings.h:18
CursorShape
Definition scopesettings.h:17
@ NONE
Definition scopesettings.h:17
@ VERTICAL
Definition scopesettings.h:17
@ RECTANGULAR
Definition scopesettings.h:17
@ HORIZONTAL
Definition scopesettings.h:17
Holds the settings for the horizontal axis.
Definition scopesettings.h:22
int dotsOnScreen
Definition scopesettings.h:38
double maxTimebase
Allow very slow timebases 0.1 ... 10.0 s/div.
Definition scopesettings.h:29
double calfreq
The frequency of the calibration output.
Definition scopesettings.h:39
int recordLength
Sample count.
Definition scopesettings.h:27
Dso::GraphFormat format
Graph drawing mode of the scope.
Definition scopesettings.h:23
double acquireInterval
Minimal time between captured frames.
Definition scopesettings.h:35
DsoSettingsScopeCursor cursor
Definition scopesettings.h:25
double frequencybase
Frequencybase in Hz/div.
Definition scopesettings.h:24
double samplerate
The samplerate of the oscilloscope in S.
Definition scopesettings.h:37
double timebase
Timebase in s/div.
Definition scopesettings.h:28
Holds the settings for the spectrum analysis.
Definition scopesettings.h:61
double magnitude
The vertical resolution in dB/div.
Definition scopesettings.h:63
double offset
Vertical offset in divs.
Definition scopesettings.h:62
Holds the settings for the trigger. TODO Use ControlSettingsTrigger.
Definition scopesettings.h:44
Dso::Slope slope
Rising or falling edge causes trigger.
Definition scopesettings.h:47
int smooth
Don't trigger on glitches.
Definition scopesettings.h:49
double position
Horizontal position for pretrigger (middle of screen).
Definition scopesettings.h:46
int source
Channel that is used as trigger source.
Definition scopesettings.h:48
Dso::TriggerMode mode
Automatic, normal or single trigger.
Definition scopesettings.h:45
Holds the settings for the normal voltage graphs. TODO Use ControlSettingsVoltage.
Definition scopesettings.h:90
double trigger
Trigger level in V.
Definition scopesettings.h:92
unsigned gainStepIndex
The vertical resolution in V/div (default = 1.0).
Definition scopesettings.h:93
bool inverted
true if the channel is inverted (mirrored on cross-axis)
Definition scopesettings.h:95
double probeAttn
attenuation of probe
Definition scopesettings.h:96
unsigned couplingOrMathIndex
Different index: coupling for real- and mode for math-channels.
Definition scopesettings.h:94
double offset
Vertical offset in divs.
Definition scopesettings.h:91
Holds the settings for the oscilloscope.
Definition scopesettings.h:100
Dso::Coupling coupling(ChannelID channel, const Dso::ControlSpecification *deviceSpecification) const
Definition scopesettings.h:128
void setMarker(unsigned int marker, double value)
Definition scopesettings.h:139
DsoSettingsScopeHorizontal horizontal
Settings for the horizontal axis.
Definition scopesettings.h:107
bool histogram
Definition scopesettings.h:114
DsoSettingsScopeAnalysis analysis
Settings for the analysis.
Definition scopesettings.h:109
bool hasACcoupling
Definition scopesettings.h:115
DsoSettingsScopeTrigger trigger
Settings for the trigger.
Definition scopesettings.h:108
bool hasACmodification
Definition scopesettings.h:116
ChannelID countChannels() const
Definition scopesettings.h:132
std::vector< DsoSettingsScopeSpectrum > spectrum
Spectrum analysis settings.
Definition scopesettings.h:105
bool doNotTranslate
Definition scopesettings.h:113
int verboseLevel
Definition scopesettings.h:111
std::vector< double > mathGainSteps
Definition scopesettings.h:103
int toolTipVisible
Definition scopesettings.h:112
bool liveCalibrationActive
Definition scopesettings.h:117
bool anyUsed(ChannelID channel) const
Definition scopesettings.h:126
double getMarker(int marker) const
Definition scopesettings.h:134
double gain(unsigned channel) const
Definition scopesettings.h:119
std::vector< DsoSettingsScopeVoltage > voltage
Settings for the normal graphs.
Definition scopesettings.h:106
std::vector< double > gainSteps
Definition scopesettings.h:101
Stores the specifications of the currently connected device.
Definition controlspecification.h:42
std::vector< Coupling > couplings
Definition controlspecification.h:64
unsigned ChannelID
Definition types.h:6
#define MARGIN_RIGHT
Definition viewconstants.h:10
#define MARGIN_LEFT
Definition viewconstants.h:9