OpenHantek
DsoWidget Class Reference

The widget for the oszilloscope-screen This widget contains the scopes and all level sliders. More...

#include <dsowidget.h>

Inheritance diagram for DsoWidget:

Data Structures

struct  Sliders
 

Public Slots

void updateFrequencybase (double frequencybase)
 Handles frequencybaseChanged signal from the horizontal dock. More...
 
void updateSamplerate (double samplerate)
 Updates the samplerate field after changing the samplerate. More...
 
void updateTimebase (double timebase)
 Handles timebaseChanged signal from the horizontal dock. More...
 
void updateTriggerMode ()
 Handles modeChanged signal from the trigger dock. More...
 
void updateTriggerSlope ()
 Handles slopeChanged signal from the trigger dock. More...
 
void updateTriggerSource ()
 Handles sourceChanged signal from the trigger dock. More...
 
void updateSpectrumMagnitude (ChannelID channel)
 Handles magnitudeChanged signal from the spectrum dock. More...
 
void updateSpectrumUsed (ChannelID channel, bool used)
 Handles usedChanged signal from the spectrum dock. More...
 
void updateVoltageCoupling (ChannelID channel)
 Handles couplingChanged signal from the voltage dock. More...
 
void updateMathMode ()
 Handles modeChanged signal from the voltage dock. More...
 
void updateVoltageGain (ChannelID channel)
 Handles gainChanged signal from the voltage dock. More...
 
void updateVoltageUsed (ChannelID channel, bool used)
 Handles usedChanged signal from the voltage dock. More...
 
void updateRecordLength (unsigned long size)
 Change the record length. More...
 
void updateZoom (bool enabled)
 Show/hide the zoom view. More...
 
void updateCursorGrid (bool enabled)
 
void updateSlidersSettings ()
 Update the sliders settings. More...
 

Signals

void voltageOffsetChanged (ChannelID channel, double value)
 A graph offset has been changed. More...
 
void triggerPositionChanged (double value)
 The pretrigger has been changed. More...
 
void triggerLevelChanged (ChannelID channel, double value)
 A trigger level has been changed. More...
 

Public Member Functions

 DsoWidget (DsoSettingsScope *scope, DsoSettingsView *view, const Dso::ControlSpecification *spec, QWidget *parent=nullptr, Qt::WindowFlags flags=nullptr)
 Initializes the components of the oszilloscope-screen. More...
 
void showNew (std::shared_ptr< PPresult > analysedData)
 Prints analyzed data. More...
 

Protected Member Functions

virtual void showEvent (QShowEvent *event)
 
void setupSliders (Sliders &sliders)
 
void adaptTriggerLevelSlider (DsoWidget::Sliders &sliders, ChannelID channel)
 Set the trigger level sliders minimum and maximum to the new values. More...
 
void adaptTriggerOffsetSlider ()
 Handles signals affecting trigger position in the zoom view. More...
 
void setMeasurementVisible (ChannelID channel)
 Show/Hide a line of the measurement table. More...
 
void updateMarkerDetails ()
 Update the label about the marker measurements. More...
 
void updateSpectrumDetails (ChannelID channel)
 Update the label about the trigger settings. More...
 
void updateTriggerDetails ()
 Update the label about the trigger settings. More...
 
void updateVoltageDetails (ChannelID channel)
 Update the label about the trigger settings. More...
 
double mainToZoom (double position) const
 Translate horizontal position (0..1) from main view to zoom view. More...
 
double zoomToMain (double position) const
 Translate horizontal position (0..1) from zoom view to main view. More...
 

Protected Attributes

Sliders mainSliders
 
Sliders zoomSliders
 
QGridLayout * mainLayout
 The main layout for this widget. More...
 
QHBoxLayout * settingsLayout
 The table for the settings info. More...
 
QLabel * settingsTriggerLabel
 The trigger details. More...
 
QLabel * settingsSamplesOnScreen
 The displayed dots on screen. More...
 
QLabel * settingsSamplerateLabel
 The samplerate. More...
 
QLabel * settingsTimebaseLabel
 The timebase of the main scope. More...
 
QLabel * settingsFrequencybaseLabel
 The frequencybase of the main scope. More...
 
QLabel * swTriggerStatus
 The status of SW trigger. More...
 
QHBoxLayout * markerLayout
 The table for the marker details. More...
 
QLabel * markerInfoLabel
 The info about the zoom factor. More...
 
QLabel * markerTimeLabel
 The time period between the markers. More...
 
QLabel * markerFrequencyLabel
 The frequency for the time period. More...
 
QLabel * markerTimebaseLabel
 The timebase for the zoomed scope. More...
 
QLabel * markerFrequencybaseLabel
 The frequencybase for the zoomed scope. More...
 
QGridLayout * measurementLayout
 The table for the signal details. More...
 
std::vector< QLabel * > measurementNameLabel
 The name of the channel. More...
 
std::vector< QLabel * > measurementGainLabel
 The gain for the voltage (V/div) More...
 
std::vector< QLabel * > measurementMagnitudeLabel
 The magnitude for the spectrum (dB/div) More...
 
std::vector< QLabel * > measurementMiscLabel
 Coupling or math mode. More...
 
std::vector< QLabel * > measurementVppLabel
 Peak-to-peak amplitude of the signal (V) More...
 
std::vector< QLabel * > measurementRMSLabel
 RMS Amplitude of the signal (V) = sqrt( DC² + AC² ) More...
 
std::vector< QLabel * > measurementDCLabel
 DC Amplitude of the signal (V) More...
 
std::vector< QLabel * > measurementACLabel
 AC Amplitude of the signal (V) More...
 
std::vector< QLabel * > measurementdBLabel
 AC Amplitude in dB. More...
 
std::vector< QLabel * > measurementFrequencyLabel
 Frequency of the signal (Hz) More...
 
DataGridcursorDataGrid
 
DsoSettingsScopescope
 
DsoSettingsViewview
 
const Dso::ControlSpecificationspec
 
GlScopemainScope
 The main scope screen. More...
 
GlScopezoomScope
 The optional magnified scope screen. More...
 

Private Slots

void updateOffset (ChannelID channel, double value)
 Handles valueChanged signal from the offset sliders. More...
 
void updateTriggerOffset (int index, double value, bool mainView=true)
 Handles valueChanged signal from the triggerPosition slider. More...
 
void updateTriggerLevel (ChannelID channel, double value)
 Handles valueChanged signal from the trigger level slider. More...
 
void updateMarker (unsigned marker, double value)
 Handles valueChanged signal from the marker slider. More...
 

Private Attributes

double samplerate
 
double timebase
 
unsigned int dotsOnScreen
 
double pulseWidth1 = 0.0
 
double pulseWidth2 = 0.0
 

Detailed Description

The widget for the oszilloscope-screen This widget contains the scopes and all level sliders.

Constructor & Destructor Documentation

◆ DsoWidget()

DsoWidget::DsoWidget ( DsoSettingsScope scope,
DsoSettingsView view,
const Dso::ControlSpecification spec,
QWidget *  parent = nullptr,
Qt::WindowFlags  flags = nullptr 
)

Initializes the components of the oszilloscope-screen.

Parameters
settingsThe settings object containing the oscilloscope settings.
dataAnalyzerThe data analyzer that should be used as data source.
parentThe parent widget.
flagsFlags for the window manager.

Member Function Documentation

◆ adaptTriggerLevelSlider()

void DsoWidget::adaptTriggerLevelSlider ( DsoWidget::Sliders sliders,
ChannelID  channel 
)
protected

Set the trigger level sliders minimum and maximum to the new values.

◆ adaptTriggerOffsetSlider()

void DsoWidget::adaptTriggerOffsetSlider ( )
protected

Handles signals affecting trigger position in the zoom view.

◆ mainToZoom()

double DsoWidget::mainToZoom ( double  position) const
protected

Translate horizontal position (0..1) from main view to zoom view.

◆ setMeasurementVisible()

void DsoWidget::setMeasurementVisible ( ChannelID  channel)
protected

Show/Hide a line of the measurement table.

◆ setupSliders()

void DsoWidget::setupSliders ( DsoWidget::Sliders sliders)
protected

◆ showEvent()

void DsoWidget::showEvent ( QShowEvent *  event)
protectedvirtual

◆ showNew()

void DsoWidget::showNew ( std::shared_ptr< PPresult analysedData)

Prints analyzed data.

◆ triggerLevelChanged

void DsoWidget::triggerLevelChanged ( ChannelID  channel,
double  value 
)
signal

A trigger level has been changed.

◆ triggerPositionChanged

void DsoWidget::triggerPositionChanged ( double  value)
signal

The pretrigger has been changed.

◆ updateCursorGrid

void DsoWidget::updateCursorGrid ( bool  enabled)
slot

◆ updateFrequencybase

void DsoWidget::updateFrequencybase ( double  frequencybase)
slot

Handles frequencybaseChanged signal from the horizontal dock.

Parameters
frequencybaseThe frequencybase used for displaying the trace.

◆ updateMarker

void DsoWidget::updateMarker ( unsigned  marker,
double  value 
)
privateslot

Handles valueChanged signal from the marker slider.

Parameters
markerThe index of the slider.
valueThe new marker position.

◆ updateMarkerDetails()

void DsoWidget::updateMarkerDetails ( )
protected

Update the label about the marker measurements.

◆ updateMathMode

void DsoWidget::updateMathMode ( )
slot

Handles modeChanged signal from the voltage dock.

◆ updateOffset

void DsoWidget::updateOffset ( ChannelID  channel,
double  value 
)
privateslot

Handles valueChanged signal from the offset sliders.

Parameters
channelThe channel whose offset was changed.
valueThe new offset for the channel.

◆ updateRecordLength

void DsoWidget::updateRecordLength ( unsigned long  size)
slot

Change the record length.

◆ updateSamplerate

void DsoWidget::updateSamplerate ( double  newSamplerate)
slot

Updates the samplerate field after changing the samplerate.

Parameters
samplerateThe samplerate set in the oscilloscope.

◆ updateSlidersSettings

void DsoWidget::updateSlidersSettings ( )
slot

Update the sliders settings.

◆ updateSpectrumDetails()

void DsoWidget::updateSpectrumDetails ( ChannelID  channel)
protected

Update the label about the trigger settings.

◆ updateSpectrumMagnitude

void DsoWidget::updateSpectrumMagnitude ( ChannelID  channel)
slot

Handles magnitudeChanged signal from the spectrum dock.

Parameters
channelThe channel whose magnitude was changed.

◆ updateSpectrumUsed

void DsoWidget::updateSpectrumUsed ( ChannelID  channel,
bool  used 
)
slot

Handles usedChanged signal from the spectrum dock.

Parameters
channelThe channel whose used-state was changed.
usedThe new used-state for the channel.

◆ updateTimebase

void DsoWidget::updateTimebase ( double  newTimebase)
slot

Handles timebaseChanged signal from the horizontal dock.

Parameters
timebaseThe timebase used for displaying the trace.

◆ updateTriggerDetails()

void DsoWidget::updateTriggerDetails ( )
protected

Update the label about the trigger settings.

◆ updateTriggerLevel

void DsoWidget::updateTriggerLevel ( ChannelID  channel,
double  value 
)
privateslot

Handles valueChanged signal from the trigger level slider.

Parameters
channelThe index of the slider.
valueThe new trigger level.

◆ updateTriggerMode

void DsoWidget::updateTriggerMode ( )
slot

Handles modeChanged signal from the trigger dock.

◆ updateTriggerOffset

void DsoWidget::updateTriggerOffset ( int  index,
double  value,
bool  mainView = true 
)
privateslot

Handles valueChanged signal from the triggerPosition slider.

Parameters
indexThe index of the slider.
valueThe new triggerPosition in seconds relative to the first sample.

◆ updateTriggerSlope

void DsoWidget::updateTriggerSlope ( )
slot

Handles slopeChanged signal from the trigger dock.

◆ updateTriggerSource

void DsoWidget::updateTriggerSource ( )
slot

Handles sourceChanged signal from the trigger dock.

◆ updateVoltageCoupling

void DsoWidget::updateVoltageCoupling ( ChannelID  channel)
slot

Handles couplingChanged signal from the voltage dock.

Parameters
channelThe channel whose coupling was changed.

◆ updateVoltageDetails()

void DsoWidget::updateVoltageDetails ( ChannelID  channel)
protected

Update the label about the trigger settings.

◆ updateVoltageGain

void DsoWidget::updateVoltageGain ( ChannelID  channel)
slot

Handles gainChanged signal from the voltage dock.

Parameters
channelThe channel whose gain was changed.

◆ updateVoltageUsed

void DsoWidget::updateVoltageUsed ( ChannelID  channel,
bool  used 
)
slot

Handles usedChanged signal from the voltage dock.

Parameters
channelThe channel whose used-state was changed.
usedThe new used-state for the channel.

◆ updateZoom

void DsoWidget::updateZoom ( bool  enabled)
slot

Show/hide the zoom view.

◆ voltageOffsetChanged

void DsoWidget::voltageOffsetChanged ( ChannelID  channel,
double  value 
)
signal

A graph offset has been changed.

◆ zoomToMain()

double DsoWidget::zoomToMain ( double  position) const
protected

Translate horizontal position (0..1) from zoom view to main view.

Field Documentation

◆ cursorDataGrid

DataGrid* DsoWidget::cursorDataGrid
protected

◆ dotsOnScreen

unsigned int DsoWidget::dotsOnScreen
private

◆ mainLayout

QGridLayout* DsoWidget::mainLayout
protected

The main layout for this widget.

◆ mainScope

GlScope* DsoWidget::mainScope
protected

The main scope screen.

◆ mainSliders

Sliders DsoWidget::mainSliders
protected

◆ markerFrequencybaseLabel

QLabel* DsoWidget::markerFrequencybaseLabel
protected

The frequencybase for the zoomed scope.

◆ markerFrequencyLabel

QLabel* DsoWidget::markerFrequencyLabel
protected

The frequency for the time period.

◆ markerInfoLabel

QLabel* DsoWidget::markerInfoLabel
protected

The info about the zoom factor.

◆ markerLayout

QHBoxLayout* DsoWidget::markerLayout
protected

The table for the marker details.

◆ markerTimebaseLabel

QLabel* DsoWidget::markerTimebaseLabel
protected

The timebase for the zoomed scope.

◆ markerTimeLabel

QLabel* DsoWidget::markerTimeLabel
protected

The time period between the markers.

◆ measurementACLabel

std::vector<QLabel *> DsoWidget::measurementACLabel
protected

AC Amplitude of the signal (V)

◆ measurementdBLabel

std::vector<QLabel *> DsoWidget::measurementdBLabel
protected

AC Amplitude in dB.

◆ measurementDCLabel

std::vector<QLabel *> DsoWidget::measurementDCLabel
protected

DC Amplitude of the signal (V)

◆ measurementFrequencyLabel

std::vector<QLabel *> DsoWidget::measurementFrequencyLabel
protected

Frequency of the signal (Hz)

◆ measurementGainLabel

std::vector<QLabel *> DsoWidget::measurementGainLabel
protected

The gain for the voltage (V/div)

◆ measurementLayout

QGridLayout* DsoWidget::measurementLayout
protected

The table for the signal details.

◆ measurementMagnitudeLabel

std::vector<QLabel *> DsoWidget::measurementMagnitudeLabel
protected

The magnitude for the spectrum (dB/div)

◆ measurementMiscLabel

std::vector<QLabel *> DsoWidget::measurementMiscLabel
protected

Coupling or math mode.

◆ measurementNameLabel

std::vector<QLabel *> DsoWidget::measurementNameLabel
protected

The name of the channel.

◆ measurementRMSLabel

std::vector<QLabel *> DsoWidget::measurementRMSLabel
protected

RMS Amplitude of the signal (V) = sqrt( DC² + AC² )

◆ measurementVppLabel

std::vector<QLabel *> DsoWidget::measurementVppLabel
protected

Peak-to-peak amplitude of the signal (V)

◆ pulseWidth1

double DsoWidget::pulseWidth1 = 0.0
private

◆ pulseWidth2

double DsoWidget::pulseWidth2 = 0.0
private

◆ samplerate

double DsoWidget::samplerate
private

◆ scope

DsoSettingsScope* DsoWidget::scope
protected

◆ settingsFrequencybaseLabel

QLabel* DsoWidget::settingsFrequencybaseLabel
protected

The frequencybase of the main scope.

◆ settingsLayout

QHBoxLayout* DsoWidget::settingsLayout
protected

The table for the settings info.

◆ settingsSamplerateLabel

QLabel* DsoWidget::settingsSamplerateLabel
protected

The samplerate.

◆ settingsSamplesOnScreen

QLabel* DsoWidget::settingsSamplesOnScreen
protected

The displayed dots on screen.

◆ settingsTimebaseLabel

QLabel* DsoWidget::settingsTimebaseLabel
protected

The timebase of the main scope.

◆ settingsTriggerLabel

QLabel* DsoWidget::settingsTriggerLabel
protected

The trigger details.

◆ spec

const Dso::ControlSpecification* DsoWidget::spec
protected

◆ swTriggerStatus

QLabel* DsoWidget::swTriggerStatus
protected

The status of SW trigger.

◆ timebase

double DsoWidget::timebase
private

◆ view

DsoSettingsView* DsoWidget::view
protected

◆ zoomScope

GlScope* DsoWidget::zoomScope
protected

The optional magnified scope screen.

◆ zoomSliders

Sliders DsoWidget::zoomSliders
protected

The documentation for this class was generated from the following files: