blob: 1901100f0cf372d2192f0e7905be7e2ad1dc7716 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
/* -*- c++ -*- */
/*
* Copyright 2011,2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef TIME_DISPLAY_FORM_H
#define TIME_DISPLAY_FORM_H
#include <gnuradio/qtgui/TimeDomainDisplayPlot.h>
#include <gnuradio/qtgui/displayform.h>
#include <gnuradio/qtgui/spectrumUpdateEvents.h>
#include <QtGui/QtGui>
#include <vector>
class TimeControlPanel;
/*!
* \brief DisplayForm child for managing time domain plots.
* \ingroup qtgui_blk
*/
class TimeDisplayForm : public DisplayForm
{
Q_OBJECT
public:
TimeDisplayForm(int nplots = 1, QWidget* parent = 0);
~TimeDisplayForm() override;
TimeDomainDisplayPlot* getPlot() override;
int getNPoints() const;
gr::qtgui::trigger_mode getTriggerMode() const;
gr::qtgui::trigger_slope getTriggerSlope() const;
float getTriggerLevel() const;
float getTriggerDelay() const;
int getTriggerChannel() const;
std::string getTriggerTagKey() const;
public slots:
void customEvent(QEvent* e) override;
void setSampleRate(const double samprate);
void setSampleRate(const QString& samprate) override;
void setYaxis(double min, double max);
void setYLabel(const std::string& label, const std::string& unit = "");
void setNPoints(const int);
void setStem(bool en);
void autoScale(bool en) override;
void autoScaleShot();
void setSemilogx(bool en);
void setSemilogy(bool en);
void tagMenuSlot(bool en);
void setTagMenu(unsigned int which, bool en);
void updateTrigger(gr::qtgui::trigger_mode mode);
void setTriggerMode(gr::qtgui::trigger_mode mode);
void setTriggerSlope(gr::qtgui::trigger_slope slope);
void setTriggerLevel(QString s);
void setTriggerLevel(float level);
void setTriggerDelay(QString s);
void setTriggerDelay(float delay);
void setTriggerChannel(int chan);
void setTriggerTagKey(QString s);
void setTriggerTagKey(const std::string& s);
void setupControlPanel(bool en);
void setupControlPanel();
void teardownControlPanel();
private slots:
void newData(const QEvent*) override;
void notifyYAxisPlus();
void notifyYAxisMinus();
void notifyYRangePlus();
void notifyYRangeMinus();
void notifyXAxisPlus();
void notifyXAxisMinus();
void notifyTriggerMode(const QString& mode);
void notifyTriggerSlope(const QString& slope);
void notifyTriggerLevelPlus();
void notifyTriggerLevelMinus();
void notifyTriggerDelayPlus();
void notifyTriggerDelayMinus();
signals:
void signalTriggerMode(gr::qtgui::trigger_mode mode);
void signalTriggerSlope(gr::qtgui::trigger_slope slope);
void signalTriggerLevel(float level);
void signalTriggerDelay(float delay);
void signalReplot();
void signalNPoints(const int npts);
private:
QIntValidator* d_int_validator;
double d_start_frequency;
double d_stop_frequency;
double d_current_units;
int d_npoints;
bool d_stem;
bool d_semilogx;
bool d_semilogy;
NPointsMenu* d_nptsmenu;
QAction* d_stemmenu;
QAction* d_semilogxmenu;
QAction* d_semilogymenu;
QAction* d_controlpanelmenu;
std::vector<QAction*> d_tagsmenu;
QMenu* d_triggermenu;
TriggerModeMenu* d_tr_mode_menu;
TriggerSlopeMenu* d_tr_slope_menu;
PopupMenu* d_tr_level_act;
PopupMenu* d_tr_delay_act;
TriggerChannelMenu* d_tr_channel_menu;
PopupMenu* d_tr_tag_key_act;
gr::qtgui::trigger_mode d_trig_mode;
gr::qtgui::trigger_slope d_trig_slope;
float d_trig_level;
float d_trig_delay;
int d_trig_channel;
std::string d_trig_tag_key;
TimeControlPanel* d_controlpanel;
};
#endif /* TIME_DISPLAY_FORM_H */
|