From d67e4e0b827a0c86a5310bb300dcf6dcd34e1612 Mon Sep 17 00:00:00 2001 From: f4exb Date: Mon, 13 Jul 2015 12:58:32 +0200 Subject: [PATCH] Prepare scope trigger #2 --- include-gpl/gui/glscopegui.h | 9 ++++- sdrbase/gui/glscopegui.cpp | 60 +++++++++++++++++++++++++++++ sdrbase/gui/glscopegui.ui | 52 +++++++++++++++++++++---- sdrbase/resources/display1_w.png | Bin 0 -> 259 bytes sdrbase/resources/display2_w.png | Bin 0 -> 290 bytes sdrbase/resources/horizontal_w.png | Bin 0 -> 190 bytes sdrbase/resources/res.qrc | 6 +++ sdrbase/resources/slopen_icon.png | Bin 0 -> 404 bytes sdrbase/resources/slopep_icon.png | Bin 0 -> 410 bytes sdrbase/resources/vertical_w.png | Bin 0 -> 202 bytes 10 files changed, 119 insertions(+), 8 deletions(-) create mode 100644 sdrbase/resources/display1_w.png create mode 100644 sdrbase/resources/display2_w.png create mode 100644 sdrbase/resources/horizontal_w.png create mode 100644 sdrbase/resources/slopen_icon.png create mode 100644 sdrbase/resources/slopep_icon.png create mode 100644 sdrbase/resources/vertical_w.png diff --git a/include-gpl/gui/glscopegui.h b/include-gpl/gui/glscopegui.h index 7f7ad2da6..a41620759 100644 --- a/include-gpl/gui/glscopegui.h +++ b/include-gpl/gui/glscopegui.h @@ -48,16 +48,18 @@ private: qint32 m_ampOffset; int m_displayGridIntensity; qint32 m_triggerChannel; - Real m_triggerLevel; + qint32 m_triggerLevel; // percent bool m_triggerPositiveEdge; static const qreal amps[11]; void applySettings(); + void applyTriggerSettings(); void setTimeScaleDisplay(); void setTimeOfsDisplay(); void setAmpScaleDisplay(); void setAmpOfsDisplay(); + void setTrigLevelDisplay(); private slots: void on_amp_valueChanged(int value); @@ -73,6 +75,11 @@ private slots: void on_vertView_clicked(); void on_onlyPrimeView_clicked(); void on_onlySecondView_clicked(); + + void on_trigMode_currentIndexChanged(int index); + void on_slopePos_clicked(); + void on_slopeNeg_clicked(); + void on_trigLevel_valueChanged(int value); }; #endif // INCLUDE_GLSCOPEGUI_H diff --git a/sdrbase/gui/glscopegui.cpp b/sdrbase/gui/glscopegui.cpp index acd091672..60d1e4feb 100644 --- a/sdrbase/gui/glscopegui.cpp +++ b/sdrbase/gui/glscopegui.cpp @@ -77,6 +77,9 @@ QByteArray GLScopeGUI::serialize() const s.writeS32(6, m_displayGridIntensity); s.writeS32(7, m_ampOffset); s.writeS32(8, m_displays); + s.writeS32(9, m_triggerChannel); + s.writeS32(10, m_triggerLevel); + s.writeBool(11, m_triggerPositiveEdge); return s.final(); } @@ -101,7 +104,16 @@ bool GLScopeGUI::deserialize(const QByteArray& data) m_timeBase = 1; d.readS32(7, &m_ampOffset, 0); d.readS32(8, &m_displays, GLScope::DisplayBoth); + d.readS32(9, &m_triggerChannel, ScopeVis::TriggerFreeRun); + ui->trigMode->setCurrentIndex(m_triggerChannel); + d.readS32(10, &m_triggerLevel, 0); + ui->trigLevel->setValue(m_triggerLevel); + setTrigLevelDisplay(); + d.readBool(11, &m_triggerPositiveEdge, true); + ui->slopePos->setChecked(m_triggerPositiveEdge); + ui->slopeNeg->setChecked(!m_triggerPositiveEdge); applySettings(); + applyTriggerSettings(); return true; } else { resetToDefaults(); @@ -151,6 +163,15 @@ void GLScopeGUI::applySettings() ui->gridIntensity->setSliderPosition(m_displayGridIntensity); } +void GLScopeGUI::applyTriggerSettings() +{ +} + +void GLScopeGUI::setTrigLevelDisplay() +{ + ui->trigText->setText(tr("%1").arg(m_triggerLevel/100.0, 0, 'f', 2)); +} + void GLScopeGUI::setAmpScaleDisplay() { if (m_glScope->getDataMode() == GLScope::ModeMagdBPha) { @@ -344,6 +365,45 @@ void GLScopeGUI::on_gridIntensity_valueChanged(int index) m_glScope->setDisplayGridIntensity(m_displayGridIntensity); } +void GLScopeGUI::on_trigMode_currentIndexChanged(int index) +{ + m_triggerChannel = index; + applyTriggerSettings(); +} + +void GLScopeGUI::on_trigLevel_valueChanged(int value) +{ + m_triggerLevel = value; + setTrigLevelDisplay(); + applyTriggerSettings(); +} + +void GLScopeGUI::on_slopePos_clicked() +{ + m_triggerPositiveEdge = true; + + if(ui->slopePos->isChecked()) { + ui->slopeNeg->setChecked(false); + } else { + ui->slopePos->setChecked(true); + } + + applyTriggerSettings(); +} + +void GLScopeGUI::on_slopeNeg_clicked() +{ + m_triggerPositiveEdge = false; + + if(ui->slopeNeg->isChecked()) { + ui->slopePos->setChecked(false); + } else { + ui->slopeNeg->setChecked(true); + } + + applyTriggerSettings(); +} + bool GLScopeGUI::handleMessage(Message* cmd) { return false; diff --git a/sdrbase/gui/glscopegui.ui b/sdrbase/gui/glscopegui.ui index 5c1f4b13e..73bd1735b 100644 --- a/sdrbase/gui/glscopegui.ui +++ b/sdrbase/gui/glscopegui.ui @@ -7,7 +7,7 @@ 0 0 807 - 50 + 67 @@ -126,7 +126,7 @@ - :/display1.png:/display1.png + :/display1_w.png:/display1_w.png @@ -137,6 +137,9 @@ true + + true + @@ -149,7 +152,7 @@ - :/display2.png:/display2.png + :/display2_w.png:/display2_w.png @@ -160,6 +163,9 @@ true + + true + @@ -172,7 +178,7 @@ - :/horizontal.png:/horizontal.png + :/horizontal_w.png:/horizontal_w.png @@ -186,6 +192,9 @@ true + + true + @@ -198,7 +207,7 @@ - :/vertical.png:/vertical.png + :/vertical_w.png:/vertical_w.png @@ -209,6 +218,9 @@ true + + true + @@ -240,6 +252,9 @@ 0 + + Time range + 1 @@ -352,6 +367,9 @@ 0 + + Y range + 0 @@ -550,7 +568,11 @@ Trigger slope positive - + + + + + + :/slopep_icon.png:/slopep_icon.png @@ -564,6 +586,12 @@ true + + Qt::ToolButtonIconOnly + + + true + @@ -577,7 +605,11 @@ Trigger slope negative - - + + + + + :/slopen_icon.png:/slopen_icon.png @@ -588,6 +620,9 @@ true + + true + @@ -602,6 +637,9 @@ Trigger level + + -100 + 100 diff --git a/sdrbase/resources/display1_w.png b/sdrbase/resources/display1_w.png new file mode 100644 index 0000000000000000000000000000000000000000..7a971097bdc777f33d639a31d3d7fa5b6684d55b GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKw2Gy8MQbk`U4s4C7!;n?DyGux#Z-0^xOXeg(OQ{BTAg}b8}PkN*J7rQWHy3QxwWG zOEMJPJ$(bh8~Mb6in2Xj978NlCnrekd+`7N|0*Dk{{tlKpJbf-0i^c>vHV{kQD2iK zSty}!^uU1w>`&v;Q&Lh?u1ia`#2j$RjNskFsAKU*@5F%v3TJ?r|LJOnrSpu9jOtX? kK4|?*W|!kx%)rdRkh{|Tt87vGN1(L~p00i_>zopr0CGiNL;wH) literal 0 HcmV?d00001 diff --git a/sdrbase/resources/display2_w.png b/sdrbase/resources/display2_w.png new file mode 100644 index 0000000000000000000000000000000000000000..6441f05256d24c5301249a4c6c0b8fe32dba32a0 GIT binary patch literal 290 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKw2Gy8MQbk`U4s4C7!;n?DyGux#XV;R`cQJi4u;9TEW4!*xSF0O8th~VPu#kv zG=eq!k&w>%jE!~EI2V0B^CsIHuT=uG?Q(l^HG^r#>O{p{-m*VvDoq4&Uk0J{wzf*3VbP0l+XkKOT}ai literal 0 HcmV?d00001 diff --git a/sdrbase/resources/horizontal_w.png b/sdrbase/resources/horizontal_w.png new file mode 100644 index 0000000000000000000000000000000000000000..59fd3e349c73d5dd686a3f29f574b30fd51ec810 GIT binary patch literal 190 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKw2Gy8MQbk`U4s4C7!;n?DyGuxnwO5aU_NUg(OQ{BTAg}b8}PkN*J7rQWHy3QxwWG zOEMJPJ$(bh8~Mb6iqt$^978NlCnrd-_WTC||B0MGcz*D+{&+G|preset-last.png display1.png display2.png + slopen_icon.png + slopep_icon.png + display1_w.png + display2_w.png + horizontal_w.png + vertical_w.png diff --git a/sdrbase/resources/slopen_icon.png b/sdrbase/resources/slopen_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..54d31f9f2884bb6e519c8d15fa7f5315493be152 GIT binary patch literal 404 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkES|xv6<249-QVi6yBi3gww4 z84B*6z5(HleBwYwe>`0rLo80uowQf4B~YMkzN3m$n3Ia0!^YkueFsOUg^O-9<+*N& zE?};j>t^D0Q^Q26)#a$F$CO2ZFE{*?JF7E$g8uyXxzC==EuJ^?%$$JdjiL+KY?!tm zh;+FV?Dnc>*HXD3i_J^Jc~5!8hHk&w_iNUI)Kwn2>JPSPB}CPR?|$VHdcw8rqSh|+ zfC<*;Zs;(%gjutzHL5R|y)!X^Phba&-S2y~40Agyq`Ve0`iP1|{y4m!@dcyUXPa45 ztFstiAK)yw@tmKDKb39gl;%C_c6COr`|K*al56KFJ+oCz*MvT-dAE9YRWbSY-t!J>9R_5)K-L&n!W?Q4N6fl zzgQdfV5j!o&73M*=Puah`8h8kzAW;slJxnS%lv6(F>VuBR;4EJYcQz#-#^w%+{yp3CfJML{WAJqKb6Mw<&;$St1)QA# literal 0 HcmV?d00001 diff --git a/sdrbase/resources/vertical_w.png b/sdrbase/resources/vertical_w.png new file mode 100644 index 0000000000000000000000000000000000000000..7302902ffd8514814e39f21b83d4558d53030afb GIT binary patch literal 202 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKw2Gy8MQbk`U4s4C7!;n?DyGuxnzYUH?L?03Q3l@MwB?`=jNv7l`uFLr6!i7rYMwW zmSiZnd-?{1H}Z)C6&ZQDIEGl9PEK)P{tpD_8`uqujEo*lKAz2BW~s);b#MhE50B20 kV=Px=4QBDRxmqzWC`8C`yh$&Y0_tY)boFyt=akR{0I~o#aR2}S literal 0 HcmV?d00001