Loading...
Searching...
No Matches
SpectrumGUIClass.h
Go to the documentation of this file.
/* -*- c++ -*- */
/*
* Copyright 2008-2011 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
* SPDX-License-Identifier: GPL-3.0-or-later
*
*/
#ifndef SPECTRUM_GUI_CLASS_HPP
#define SPECTRUM_GUI_CLASS_HPP
#include <gnuradio/qtgui/spectrumUpdateEvents.h>
#include <gnuradio/thread/thread.h>
#include <qapplication.h>
#include <qlabel.h>
#include <qslider.h>
#include <qwidget.h>
class SpectrumDisplayForm;
#include <gnuradio/qtgui/spectrumdisplayform.h>
#include <cmath>
#include <complex>
#include <string>
#include <vector>
/*!
* \brief QWidget class for controlling plotting.
* \ingroup qtgui_blk
*/
class SpectrumGUIClass
{
public:
SpectrumGUIClass(const uint64_t maxDataSize,
const uint64_t fftSize,
const double newCenterFrequency,
const double newStartFrequency,
const double newStopFrequency);
~SpectrumGUIClass();
// Disable copy/move because of raw QT pointers.
SpectrumGUIClass(const SpectrumGUIClass&) = delete;
SpectrumGUIClass(SpectrumGUIClass&&) = delete;
SpectrumGUIClass& operator=(const SpectrumGUIClass&) = delete;
SpectrumGUIClass& operator=(SpectrumGUIClass&&) = delete;
void reset();
void openSpectrumWindow(QWidget*,
const bool frequency = true,
const bool waterfall = true,
const bool time = true,
const bool constellation = true);
void setDisplayTitle(const std::string);
bool getWindowOpenFlag();
void setWindowOpenFlag(const bool);
void setFrequencyRange(const double, const double, const double);
double getStartFrequency();
double getStopFrequency();
double getCenterFrequency();
void updateWindow(const bool,
const float*,
const uint64_t,
const float*,
const uint64_t,
const float*,
const uint64_t,
const gr::high_res_timer_type,
const bool);
float getPowerValue();
void setPowerValue(const float);
int getWindowType();
void setWindowType(const int);
int getFFTSize();
int getFFTSizeIndex();
void setFFTSize(const int);
gr::high_res_timer_type getLastGUIUpdateTime();
void setLastGUIUpdateTime(const gr::high_res_timer_type);
unsigned int getPendingGUIUpdateEvents();
void incrementPendingGUIUpdateEvents();
void decrementPendingGUIUpdateEvents();
void resetPendingGUIUpdateEvents();
static const long MAX_FFT_SIZE;
static const long MIN_FFT_SIZE;
static const long DEFAULT_FFT_SIZE;
QWidget* qwidget();
void setTimeDomainAxis(double min, double max);
void setConstellationAxis(double xmin, double xmax, double ymin, double ymax);
void setConstellationPenSize(int size);
void setFrequencyAxis(double min, double max);
void setUpdateTime(double t);
void enableRFFreq(bool en);
bool checkClicked();
float getClickedFreq();
protected:
private:
gr::thread::mutex d_mutex;
const int64_t _dataPoints;
std::string _title;
double _centerFrequency;
double _startFrequency;
double _stopFrequency;
float _powerValue = 1;
bool _windowOpennedFlag = false;
int _windowType = 5;
int64_t _lastDataPointCount;
int _fftSize;
gr::high_res_timer_type _lastGUIUpdateTime = 0;
unsigned int _pendingGUIUpdateEventsCount = 0;
int _droppedEntriesCount = 0;
double _updateTime = 0.5;
SpectrumDisplayForm* _spectrumDisplayForm = nullptr; // Deleted by QT.
std::vector<float> _fftPoints;
std::vector<double> _realTimeDomainPoints;
std::vector<double> _imagTimeDomainPoints;
};
#endif /* SPECTRUM_GUI_CLASS_HPP */
SpectrumDisplayForm
Definition spectrumdisplayform.h:30
SpectrumGUIClass
QWidget class for controlling plotting.
Definition SpectrumGUIClass.h:35
SpectrumGUIClass::SpectrumGUIClass
SpectrumGUIClass(const uint64_t maxDataSize, const uint64_t fftSize, const double newCenterFrequency, const double newStartFrequency, const double newStopFrequency)
SpectrumGUIClass::setFFTSize
void setFFTSize(const int)
SpectrumGUIClass::setWindowType
void setWindowType(const int)
SpectrumGUIClass::getFFTSizeIndex
int getFFTSizeIndex()
SpectrumGUIClass::setDisplayTitle
void setDisplayTitle(const std::string)
SpectrumGUIClass::~SpectrumGUIClass
~SpectrumGUIClass()
SpectrumGUIClass::setPowerValue
void setPowerValue(const float)
SpectrumGUIClass::resetPendingGUIUpdateEvents
void resetPendingGUIUpdateEvents()
SpectrumGUIClass::setFrequencyAxis
void setFrequencyAxis(double min, double max)
SpectrumGUIClass::reset
void reset()
SpectrumGUIClass::setWindowOpenFlag
void setWindowOpenFlag(const bool)
SpectrumGUIClass::SpectrumGUIClass
SpectrumGUIClass(const SpectrumGUIClass &)=delete
SpectrumGUIClass::setConstellationPenSize
void setConstellationPenSize(int size)
SpectrumGUIClass::getCenterFrequency
double getCenterFrequency()
SpectrumGUIClass::getClickedFreq
float getClickedFreq()
SpectrumGUIClass::operator=
SpectrumGUIClass & operator=(const SpectrumGUIClass &)=delete
SpectrumGUIClass::DEFAULT_FFT_SIZE
static const long DEFAULT_FFT_SIZE
Definition SpectrumGUIClass.h:97
SpectrumGUIClass::setLastGUIUpdateTime
void setLastGUIUpdateTime(const gr::high_res_timer_type)
SpectrumGUIClass::openSpectrumWindow
void openSpectrumWindow(QWidget *, const bool frequency=true, const bool waterfall=true, const bool time=true, const bool constellation=true)
SpectrumGUIClass::MIN_FFT_SIZE
static const long MIN_FFT_SIZE
Definition SpectrumGUIClass.h:96
SpectrumGUIClass::incrementPendingGUIUpdateEvents
void incrementPendingGUIUpdateEvents()
SpectrumGUIClass::getWindowOpenFlag
bool getWindowOpenFlag()
SpectrumGUIClass::getLastGUIUpdateTime
gr::high_res_timer_type getLastGUIUpdateTime()
SpectrumGUIClass::setConstellationAxis
void setConstellationAxis(double xmin, double xmax, double ymin, double ymax)
SpectrumGUIClass::setFrequencyRange
void setFrequencyRange(const double, const double, const double)
SpectrumGUIClass::qwidget
QWidget * qwidget()
SpectrumGUIClass::decrementPendingGUIUpdateEvents
void decrementPendingGUIUpdateEvents()
SpectrumGUIClass::getWindowType
int getWindowType()
SpectrumGUIClass::MAX_FFT_SIZE
static const long MAX_FFT_SIZE
Definition SpectrumGUIClass.h:95
SpectrumGUIClass::setTimeDomainAxis
void setTimeDomainAxis(double min, double max)
SpectrumGUIClass::enableRFFreq
void enableRFFreq(bool en)
SpectrumGUIClass::updateWindow
void updateWindow(const bool, const float *, const uint64_t, const float *, const uint64_t, const float *, const uint64_t, const gr::high_res_timer_type, const bool)
SpectrumGUIClass::getPowerValue
float getPowerValue()
SpectrumGUIClass::getStopFrequency
double getStopFrequency()
SpectrumGUIClass::checkClicked
bool checkClicked()
SpectrumGUIClass::operator=
SpectrumGUIClass & operator=(SpectrumGUIClass &&)=delete
SpectrumGUIClass::setUpdateTime
void setUpdateTime(double t)
SpectrumGUIClass::SpectrumGUIClass
SpectrumGUIClass(SpectrumGUIClass &&)=delete
SpectrumGUIClass::getFFTSize
int getFFTSize()
SpectrumGUIClass::getStartFrequency
double getStartFrequency()
SpectrumGUIClass::getPendingGUIUpdateEvents
unsigned int getPendingGUIUpdateEvents()
std::vector
STL class.
Definition vector_docstub.h:11
gr::thread::mutex
boost::mutex mutex
Definition thread.h:37
gr::high_res_timer_type
signed long long high_res_timer_type
Typedef for the timer tick count.
Definition high_res_timer.h:40
spectrumUpdateEvents.h
spectrumdisplayform.h
thread.h