GNU Radio Manual and C++ API Reference 3.8.5.0
The Free & Open Software Radio Ecosystem
 
Loading...
Searching...
No Matches
time_raster_sink_f.h
Go to the documentation of this file.
1/* -*- c++ -*- */
2/*
3 * Copyright 2012,2013,2015 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 INCLUDED_QTGUI_TIME_RASTER_SINK_F_H
24#define INCLUDED_QTGUI_TIME_RASTER_SINK_F_H
25
26#ifdef ENABLE_PYTHON
27#include <Python.h>
28#endif
29
30#include <gnuradio/qtgui/api.h>
31#include <gnuradio/sync_block.h>
32#include <qapplication.h>
33#include <qwt_symbol.h>
34
35namespace gr {
36namespace qtgui {
37
38/*!
39 * \brief A graphical sink to display multiple signals on a
40 * time_raster plot.
41 * \ingroup instrumentation_blk
42 * \ingroup qtgui_blk
43 *
44 * \details
45 * This is a QT-based graphical sink that takes set of a floating
46 * point streams and plots a time_raster (spectrogram) plot.
47 *
48 * The sink supports plotting streaming float data or
49 * messages. The message port is named "in". The two modes cannot
50 * be used simultaneously, and \p nconnections should be set to 0
51 * when using the message mode. GRC handles this issue by
52 * providing the "Float Message" type that removes the streaming
53 * port(s).
54 *
55 * This sink can plot messages that contain either uniform vectors
56 * of float 32 values (pmt::is_f32vector) or PDUs where the data
57 * is a uniform vector of float 32 values.
58 */
60{
61public:
62 // gr::qtgui::time_raster_sink_f::sptr
63 typedef boost::shared_ptr<time_raster_sink_f> sptr;
64
65 /*!
66 * \brief Build a floating point time raster sink.
67 *
68 * \param samp_rate sample rate of signal
69 * \param cols number of cols to plot
70 * \param rows number of rows to plot
71 * \param mult vector of floats as a scaling multiplier for each input stream
72 * \param offset vector of floats as an offset for each input stream
73 * \param name title for the plot
74 * \param nconnections number of streams connected
75 * \param parent a QWidget parent object, if any
76 */
77 static sptr make(double samp_rate,
78 double rows,
79 double cols,
80 const std::vector<float>& mult,
81 const std::vector<float>& offset,
82 const std::string& name,
83 int nconnections = 1,
84 QWidget* parent = NULL);
85
86 virtual void exec_() = 0;
87 virtual QWidget* qwidget() = 0;
88
89#ifdef ENABLE_PYTHON
90 virtual PyObject* pyqwidget() = 0;
91#else
92 virtual void* pyqwidget() = 0;
93#endif
94
95 virtual void set_update_time(double t) = 0;
96 virtual void set_title(const std::string& title) = 0;
97 virtual void set_line_label(unsigned int which, const std::string& label) = 0;
98 virtual void set_line_color(unsigned int which, const std::string& color) = 0;
99 virtual void set_line_width(unsigned int which, int width) = 0;
100 virtual void set_line_style(unsigned int which, Qt::PenStyle style) = 0;
101 virtual void set_line_marker(unsigned int which, QwtSymbol::Style marker) = 0;
102 virtual void set_line_alpha(unsigned int which, double alpha) = 0;
103 virtual void set_color_map(unsigned int which, const int color) = 0;
104
105 virtual std::string title() = 0;
106 virtual std::string line_label(unsigned int which) = 0;
107 virtual std::string line_color(unsigned int which) = 0;
108 virtual int line_width(unsigned int which) = 0;
109 virtual int line_style(unsigned int which) = 0;
110 virtual int line_marker(unsigned int which) = 0;
111 virtual double line_alpha(unsigned int which) = 0;
112 virtual int color_map(unsigned int which) = 0;
113
114 virtual void set_size(int width, int height) = 0;
115
116 virtual void set_samp_rate(const double samp_rate) = 0;
117 virtual void set_num_rows(double rows) = 0;
118 virtual void set_num_cols(double cols) = 0;
119
120 virtual double num_rows() = 0;
121 virtual double num_cols() = 0;
122
123 virtual void set_multiplier(const std::vector<float>& mult) = 0;
124 virtual void set_offset(const std::vector<float>& offset) = 0;
125
126 virtual void set_intensity_range(float min, float max) = 0;
127
128 virtual void enable_menu(bool en) = 0;
129 virtual void enable_grid(bool en) = 0;
130 virtual void enable_autoscale(bool en) = 0;
131 virtual void enable_axis_labels(bool en = true) = 0;
132 virtual void reset() = 0;
133
134 QApplication* d_qApplication;
135};
136
137} /* namespace qtgui */
138} /* namespace gr */
139
140#endif /* INCLUDED_QTGUI_TIME_RASTER_SINK_F_H */
A graphical sink to display multiple signals on a time_raster plot.
Definition time_raster_sink_f.h:60
virtual void set_line_width(unsigned int which, int width)=0
virtual int line_width(unsigned int which)=0
virtual void set_num_cols(double cols)=0
virtual void enable_menu(bool en)=0
static sptr make(double samp_rate, double rows, double cols, const std::vector< float > &mult, const std::vector< float > &offset, const std::string &name, int nconnections=1, QWidget *parent=NULL)
Build a floating point time raster sink.
virtual int line_marker(unsigned int which)=0
virtual void set_multiplier(const std::vector< float > &mult)=0
virtual void set_line_marker(unsigned int which, QwtSymbol::Style marker)=0
virtual void set_num_rows(double rows)=0
virtual std::string line_label(unsigned int which)=0
virtual void set_line_label(unsigned int which, const std::string &label)=0
virtual void set_line_color(unsigned int which, const std::string &color)=0
virtual void * pyqwidget()=0
virtual std::string line_color(unsigned int which)=0
virtual void enable_axis_labels(bool en=true)=0
virtual double line_alpha(unsigned int which)=0
virtual int line_style(unsigned int which)=0
virtual void enable_grid(bool en)=0
virtual void set_line_alpha(unsigned int which, double alpha)=0
virtual void set_samp_rate(const double samp_rate)=0
QApplication * d_qApplication
Definition time_raster_sink_f.h:134
virtual double num_rows()=0
virtual void set_size(int width, int height)=0
virtual void set_color_map(unsigned int which, const int color)=0
virtual double num_cols()=0
virtual void set_line_style(unsigned int which, Qt::PenStyle style)=0
virtual void enable_autoscale(bool en)=0
virtual void set_title(const std::string &title)=0
virtual void set_intensity_range(float min, float max)=0
virtual std::string title()=0
virtual void set_update_time(double t)=0
virtual int color_map(unsigned int which)=0
boost::shared_ptr< time_raster_sink_f > sptr
Definition time_raster_sink_f.h:63
virtual QWidget * qwidget()=0
virtual void set_offset(const std::vector< float > &offset)=0
synchronous 1:1 input to output with history
Definition sync_block.h:38
#define QTGUI_API
Definition gr-qtgui/include/gnuradio/qtgui/api.h:30
GNU Radio logging wrapper for log4cpp library (C++ port of log4j)
Definition basic_block.h:46