Loading...
Searching...
No Matches
WaterfallDisplayPlot.h
Go to the documentation of this file.
/* -*- c++ -*- */
/*
* Copyright 2008-2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef WATERFALL_DISPLAY_PLOT_H
#define WATERFALL_DISPLAY_PLOT_H
#include <gnuradio/high_res_timer.h>
#include <gnuradio/qtgui/DisplayPlot.h>
#include <gnuradio/qtgui/waterfallGlobalData.h>
#include <qwt_plot_spectrogram.h>
#include <cstdint>
#include <cstdio>
#include <vector>
#include <qwt_interval.h>
/*!
* \brief QWidget for displaying waterfall (spectrogram) plots.
* \ingroup qtgui_blk
*/
class WaterfallDisplayPlot : public DisplayPlot
{
Q_OBJECT
Q_PROPERTY(int intensity_color_map_type1 READ getIntensityColorMapType1 WRITE
setIntensityColorMapType1)
Q_PROPERTY(QColor low_intensity_color READ getUserDefinedLowIntensityColor WRITE
setUserDefinedLowIntensityColor)
Q_PROPERTY(QColor high_intensity_color READ getUserDefinedHighIntensityColor WRITE
setUserDefinedHighIntensityColor)
Q_PROPERTY(int color_map_title_font_size READ getColorMapTitleFontSize WRITE
setColorMapTitleFontSize)
public:
WaterfallDisplayPlot(int nplots, QWidget*);
~WaterfallDisplayPlot() override;
void resetAxis();
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<const double*> dataPoints,
const int64_t numDataPoints,
const double timePerFFT,
const gr::high_res_timer_type timestamp,
const int droppedFrames);
// to be removed
void plotNewData(const double* dataPoints,
const int64_t numDataPoints,
const double timePerFFT,
const gr::high_res_timer_type timestamp,
const int droppedFrames);
void setIntensityRange(const double minIntensity, const double maxIntensity);
double getMinIntensity(unsigned int which) const;
double getMaxIntensity(unsigned int which) const;
void replot(void) override;
void clearData();
int getIntensityColorMapType(unsigned int) const;
int getIntensityColorMapType1() const;
int getColorMapTitleFontSize() const;
const QColor getUserDefinedLowIntensityColor() const;
const QColor getUserDefinedHighIntensityColor() const;
int getAlpha(unsigned int which);
void setAlpha(unsigned int which, int alpha);
int getNumRows() const;
public slots:
void
setIntensityColorMapType(const unsigned int, const int, const QColor, const QColor);
void setIntensityColorMapType1(int);
void setColorMapTitleFontSize(int tfs);
void setUserDefinedLowIntensityColor(QColor);
void setUserDefinedHighIntensityColor(QColor);
void setPlotPosHalf(bool half);
void disableLegend() override;
void enableLegend();
void enableLegend(bool en);
void setNumRows(int nrows);
signals:
void updatedLowerIntensityLevel(const double);
void updatedUpperIntensityLevel(const double);
private:
void _updateIntensityRangeDisplay();
double d_start_frequency;
double d_stop_frequency;
double d_center_frequency;
int d_xaxis_multiplier;
bool d_half_freq;
bool d_legend_enabled;
int d_nrows;
std::vector<WaterfallData*> d_data;
std::vector<QwtPlotSpectrogram*> d_spectrogram;
std::vector<int> d_intensity_color_map_type;
QColor d_user_defined_low_intensity_color;
QColor d_user_defined_high_intensity_color;
int d_color_bar_title_font_size;
};
#endif /* WATERFALL_DISPLAY_PLOT_H */
DisplayPlot.h
DisplayPlot::DisplayPlot
DisplayPlot(int nplots, QWidget *)
WaterfallData
Definition waterfallGlobalData.h:20
WaterfallDisplayPlot::setAlpha
void setAlpha(unsigned int which, int alpha)
WaterfallDisplayPlot::getColorMapTitleFontSize
int getColorMapTitleFontSize() const
WaterfallDisplayPlot::plotNewData
void plotNewData(const std::vector< const double * > dataPoints, const int64_t numDataPoints, const double timePerFFT, const gr::high_res_timer_type timestamp, const int droppedFrames)
WaterfallDisplayPlot::setNumRows
void setNumRows(int nrows)
WaterfallDisplayPlot::setIntensityRange
void setIntensityRange(const double minIntensity, const double maxIntensity)
WaterfallDisplayPlot::getStopFrequency
double getStopFrequency() const
WaterfallDisplayPlot::setPlotPosHalf
void setPlotPosHalf(bool half)
WaterfallDisplayPlot::setIntensityColorMapType
void setIntensityColorMapType(const unsigned int, const int, const QColor, const QColor)
WaterfallDisplayPlot::getUserDefinedLowIntensityColor
const QColor getUserDefinedLowIntensityColor() const
WaterfallDisplayPlot::getNumRows
int getNumRows() const
WaterfallDisplayPlot::clearData
void clearData()
WaterfallDisplayPlot::getIntensityColorMapType1
int getIntensityColorMapType1() const
WaterfallDisplayPlot::color_map_title_font_size
int color_map_title_font_size
Definition WaterfallDisplayPlot.h:35
WaterfallDisplayPlot::setIntensityColorMapType1
void setIntensityColorMapType1(int)
WaterfallDisplayPlot::updatedLowerIntensityLevel
void updatedLowerIntensityLevel(const double)
WaterfallDisplayPlot::resetAxis
void resetAxis()
WaterfallDisplayPlot::disableLegend
void disableLegend() override
WaterfallDisplayPlot::setUserDefinedHighIntensityColor
void setUserDefinedHighIntensityColor(QColor)
WaterfallDisplayPlot::getMaxIntensity
double getMaxIntensity(unsigned int which) const
WaterfallDisplayPlot::getUserDefinedHighIntensityColor
const QColor getUserDefinedHighIntensityColor() const
WaterfallDisplayPlot::high_intensity_color
QColor high_intensity_color
Definition WaterfallDisplayPlot.h:34
WaterfallDisplayPlot::setColorMapTitleFontSize
void setColorMapTitleFontSize(int tfs)
WaterfallDisplayPlot::intensity_color_map_type1
int intensity_color_map_type1
Definition WaterfallDisplayPlot.h:32
WaterfallDisplayPlot::setUserDefinedLowIntensityColor
void setUserDefinedLowIntensityColor(QColor)
WaterfallDisplayPlot::getIntensityColorMapType
int getIntensityColorMapType(unsigned int) const
WaterfallDisplayPlot::setFrequencyRange
void setFrequencyRange(const double, const double, const double units=1000.0, const std::string &strunits="kHz")
WaterfallDisplayPlot::low_intensity_color
QColor low_intensity_color
Definition WaterfallDisplayPlot.h:33
WaterfallDisplayPlot::enableLegend
void enableLegend()
WaterfallDisplayPlot::getAlpha
int getAlpha(unsigned int which)
WaterfallDisplayPlot::WaterfallDisplayPlot
WaterfallDisplayPlot(int nplots, QWidget *)
WaterfallDisplayPlot::replot
void replot(void) override
WaterfallDisplayPlot::getMinIntensity
double getMinIntensity(unsigned int which) const
WaterfallDisplayPlot::getStartFrequency
double getStartFrequency() const
WaterfallDisplayPlot::updatedUpperIntensityLevel
void updatedUpperIntensityLevel(const double)
high_res_timer.h
gr
GNU Radio logging wrapper.
Definition basic_block.h:29
std
STL namespace.
waterfallGlobalData.h