/usr/include/gnuradio/qtgui/FrequencyDisplayPlot.h is in gnuradio-dev 3.7.10.1-2+b3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 | /* -*- c++ -*- */
/*
* Copyright 2008-2011 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* GNU Radio is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option)
* any later version.
*
* GNU Radio is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with GNU Radio; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street,
* Boston, MA 02110-1301, USA.
*/
#ifndef FREQUENCY_DISPLAY_PLOT_HPP
#define FREQUENCY_DISPLAY_PLOT_HPP
#include <stdint.h>
#include <cstdio>
#include <vector>
#include <gnuradio/qtgui/DisplayPlot.h>
/*!
* \brief QWidget for displaying frequency domain (PSD) plots.
* \ingroup qtgui_blk
*/
class FrequencyDisplayPlot: public DisplayPlot
{
Q_OBJECT
Q_PROPERTY ( QColor min_fft_color READ getMinFFTColor WRITE setMinFFTColor )
Q_PROPERTY ( QColor max_fft_color READ getMaxFFTColor WRITE setMaxFFTColor )
Q_PROPERTY ( bool min_fft_visible READ getMinFFTVisible WRITE setMinFFTVisible )
Q_PROPERTY ( bool max_fft_visible READ getMaxFFTVisible WRITE setMaxFFTVisible )
Q_PROPERTY ( QColor marker_lower_intensity_color READ getMarkerLowerIntensityColor WRITE setMarkerLowerIntensityColor )
Q_PROPERTY ( bool marker_lower_intensity_visible READ getMarkerLowerIntensityVisible WRITE setMarkerLowerIntensityVisible )
Q_PROPERTY ( QColor marker_upper_intensity_color READ getMarkerUpperIntensityColor WRITE setMarkerUpperIntensityColor )
Q_PROPERTY ( bool marker_upper_intensity_visible READ getMarkerUpperIntensityVisible WRITE setMarkerUpperIntensityVisible )
Q_PROPERTY ( QColor marker_peak_amplitude_color READ getMarkerPeakAmplitudeColor WRITE setMarkerPeakAmplitudeColor )
Q_PROPERTY ( QColor marker_noise_floor_amplitude_color READ getMarkerNoiseFloorAmplitudeColor WRITE setMarkerNoiseFloorAmplitudeColor )
Q_PROPERTY ( bool marker_noise_floor_amplitude_visible READ getMarkerNoiseFloorAmplitudeVisible WRITE setMarkerNoiseFloorAmplitudeVisible )
Q_PROPERTY ( QColor marker_CF_color READ getMarkerCFColor WRITE setMarkerCFColor )
public:
FrequencyDisplayPlot(int nplots, QWidget*);
virtual ~FrequencyDisplayPlot();
void setFrequencyRange(const double, const double,
const double units=1000.0,
const std::string &strunits = "kHz");
double getStartFrequency()const;
double getStopFrequency()const;
void plotNewData(const std::vector<double*> dataPoints,
const int64_t numDataPoints,
const double noiseFloorAmplitude, const double peakFrequency,
const double peakAmplitude, const double timeInterval);
// Old method to be removed
void plotNewData(const double* dataPoints,
const int64_t numDataPoints,
const double noiseFloorAmplitude, const double peakFrequency,
const double peakAmplitude, const double timeInterval);
void replot();
void setYaxis(double min, double max);
double getYMin() const;
double getYMax() const;
void setTraceColour (QColor);
void setBGColour (QColor c);
void showCFMarker (const bool);
const bool getMaxFFTVisible() const;
const bool getMinFFTVisible() const;
const QColor getMinFFTColor() const;
const QColor getMaxFFTColor() const;
const QColor getMarkerLowerIntensityColor () const;
const bool getMarkerLowerIntensityVisible () const;
const QColor getMarkerUpperIntensityColor () const;
const bool getMarkerUpperIntensityVisible () const;
const QColor getMarkerPeakAmplitudeColor () const;
const bool getMarkerNoiseFloorAmplitudeVisible () const;
const QColor getMarkerNoiseFloorAmplitudeColor () const;
const QColor getMarkerCFColor () const;
public slots:
void setMaxFFTVisible(const bool);
void setMinFFTVisible(const bool);
void setMinFFTColor (QColor c);
void setMaxFFTColor (QColor c);
void setMarkerLowerIntensityColor (QColor c);
void setMarkerLowerIntensityVisible (bool visible);
void setMarkerUpperIntensityColor (QColor c);
void setMarkerUpperIntensityVisible (bool visible);
void setMarkerPeakAmplitudeColor (QColor c);
void setMarkerNoiseFloorAmplitudeVisible (bool visible);
void setMarkerNoiseFloorAmplitudeColor (QColor c);
void setMarkerCFColor (QColor c);
void setLowerIntensityLevel(const double);
void setUpperIntensityLevel(const double);
void onPickerPointSelected(const QwtDoublePoint & p);
void onPickerPointSelected6(const QPointF & p);
void setAutoScale(bool state);
void setAutoScaleShot();
void setPlotPosHalf(bool half);
void setYLabel(const std::string &label,
const std::string &unit);
void clearMaxData();
void clearMinData();
void attachTriggerLine(bool en);
void setTriggerLine(double value);
private:
void _resetXAxisPoints();
void _autoScale(double bottom, double top);
std::vector<double*> d_ydata;
QwtPlotCurve* d_min_fft_plot_curve;
QwtPlotCurve* d_max_fft_plot_curve;
QColor d_min_fft_color;
bool d_min_fft_visible;
QColor d_max_fft_color;
bool d_max_fft_visible;
QColor d_marker_lower_intensity_color;
bool d_marker_lower_intensity_visible;
QColor d_marker_upper_intensity_color;
bool d_marker_upper_intensity_visible;
QColor d_marker_peak_amplitude_color;
QColor d_marker_noise_floor_amplitude_color;
bool d_marker_noise_floor_amplitude_visible;
QColor d_marker_cf_color;
double d_start_frequency;
double d_stop_frequency;
double d_center_frequency;
double d_ymax;
double d_ymin;
bool d_half_freq;
QwtPlotMarker* d_lower_intensity_marker;
QwtPlotMarker* d_upper_intensity_marker;
QwtPlotMarker *d_marker_peak_amplitude;
QwtPlotMarker *d_marker_noise_floor_amplitude;
QwtPlotMarker *d_marker_cf;
double* d_xdata;
int d_xdata_multiplier;
double* d_min_fft_data;
double* d_max_fft_data;
double d_peak_frequency;
double d_peak_amplitude;
double d_noise_floor_amplitude;
bool d_autoscale_shot;
QwtPlotMarker *d_trigger_line;
};
#endif /* FREQUENCY_DISPLAY_PLOT_HPP */
|