Loading...
Searching...
No Matches
VectorDisplayPlot.h
Go to the documentation of this file.
/* -*- c++ -*- */
/*
* Copyright 2014 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef VECTOR_DISPLAY_PLOT_HPP
#define VECTOR_DISPLAY_PLOT_HPP
#include <gnuradio/qtgui/DisplayPlot.h>
#include <cstdint>
#include <cstdio>
#include <vector>
/*!
* \brief QWidget for displaying 1D-vector plots.
* \ingroup qtgui_blk
*/
class VectorDisplayPlot : public DisplayPlot
{
Q_OBJECT
Q_PROPERTY(QColor min_vec_color READ getMinVecColor WRITE setMinVecColor)
Q_PROPERTY(QColor max_vec_color READ getMaxVecColor WRITE setMaxVecColor)
Q_PROPERTY(bool min_vec_visible READ getMinVecVisible WRITE setMinVecVisible)
Q_PROPERTY(bool max_vec_visible READ getMaxVecVisible WRITE setMaxVecVisible)
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_ref_level_color READ getMarkerRefLevelAmplitudeColor WRITE
setMarkerRefLevelAmplitudeColor)
Q_PROPERTY(bool marker_ref_level_visible READ getMarkerRefLevelAmplitudeVisible WRITE
setMarkerRefLevelAmplitudeVisible)
public:
VectorDisplayPlot(int nplots, QWidget*);
~VectorDisplayPlot() override;
// Disable move/copy because of raw QT pointers.
VectorDisplayPlot(const VectorDisplayPlot&) = delete;
VectorDisplayPlot(VectorDisplayPlot&&) = delete;
VectorDisplayPlot& operator=(const VectorDisplayPlot&) = delete;
VectorDisplayPlot& operator=(VectorDisplayPlot&&) = delete;
void setXAxisValues(const double start, const double step = 1.0);
void plotNewData(const std::vector<const double*> dataPoints,
const int64_t numDataPoints,
const double refLevel,
const double timeInterval);
void clearMaxData();
void clearMinData();
void replot() override;
void setYaxis(double min, double max) override;
double getYMin() const;
double getYMax() const;
void setXAxisLabel(const QString& label);
void setYAxisLabel(const QString& label);
void setXAxisUnit(const QString& unit);
void setYAxisUnit(const QString& unit);
void setTraceColour(QColor);
void setBGColour(QColor c);
bool getMaxVecVisible() const;
bool getMinVecVisible() const;
const QColor getMinVecColor() const;
const QColor getMaxVecColor() const;
const QColor getMarkerLowerIntensityColor() const;
bool getMarkerLowerIntensityVisible() const;
const QColor getMarkerUpperIntensityColor() const;
bool getMarkerUpperIntensityVisible() const;
bool getMarkerRefLevelAmplitudeVisible() const;
const QColor getMarkerRefLevelAmplitudeColor() const;
public slots:
void setMaxVecVisible(const bool);
void setMinVecVisible(const bool);
void setMinVecColor(QColor c);
void setMaxVecColor(QColor c);
void setMarkerLowerIntensityColor(QColor c);
void setMarkerLowerIntensityVisible(bool visible);
void setMarkerUpperIntensityColor(QColor c);
void setMarkerUpperIntensityVisible(bool visible);
void setMarkerRefLevelAmplitudeVisible(bool visible);
void setMarkerRefLevelAmplitudeColor(QColor c);
void setLowerIntensityLevel(const double);
void setUpperIntensityLevel(const double);
void onPickerPointSelected(const QPointF& p);
void setAutoScale(bool state);
private:
void _resetXAxisPoints();
void _autoScale(double bottom, double top);
std::vector<std::vector<double>> d_ydata;
QwtPlotCurve* d_min_vec_plot_curve;
QwtPlotCurve* d_max_vec_plot_curve;
QColor d_min_vec_color;
bool d_min_vec_visible;
QColor d_max_vec_color;
bool d_max_vec_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_ref_level_color;
bool d_marker_ref_level_visible;
double d_x_axis_start = 0;
double d_x_axis_step = 1.0;
double d_ymax = 10;
double d_ymin = -10;
QwtPlotMarker* d_lower_intensity_marker;
QwtPlotMarker* d_upper_intensity_marker;
QwtPlotMarker* d_marker_ref_level;
std::vector<double> d_xdata;
QString d_x_axis_label;
QString d_y_axis_label;
std::vector<double> d_min_vec_data;
std::vector<double> d_max_vec_data;
double d_ref_level;
};
#endif /* VECTOR_DISPLAY_PLOT_HPP */
DisplayPlot.h
DisplayPlot::DisplayPlot
DisplayPlot(int nplots, QWidget *)
VectorDisplayPlot::clearMaxData
void clearMaxData()
VectorDisplayPlot::marker_upper_intensity_color
QColor marker_upper_intensity_color
Definition VectorDisplayPlot.h:33
VectorDisplayPlot::replot
void replot() override
VectorDisplayPlot::setUpperIntensityLevel
void setUpperIntensityLevel(const double)
VectorDisplayPlot::getYMax
double getYMax() const
VectorDisplayPlot::setYAxisLabel
void setYAxisLabel(const QString &label)
VectorDisplayPlot::clearMinData
void clearMinData()
VectorDisplayPlot::setMinVecColor
void setMinVecColor(QColor c)
VectorDisplayPlot::getMarkerUpperIntensityVisible
bool getMarkerUpperIntensityVisible() const
VectorDisplayPlot::setYAxisUnit
void setYAxisUnit(const QString &unit)
VectorDisplayPlot::setMarkerRefLevelAmplitudeVisible
void setMarkerRefLevelAmplitudeVisible(bool visible)
VectorDisplayPlot::min_vec_visible
bool min_vec_visible
Definition VectorDisplayPlot.h:29
VectorDisplayPlot::getYMin
double getYMin() const
VectorDisplayPlot::getMarkerUpperIntensityColor
const QColor getMarkerUpperIntensityColor() const
VectorDisplayPlot::onPickerPointSelected
void onPickerPointSelected(const QPointF &p)
VectorDisplayPlot::marker_lower_intensity_color
QColor marker_lower_intensity_color
Definition VectorDisplayPlot.h:31
VectorDisplayPlot::setMarkerLowerIntensityColor
void setMarkerLowerIntensityColor(QColor c)
VectorDisplayPlot::plotNewData
void plotNewData(const std::vector< const double * > dataPoints, const int64_t numDataPoints, const double refLevel, const double timeInterval)
VectorDisplayPlot::getMarkerRefLevelAmplitudeVisible
bool getMarkerRefLevelAmplitudeVisible() const
VectorDisplayPlot::setMaxVecColor
void setMaxVecColor(QColor c)
VectorDisplayPlot::setLowerIntensityLevel
void setLowerIntensityLevel(const double)
VectorDisplayPlot::max_vec_visible
bool max_vec_visible
Definition VectorDisplayPlot.h:30
VectorDisplayPlot::setXAxisValues
void setXAxisValues(const double start, const double step=1.0)
VectorDisplayPlot::setXAxisLabel
void setXAxisLabel(const QString &label)
VectorDisplayPlot::min_vec_color
QColor min_vec_color
Definition VectorDisplayPlot.h:27
VectorDisplayPlot::setAutoScale
void setAutoScale(bool state)
VectorDisplayPlot::setMinVecVisible
void setMinVecVisible(const bool)
VectorDisplayPlot::setMaxVecVisible
void setMaxVecVisible(const bool)
VectorDisplayPlot::setXAxisUnit
void setXAxisUnit(const QString &unit)
VectorDisplayPlot::VectorDisplayPlot
VectorDisplayPlot(int nplots, QWidget *)
VectorDisplayPlot::getMarkerLowerIntensityVisible
bool getMarkerLowerIntensityVisible() const
VectorDisplayPlot::setTraceColour
void setTraceColour(QColor)
VectorDisplayPlot::getMinVecColor
const QColor getMinVecColor() const
VectorDisplayPlot::setMarkerUpperIntensityVisible
void setMarkerUpperIntensityVisible(bool visible)
VectorDisplayPlot::marker_ref_level_visible
bool marker_ref_level_visible
Definition VectorDisplayPlot.h:36
VectorDisplayPlot::setMarkerLowerIntensityVisible
void setMarkerLowerIntensityVisible(bool visible)
VectorDisplayPlot::setMarkerUpperIntensityColor
void setMarkerUpperIntensityColor(QColor c)
VectorDisplayPlot::setMarkerRefLevelAmplitudeColor
void setMarkerRefLevelAmplitudeColor(QColor c)
VectorDisplayPlot::setBGColour
void setBGColour(QColor c)
VectorDisplayPlot::getMaxVecVisible
bool getMaxVecVisible() const
VectorDisplayPlot::max_vec_color
QColor max_vec_color
Definition VectorDisplayPlot.h:28
VectorDisplayPlot::marker_ref_level_color
QColor marker_ref_level_color
Definition VectorDisplayPlot.h:35
VectorDisplayPlot::getMarkerRefLevelAmplitudeColor
const QColor getMarkerRefLevelAmplitudeColor() const
VectorDisplayPlot::getMaxVecColor
const QColor getMaxVecColor() const
VectorDisplayPlot::marker_lower_intensity_visible
bool marker_lower_intensity_visible
Definition VectorDisplayPlot.h:32
VectorDisplayPlot::getMarkerLowerIntensityColor
const QColor getMarkerLowerIntensityColor() const
VectorDisplayPlot::setYaxis
void setYaxis(double min, double max) override
VectorDisplayPlot::marker_upper_intensity_visible
bool marker_upper_intensity_visible
Definition VectorDisplayPlot.h:34
VectorDisplayPlot::getMinVecVisible
bool getMinVecVisible() const
std
STL namespace.