Scope: make mode switchable

This commit is contained in:
Christian Daniel 2013-02-12 16:34:08 +01:00
parent dcfc4ed31c
commit bf0ef08f56
5 changed files with 104 additions and 30 deletions

View File

@ -60,6 +60,13 @@ void GLScope::setTimeOfsProMill(int timeOfsProMill)
update();
}
void GLScope::setMode(Mode mode)
{
m_mode = mode;
m_changed = true;
update();
}
void GLScope::newTrace(const std::vector<Complex>& trace, int sampleRate)
{
if(!m_mutex.tryLock(2))

View File

@ -45,6 +45,7 @@ public:
void setAmp(Real amp);
void setTimeStep(int timeStep);
void setTimeOfsProMill(int timeOfsProMill);
void setMode(Mode mode);
void newTrace(const std::vector<Complex>& trace, int sampleRate);

View File

@ -70,3 +70,20 @@ void ScopeWindow::on_timeOfs_valueChanged(int value)
{
ui->scope->setTimeOfsProMill(value);
}
void ScopeWindow::on_displayMode_currentIndexChanged(int index)
{
switch(index) {
case 0: // i+q
ui->scope->setMode(GLScope::ModeIQ);
break;
case 1: // mag+pha
ui->scope->setMode(GLScope::ModeMagPha);
break;
case 2: // derived1+derived2
ui->scope->setMode(GLScope::ModeDerived12);
break;
default:
break;
}
}

View File

@ -40,8 +40,8 @@ private slots:
void on_amp_valueChanged(int value);
void on_scope_traceSizeChanged(int value);
void on_time_valueChanged(int value);
void on_timeOfs_valueChanged(int value);
void on_displayMode_currentIndexChanged(int index);
private:
Ui::ScopeWindow *ui;

View File

@ -6,37 +6,15 @@
<rect>
<x>0</x>
<y>0</y>
<width>680</width>
<height>481</height>
<width>544</width>
<height>409</height>
</rect>
</property>
<property name="windowTitle">
<string>Oscilloscope</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="2" column="2">
<widget class="QSlider" name="time">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="pageStep">
<number>20</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>5</number>
</property>
</widget>
</item>
<item row="0" column="4" rowspan="2">
<item row="0" column="3" rowspan="2">
<widget class="QSlider" name="amp">
<property name="sizePolicy">
<sizepolicy hsizetype="Minimum" vsizetype="Expanding">
@ -67,17 +45,17 @@
</property>
</widget>
</item>
<item row="0" column="0" rowspan="2" colspan="4">
<item row="0" column="0" rowspan="2" colspan="3">
<widget class="GLScope" name="scope" native="true">
<property name="sizePolicy">
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
<item row="2" column="4">
<item row="2" column="3">
<widget class="QLabel" name="ampText">
<property name="minimumSize">
<size>
@ -111,7 +89,7 @@
</property>
</widget>
</item>
<item row="3" column="2">
<item row="3" column="1">
<widget class="QSlider" name="timeOfs">
<property name="minimum">
<number>0</number>
@ -133,6 +111,71 @@
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QSlider" name="time">
<property name="minimum">
<number>1</number>
</property>
<property name="maximum">
<number>100</number>
</property>
<property name="pageStep">
<number>20</number>
</property>
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="tickPosition">
<enum>QSlider::TicksBelow</enum>
</property>
<property name="tickInterval">
<number>5</number>
</property>
</widget>
</item>
<item row="4" column="1">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label">
<property name="text">
<string>Mode</string>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="displayMode">
<item>
<property name="text">
<string>I+Q Voltage</string>
</property>
</item>
<item>
<property name="text">
<string>Magnitude + Phase</string>
</property>
</item>
<item>
<property name="text">
<string>Derived 1st order + 2nd order</string>
</property>
</item>
</widget>
</item>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</item>
</layout>
</widget>
<customwidgets>
@ -143,6 +186,12 @@
<container>1</container>
</customwidget>
</customwidgets>
<tabstops>
<tabstop>displayMode</tabstop>
<tabstop>time</tabstop>
<tabstop>timeOfs</tabstop>
<tabstop>amp</tabstop>
</tabstops>
<resources/>
<connections/>
</ui>