OpenHantek
Loading...
Searching...
No Matches
VoltageDock.h
Go to the documentation of this file.
1// SPDX-License-Identifier: GPL-2.0-or-later
2
3#pragma once
4
5#include <QCheckBox>
6#include <QComboBox>
7#include <QDockWidget>
8#include <QGridLayout>
9#include <QLabel>
10#include <QSpinBox>
11
13#include "hantekdso/mathmodes.h"
14#include "scopesettings.h"
15
16#define ATTENUATION_MIN 1
17#define ATTENUATION_MAX 1000
18
19class SiSpinBox;
20
24class VoltageDock : public QDockWidget {
25 Q_OBJECT
26
27 public:
33
37 void setCoupling( ChannelID channel, unsigned couplingIndex );
38
42 void setGain( ChannelID channel, unsigned gainStepIndex );
43
47 void setAttn( ChannelID channel, double attnValue );
48
51 void setMode( unsigned mathModeIndex );
52
56 void setUsed( ChannelID channel, bool used );
57
61 void setInverted( ChannelID channel, bool inverted );
62
63 public slots:
68
69 protected:
70 void closeEvent( QCloseEvent *event ) override;
71
72 QGridLayout *dockLayout;
73 QWidget *dockWidget;
74
75 struct ChannelBlock {
76 QCheckBox *usedCheckBox;
77 QComboBox *gainComboBox;
78 QComboBox *miscComboBox;
79 QCheckBox *invertCheckBox;
80 QSpinBox *attnSpinBox;
81 };
82
83 std::vector< ChannelBlock > channelBlocks;
84
87
88 QStringList couplingStrings;
89 QStringList modeStrings;
90 QStringList gainStrings;
91 QStringList mathGainStrings;
92 QStringList attnStrings;
93
94 private:
95 void updateGainStrings( double attnValue = 1 );
96
97 signals:
98 void couplingChanged( ChannelID channel, Dso::Coupling coupling );
99 void gainChanged( ChannelID channel, double gain );
101 void usedChannelChanged( ChannelID channel, unsigned used );
102 void probeAttnChanged( ChannelID channel, double probeAttn );
103 void invertedChanged( ChannelID channel, bool inverted );
104};
A spin box with SI prefix support. This spin box supports the SI prefixes (k/M/G/T) after its value a...
Definition sispinbox.h:14
QWidget * dockWidget
The main widget for the dock window.
Definition VoltageDock.h:73
const Dso::ControlSpecification * spec
Definition VoltageDock.h:86
void setUsed(ChannelID channel, bool used)
Enables/disables a channel.
Definition VoltageDock.cpp:251
void couplingChanged(ChannelID channel, Dso::Coupling coupling)
A coupling has been selected.
QStringList couplingStrings
The strings for the couplings.
Definition VoltageDock.h:88
void invertedChanged(ChannelID channel, bool inverted)
A channel "inverted" has been toggled.
QStringList attnStrings
String representations for the probe attn steps.
Definition VoltageDock.h:92
void loadSettings(DsoSettingsScope *scope, const Dso::ControlSpecification *spec)
Loads settings into GUI.
Definition VoltageDock.cpp:156
void setCoupling(ChannelID channel, unsigned couplingIndex)
Sets the coupling for a channel.
Definition VoltageDock.cpp:184
void closeEvent(QCloseEvent *event) override
Don't close the dock, just hide it.
Definition VoltageDock.cpp:178
void setGain(ChannelID channel, unsigned gainStepIndex)
Sets the gain for a channel.
Definition VoltageDock.cpp:196
void setMode(unsigned mathModeIndex)
Sets the mode for the math channel.
Definition VoltageDock.cpp:243
DsoSettingsScope * scope
The settings provided by the parent class.
Definition VoltageDock.h:85
void setInverted(ChannelID channel, bool inverted)
Set channel inverted.
Definition VoltageDock.cpp:261
VoltageDock(DsoSettingsScope *scope, const Dso::ControlSpecification *spec, QWidget *parent)
Initializes the vertical axis docking window.
Definition VoltageDock.cpp:22
QStringList modeStrings
The strings for the math mode.
Definition VoltageDock.h:89
void modeChanged(Dso::MathMode mode)
The mode for the math channels has been changed.
void setAttn(ChannelID channel, double attnValue)
Sets the probe attenuation for a channel.
Definition VoltageDock.cpp:215
void updateGainStrings(double attnValue=1)
Definition VoltageDock.cpp:271
void usedChannelChanged(ChannelID channel, unsigned used)
A channel has been enabled/disabled.
QGridLayout * dockLayout
The main layout for the dock window.
Definition VoltageDock.h:72
std::vector< ChannelBlock > channelBlocks
Definition VoltageDock.h:83
void gainChanged(ChannelID channel, double gain)
A gain has been selected.
QStringList gainStrings
String representations for the gain steps.
Definition VoltageDock.h:90
void probeAttnChanged(ChannelID channel, double probeAttn)
A channel probe attenuation has been changed.
QStringList mathGainStrings
String representations for the math gain steps.
Definition VoltageDock.h:91
Coupling
The coupling modes for the channels.
Definition enums.h:27
MathMode
The different math modes for the math-channel.
Definition mathmodes.h:14
Holds the settings for the oscilloscope.
Definition scopesettings.h:100
Stores the specifications of the currently connected device.
Definition controlspecification.h:42
Definition VoltageDock.h:75
QSpinBox * attnSpinBox
Enter the attenuation probe value.
Definition VoltageDock.h:80
QCheckBox * invertCheckBox
Select if the channels should be displayed inverted.
Definition VoltageDock.h:79
QComboBox * gainComboBox
Select the vertical gain for the channels.
Definition VoltageDock.h:77
QComboBox * miscComboBox
Select coupling for real and mode for math channels.
Definition VoltageDock.h:78
QCheckBox * usedCheckBox
Enable/disable a specific channel.
Definition VoltageDock.h:76
unsigned ChannelID
Definition types.h:6