diff options
Diffstat (limited to 'gr-qtgui/lib/FrequencyDisplayPlot.h')
-rw-r--r-- | gr-qtgui/lib/FrequencyDisplayPlot.h | 123 |
1 files changed, 72 insertions, 51 deletions
diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.h b/gr-qtgui/lib/FrequencyDisplayPlot.h index 5c3ea708c3..679ebf1cc4 100644 --- a/gr-qtgui/lib/FrequencyDisplayPlot.h +++ b/gr-qtgui/lib/FrequencyDisplayPlot.h @@ -25,29 +25,28 @@ #include <stdint.h> #include <cstdio> -#include <qwt_plot.h> -#include <qwt_painter.h> -#include <qwt_plot_canvas.h> -#include <qwt_plot_curve.h> -#include <qwt_scale_engine.h> -#include <qwt_scale_widget.h> -#include <qwt_plot_zoomer.h> -#include <qwt_plot_panner.h> -#include <qwt_plot_marker.h> -#include <qwt_plot_magnifier.h> -#include <gruel/high_res_timer.h> -#include <qwt_symbol.h> -#include <qtgui_util.h> - -#if QWT_VERSION >= 0x060000 -#include <qwt_compat.h> -#endif - -class FrequencyDisplayPlot:public QwtPlot{ +#include <vector> +#include "DisplayPlot.h" + +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(QWidget*); + FrequencyDisplayPlot(int nplots, QWidget*); virtual ~FrequencyDisplayPlot(); void SetFrequencyRange(const double, const double, @@ -57,82 +56,104 @@ public: double GetStartFrequency()const; double GetStopFrequency()const; - void PlotNewData(const double* dataPoints, const int64_t numDataPoints, + 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 ClearMaxData(); void ClearMinData(); - void SetMaxFFTVisible(const bool); - void SetMinFFTVisible(const bool); + void replot(); - virtual void replot(); - - void set_yaxis(double min, double max); + void setYaxis(double min, double max); 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 resizeSlot( QSize *e ); + 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); - // Because of the preprocessing of slots in QT, these are no - // easily separated by the version check. Make one for each - // version until it's worked out. void OnPickerPointSelected(const QwtDoublePoint & p); void OnPickerPointSelected6(const QPointF & p); -signals: - void plotPointSelected(const QPointF p); - -protected: - private: - void _resetXAxisPoints(); + std::vector<double*> _dataPoints; + + QwtPlotCurve* _min_fft_plot_curve; + QwtPlotCurve* _max_fft_plot_curve; + QColor _min_fft_color; + bool _min_fft_visible; + QColor _max_fft_color; + bool _max_fft_visible; + QColor _marker_lower_intensity_color; + bool _marker_lower_intensity_visible; + QColor _marker_upper_intensity_color; + bool _marker_upper_intensity_visible; + QColor _marker_peak_amplitude_color; + QColor _marker_noise_floor_amplitude_color; + bool _marker_noise_floor_amplitude_visible; + QColor _marker_CF_color; + double _startFrequency; double _stopFrequency; double _maxYAxis; double _minYAxis; - QwtPlotCurve* _fft_plot_curve; - QwtPlotCurve* _min_fft_plot_curve; - QwtPlotCurve* _max_fft_plot_curve; - QwtPlotMarker* _lower_intensity_marker; QwtPlotMarker* _upper_intensity_marker; - QwtPlotPanner* _panner; - QwtPlotZoomer* _zoomer; - QwtPlotMarker *_markerPeakAmplitude; QwtPlotMarker *_markerNoiseFloorAmplitude; QwtPlotMarker *_markerCF; - QwtDblClickPlotPicker *_picker; - - QwtPlotMagnifier *_magnifier; - - double* _dataPoints; double* _xAxisPoints; int _xAxisMultiplier; double* _minFFTPoints; double* _maxFFTPoints; - int64_t _numPoints; double _peakFrequency; double _peakAmplitude; double _noiseFloorAmplitude; - gruel::high_res_timer_type _lastReplot; - bool _useCenterFrequencyFlag; }; |