GNU Radio Manual and C++ API Reference  3.8.1.0
The Free & Open Software Radio Ecosystem
timedisplayform.h
Go to the documentation of this file.
1 /* -*- c++ -*- */
2 /*
3  * Copyright 2011,2012 Free Software Foundation, Inc.
4  *
5  * This file is part of GNU Radio
6  *
7  * GNU Radio is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 3, or (at your option)
10  * any later version.
11  *
12  * GNU Radio is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with GNU Radio; see the file COPYING. If not, write to
19  * the Free Software Foundation, Inc., 51 Franklin Street,
20  * Boston, MA 02110-1301, USA.
21  */
22 
23 #ifndef TIME_DISPLAY_FORM_H
24 #define TIME_DISPLAY_FORM_H
25 
29 #include <QtGui/QtGui>
30 #include <vector>
31 
32 class TimeControlPanel;
33 
34 /*!
35  * \brief DisplayForm child for managing time domain plots.
36  * \ingroup qtgui_blk
37  */
39 {
40  Q_OBJECT
41 
42 public:
43  TimeDisplayForm(int nplots = 1, QWidget* parent = 0);
45 
47 
48  int getNPoints() const;
51  float getTriggerLevel() const;
52  float getTriggerDelay() const;
53  int getTriggerChannel() const;
54  std::string getTriggerTagKey() const;
55 
56 public slots:
57  void customEvent(QEvent* e);
58 
59  void setSampleRate(const double samprate);
60  void setSampleRate(const QString& samprate);
61  void setYaxis(double min, double max);
62  void setYLabel(const std::string& label, const std::string& unit = "");
63  void setNPoints(const int);
64  void setStem(bool en);
65  void autoScale(bool en);
66  void autoScaleShot();
67  void setSemilogx(bool en);
68  void setSemilogy(bool en);
69  void tagMenuSlot(bool en);
70  void setTagMenu(unsigned int which, bool en);
71 
75  void setTriggerLevel(QString s);
76  void setTriggerLevel(float level);
77  void setTriggerDelay(QString s);
78  void setTriggerDelay(float delay);
79  void setTriggerChannel(int chan);
80  void setTriggerTagKey(QString s);
81  void setTriggerTagKey(const std::string& s);
82 
83  void setupControlPanel(bool en);
84  void setupControlPanel();
85  void teardownControlPanel();
86 
87 private slots:
88  void newData(const QEvent*);
89  void notifyYAxisPlus();
90  void notifyYAxisMinus();
91  void notifyYRangePlus();
92  void notifyYRangeMinus();
93  void notifyXAxisPlus();
94  void notifyXAxisMinus();
95  void notifyTriggerMode(const QString& mode);
96  void notifyTriggerSlope(const QString& slope);
97  void notifyTriggerLevelPlus();
98  void notifyTriggerLevelMinus();
99  void notifyTriggerDelayPlus();
100  void notifyTriggerDelayMinus();
101 
102 signals:
105  void signalTriggerLevel(float level);
106  void signalTriggerDelay(float delay);
107  void signalReplot();
108  void signalNPoints(const int npts);
109 
110 private:
111  QIntValidator* d_int_validator;
112 
113  double d_start_frequency;
114  double d_stop_frequency;
115  double d_current_units;
116 
117  int d_npoints;
118 
119  bool d_stem;
120  bool d_semilogx;
121  bool d_semilogy;
122 
123  NPointsMenu* d_nptsmenu;
124  QAction* d_stemmenu;
125  QAction* d_semilogxmenu;
126  QAction* d_semilogymenu;
127  QAction* d_controlpanelmenu;
128  std::vector<QAction*> d_tagsmenu;
129 
130  QMenu* d_triggermenu;
131  TriggerModeMenu* d_tr_mode_menu;
132  TriggerSlopeMenu* d_tr_slope_menu;
133  PopupMenu* d_tr_level_act;
134  PopupMenu* d_tr_delay_act;
135  TriggerChannelMenu* d_tr_channel_menu;
136  PopupMenu* d_tr_tag_key_act;
137 
138  gr::qtgui::trigger_mode d_trig_mode;
139  gr::qtgui::trigger_slope d_trig_slope;
140  float d_trig_level;
141  float d_trig_delay;
142  int d_trig_channel;
143  std::string d_trig_tag_key;
144 
145  TimeControlPanel* d_controlpanel;
146 };
147 
148 #endif /* TIME_DISPLAY_FORM_H */
TimeDisplayForm::signalTriggerMode
void signalTriggerMode(gr::qtgui::trigger_mode mode)
NPointsMenu
Definition: form_menus.h:936
TimeDisplayForm::updateTrigger
void updateTrigger(gr::qtgui::trigger_mode mode)
TimeDisplayForm::signalReplot
void signalReplot()
TimeDisplayForm::getTriggerDelay
float getTriggerDelay() const
TriggerSlopeMenu
Definition: form_menus.h:1164
TriggerChannelMenu
Definition: form_menus.h:1231
TimeDisplayForm
DisplayForm child for managing time domain plots.
Definition: timedisplayform.h:38
TimeDisplayForm::setYLabel
void setYLabel(const std::string &label, const std::string &unit="")
TimeDisplayForm::getTriggerTagKey
std::string getTriggerTagKey() const
TimeDisplayForm::autoScale
void autoScale(bool en)
TimeDisplayForm::setSemilogy
void setSemilogy(bool en)
displayform.h
gr::trellis::min
float min(float a, float b)
TimeDisplayForm::getPlot
TimeDomainDisplayPlot * getPlot()
TimeDisplayForm::setTriggerTagKey
void setTriggerTagKey(QString s)
TimeDomainDisplayPlot.h
TimeDisplayForm::getTriggerLevel
float getTriggerLevel() const
PopupMenu
Definition: form_menus.h:1438
TimeDisplayForm::setSemilogx
void setSemilogx(bool en)
TimeDisplayForm::setStem
void setStem(bool en)
TimeDisplayForm::getTriggerSlope
gr::qtgui::trigger_slope getTriggerSlope() const
TimeDisplayForm::customEvent
void customEvent(QEvent *e)
TimeDisplayForm::setTagMenu
void setTagMenu(unsigned int which, bool en)
TimeDisplayForm::signalTriggerDelay
void signalTriggerDelay(float delay)
TimeDisplayForm::teardownControlPanel
void teardownControlPanel()
TimeDisplayForm::setYaxis
void setYaxis(double min, double max)
TimeDisplayForm::signalTriggerSlope
void signalTriggerSlope(gr::qtgui::trigger_slope slope)
TimeDisplayForm::setSampleRate
void setSampleRate(const double samprate)
TimeDisplayForm::TimeDisplayForm
TimeDisplayForm(int nplots=1, QWidget *parent=0)
spectrumUpdateEvents.h
TimeDomainDisplayPlot
QWidget for displaying time domain plots.
Definition: TimeDomainDisplayPlot.h:36
TimeDisplayForm::getNPoints
int getNPoints() const
TimeDisplayForm::signalNPoints
void signalNPoints(const int npts)
TimeDisplayForm::getTriggerChannel
int getTriggerChannel() const
TimeDisplayForm::~TimeDisplayForm
~TimeDisplayForm()
TimeDisplayForm::getTriggerMode
gr::qtgui::trigger_mode getTriggerMode() const
TimeDisplayForm::setNPoints
void setNPoints(const int)
TimeDisplayForm::setupControlPanel
void setupControlPanel()
TimeDisplayForm::setTriggerMode
void setTriggerMode(gr::qtgui::trigger_mode mode)
TimeDisplayForm::tagMenuSlot
void tagMenuSlot(bool en)
TimeDisplayForm::setTriggerSlope
void setTriggerSlope(gr::qtgui::trigger_slope slope)
DisplayForm
Base class for setting up and managing QTGUI plot forms.
Definition: displayform.h:41
gr::qtgui::trigger_slope
trigger_slope
Definition: trigger_mode.h:36
gr::qtgui::trigger_mode
trigger_mode
Definition: trigger_mode.h:29
TimeDisplayForm::signalTriggerLevel
void signalTriggerLevel(float level)
TimeDisplayForm::setTriggerChannel
void setTriggerChannel(int chan)
TimeControlPanel
Definition: timecontrolpanel.h:37
TimeDisplayForm::autoScaleShot
void autoScaleShot()
TimeDisplayForm::setTriggerLevel
void setTriggerLevel(QString s)
TimeDisplayForm::setTriggerDelay
void setTriggerDelay(QString s)
TriggerModeMenu
Definition: form_menus.h:1086