summaryrefslogtreecommitdiff
path: root/gr-qtgui/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'gr-qtgui/src/lib')
-rw-r--r--gr-qtgui/src/lib/ConstellationDisplayPlot.cc22
-rw-r--r--gr-qtgui/src/lib/ConstellationDisplayPlot.h9
-rw-r--r--gr-qtgui/src/lib/FrequencyDisplayPlot.cc8
-rw-r--r--gr-qtgui/src/lib/FrequencyDisplayPlot.h2
-rw-r--r--gr-qtgui/src/lib/TimeDomainDisplayPlot.cc13
-rw-r--r--gr-qtgui/src/lib/TimeDomainDisplayPlot.h3
-rw-r--r--gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc91
-rw-r--r--gr-qtgui/src/lib/Waterfall3DDisplayPlot.h29
-rw-r--r--gr-qtgui/src/lib/WaterfallDisplayPlot.cc149
-rw-r--r--gr-qtgui/src/lib/WaterfallDisplayPlot.h3
-rw-r--r--gr-qtgui/src/lib/spectrumdisplayform.ccbin30549 -> 27246 bytes
-rw-r--r--gr-qtgui/src/lib/spectrumdisplayform.h2
-rw-r--r--gr-qtgui/src/lib/spectrumdisplayform.ui1388
13 files changed, 972 insertions, 747 deletions
diff --git a/gr-qtgui/src/lib/ConstellationDisplayPlot.cc b/gr-qtgui/src/lib/ConstellationDisplayPlot.cc
index 10355f9f0..792096ded 100644
--- a/gr-qtgui/src/lib/ConstellationDisplayPlot.cc
+++ b/gr-qtgui/src/lib/ConstellationDisplayPlot.cc
@@ -32,7 +32,9 @@ protected:
}
};
-ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent):QwtPlot(parent){
+ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent)
+ : QwtPlot(parent)
+{
timespec_reset(&_lastReplot);
resize(parent->width(), parent->height());
@@ -106,7 +108,8 @@ ConstellationDisplayPlot::ConstellationDisplayPlot(QWidget* parent):QwtPlot(pare
this, SLOT( LegendEntryChecked(QwtPlotItem *, bool ) ));
}
-ConstellationDisplayPlot::~ConstellationDisplayPlot(){
+ConstellationDisplayPlot::~ConstellationDisplayPlot()
+{
delete[] _realDataPoints;
delete[] _imagDataPoints;
@@ -149,7 +152,16 @@ void ConstellationDisplayPlot::replot(){
}
}
-void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints, const double* imagDataPoints, const int64_t numDataPoints){
+void
+ConstellationDisplayPlot::resizeSlot( QSize *s )
+{
+ resize(s->width(), s->height());
+}
+
+void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints,
+ const double* imagDataPoints,
+ const int64_t numDataPoints)
+{
if(numDataPoints > 0){
if(numDataPoints != _numPoints){
@@ -177,7 +189,9 @@ void ConstellationDisplayPlot::PlotNewData(const double* realDataPoints, const d
}
}
-void ConstellationDisplayPlot::LegendEntryChecked(QwtPlotItem* plotItem, bool on){
+void
+ConstellationDisplayPlot::LegendEntryChecked(QwtPlotItem* plotItem, bool on)
+{
plotItem->setVisible(!on);
}
diff --git a/gr-qtgui/src/lib/ConstellationDisplayPlot.h b/gr-qtgui/src/lib/ConstellationDisplayPlot.h
index 612cd2b39..1b73e7cc6 100644
--- a/gr-qtgui/src/lib/ConstellationDisplayPlot.h
+++ b/gr-qtgui/src/lib/ConstellationDisplayPlot.h
@@ -14,14 +14,16 @@
#include <highResTimeFunctions.h>
#include <qwt_symbol.h>
-class ConstellationDisplayPlot:public QwtPlot{
+class ConstellationDisplayPlot : public QwtPlot
+{
Q_OBJECT
public:
ConstellationDisplayPlot(QWidget*);
virtual ~ConstellationDisplayPlot();
- void PlotNewData(const double* realDataPoints, const double* imagDataPoints,
+ void PlotNewData(const double* realDataPoints,
+ const double* imagDataPoints,
const int64_t numDataPoints);
virtual void replot();
@@ -31,6 +33,9 @@ public:
void set_axis(double xmin, double xmax,
double ymin, double ymax);
+public slots:
+ void resizeSlot( QSize *s );
+
protected slots:
void LegendEntryChecked(QwtPlotItem *plotItem, bool on);
diff --git a/gr-qtgui/src/lib/FrequencyDisplayPlot.cc b/gr-qtgui/src/lib/FrequencyDisplayPlot.cc
index e299157f5..7deff8543 100644
--- a/gr-qtgui/src/lib/FrequencyDisplayPlot.cc
+++ b/gr-qtgui/src/lib/FrequencyDisplayPlot.cc
@@ -93,7 +93,7 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(QWidget* parent)
timespec_reset(&_lastReplot);
resize(parent->width(), parent->height());
-
+
_displayIntervalTime = (1.0/10.0); // 1/10 of a second between updates
_useCenterFrequencyFlag = false;
@@ -314,6 +314,12 @@ FrequencyDisplayPlot::replot()
_displayIntervalTime = differenceTime;
}
}
+
+void
+FrequencyDisplayPlot::resizeSlot( QSize *s )
+{
+ resize(s->width(), s->height());
+}
void
FrequencyDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDataPoints,
diff --git a/gr-qtgui/src/lib/FrequencyDisplayPlot.h b/gr-qtgui/src/lib/FrequencyDisplayPlot.h
index 5e8282962..785efe694 100644
--- a/gr-qtgui/src/lib/FrequencyDisplayPlot.h
+++ b/gr-qtgui/src/lib/FrequencyDisplayPlot.h
@@ -43,12 +43,14 @@ public:
void set_yaxis(double min, double max);
public slots:
+ void resizeSlot( QSize *e );
void SetLowerIntensityLevel(const double);
void SetUpperIntensityLevel(const double);
protected:
private:
+
void _resetXAxisPoints();
double _startFrequency;
diff --git a/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc b/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc
index 6d8ef6ee4..cb18b4418 100644
--- a/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc
+++ b/gr-qtgui/src/lib/TimeDomainDisplayPlot.cc
@@ -141,8 +141,8 @@ TimeDomainDisplayPlot::set_xaxis(double min, double max)
}
-void TimeDomainDisplayPlot::replot(){
-
+void TimeDomainDisplayPlot::replot()
+{
const timespec startTime = get_highres_clock();
QwtPlot::replot();
@@ -156,9 +156,16 @@ void TimeDomainDisplayPlot::replot(){
}
}
+void
+TimeDomainDisplayPlot::resizeSlot( QSize *s )
+{
+ resize(s->width(), s->height());
+}
+
void TimeDomainDisplayPlot::PlotNewData(const double* realDataPoints,
const double* imagDataPoints,
- const int64_t numDataPoints){
+ const int64_t numDataPoints)
+{
if(numDataPoints > 0){
if(numDataPoints != _numPoints){
diff --git a/gr-qtgui/src/lib/TimeDomainDisplayPlot.h b/gr-qtgui/src/lib/TimeDomainDisplayPlot.h
index 56d44539d..8d98abac6 100644
--- a/gr-qtgui/src/lib/TimeDomainDisplayPlot.h
+++ b/gr-qtgui/src/lib/TimeDomainDisplayPlot.h
@@ -30,6 +30,9 @@ public:
void set_yaxis(double min, double max);
void set_xaxis(double min, double max);
+public slots:
+ void resizeSlot( QSize *s );
+
protected slots:
void LegendEntryChecked(QwtPlotItem *plotItem, bool on);
diff --git a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc
index 1b6650613..f676cb4af 100644
--- a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc
+++ b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.cc
@@ -15,15 +15,21 @@ Waterfall3DColorMap::~Waterfall3DColorMap(){
}
-Qwt3D::RGBA Waterfall3DColorMap::operator()(double, double, double z)const{
+Qwt3D::RGBA
+Waterfall3DColorMap::operator()(double, double, double z) const
+{
return Qwt3D::RGBA(Qwt3D::Qt2GL(color(_interval, z)));
}
-void Waterfall3DColorMap::SetInterval(const double minValue, const double maxValue){
+void
+Waterfall3DColorMap::SetInterval(const double minValue, const double maxValue)
+{
_interval.setInterval(minValue, maxValue);
}
-Qwt3D::ColorVector& Waterfall3DColorMap::createVector(Qwt3D::ColorVector& vec) {
+Qwt3D::ColorVector&
+Waterfall3DColorMap::createVector(Qwt3D::ColorVector& vec)
+{
// Generate 100 interval values and then return those
Qwt3D::ColorVector colorVec;
for(unsigned int number = 0; number < 100; number++){
@@ -41,7 +47,8 @@ const int Waterfall3DDisplayPlot::INTENSITY_COLOR_MAP_TYPE_BLACK_HOT;
const int Waterfall3DDisplayPlot::INTENSITY_COLOR_MAP_TYPE_INCANDESCENT;
const int Waterfall3DDisplayPlot::INTENSITY_COLOR_MAP_TYPE_USER_DEFINED;
-Waterfall3DDisplayPlot::Waterfall3DDisplayPlot(QWidget* parent):Qwt3D::SurfacePlot(parent){
+Waterfall3DDisplayPlot::Waterfall3DDisplayPlot(QWidget* parent):Qwt3D::SurfacePlot(parent)
+{
_startFrequency = 0;
_stopFrequency = 4000;
@@ -76,11 +83,14 @@ Waterfall3DDisplayPlot::Waterfall3DDisplayPlot(QWidget* parent):Qwt3D::SurfacePl
enableMouse(true);
}
-Waterfall3DDisplayPlot::~Waterfall3DDisplayPlot(){
+Waterfall3DDisplayPlot::~Waterfall3DDisplayPlot()
+{
delete _waterfallData;
}
-void Waterfall3DDisplayPlot::Init(){
+void
+Waterfall3DDisplayPlot::Init()
+{
if(!_initialized && initializedGL()){
resize(parentWidget()->width(), parentWidget()->height());
@@ -97,7 +107,9 @@ void Waterfall3DDisplayPlot::Init(){
}
}
-void Waterfall3DDisplayPlot::Reset(){
+void
+Waterfall3DDisplayPlot::Reset()
+{
_waterfallData->ResizeData(_startFrequency, _stopFrequency, _numPoints);
_waterfallData->Reset();
@@ -116,7 +128,8 @@ Waterfall3DDisplayPlot::SetFrequencyRange(const double constStartFreq,
const double constStopFreq,
const double constCenterFreq,
const bool useCenterFrequencyFlag,
- const double units, const std::string &strunits)
+ const double units,
+ const std::string &strunits)
{
double startFreq = constStartFreq / units;
double stopFreq = constStopFreq / units;
@@ -138,8 +151,10 @@ Waterfall3DDisplayPlot::SetFrequencyRange(const double constStartFreq,
}
}
-bool Waterfall3DDisplayPlot::loadFromData(double** data, unsigned int columns, unsigned int rows
- ,double minx, double maxx, double miny, double maxy){
+bool
+Waterfall3DDisplayPlot::loadFromData(double** data, unsigned int columns, unsigned int rows
+ ,double minx, double maxx, double miny, double maxy)
+{
Qwt3D::GridData* gridPtr = (Qwt3D::GridData*)actualData_p;
@@ -196,15 +211,25 @@ bool Waterfall3DDisplayPlot::loadFromData(double** data, unsigned int columns, u
return true;
}
-double Waterfall3DDisplayPlot::GetStartFrequency()const{
+double
+Waterfall3DDisplayPlot::GetStartFrequency() const
+{
return _startFrequency;
}
-double Waterfall3DDisplayPlot::GetStopFrequency()const{
+double
+Waterfall3DDisplayPlot::GetStopFrequency() const
+{
return _stopFrequency;
}
-void Waterfall3DDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDataPoints, const double timePerFFT, const timespec timestamp, const int droppedFrames){
+void
+Waterfall3DDisplayPlot::PlotNewData(const double* dataPoints,
+ const int64_t numDataPoints,
+ const double timePerFFT,
+ const timespec timestamp,
+ const int droppedFrames)
+{
if(numDataPoints > 0){
if(numDataPoints != _numPoints){
_numPoints = numDataPoints;
@@ -238,7 +263,10 @@ void Waterfall3DDisplayPlot::PlotNewData(const double* dataPoints, const int64_t
}
}
-void Waterfall3DDisplayPlot::SetIntensityRange(const double minIntensity, const double maxIntensity){
+void
+Waterfall3DDisplayPlot::SetIntensityRange(const double minIntensity,
+ const double maxIntensity)
+{
_waterfallData->SetFloorValue(minIntensity);
_waterfallData->setMinZ(0);
_waterfallData->setMaxZ(maxIntensity-minIntensity);
@@ -248,11 +276,14 @@ void Waterfall3DDisplayPlot::SetIntensityRange(const double minIntensity, const
emit UpdatedLowerIntensityLevel(minIntensity);
emit UpdatedUpperIntensityLevel(maxIntensity);
- SetIntensityColorMapType(_intensityColorMapType, _userDefinedLowIntensityColor, _userDefinedLowIntensityColor, true);
+ SetIntensityColorMapType(_intensityColorMapType,
+ _userDefinedLowIntensityColor,
+ _userDefinedLowIntensityColor, true);
}
-void Waterfall3DDisplayPlot::replot(){
-
+void
+Waterfall3DDisplayPlot::replot()
+{
if(!_initialized){
Init();
}
@@ -283,11 +314,25 @@ void Waterfall3DDisplayPlot::replot(){
}
}
-int Waterfall3DDisplayPlot::GetIntensityColorMapType()const{
+void
+Waterfall3DDisplayPlot::resizeSlot( QSize *s )
+{
+ resize(s->width(), s->height());
+}
+
+int
+Waterfall3DDisplayPlot::GetIntensityColorMapType() const
+{
return _intensityColorMapType;
}
-void Waterfall3DDisplayPlot::SetIntensityColorMapType(const int newType, const QColor lowColor, const QColor highColor, const bool forceFlag, const bool noReplotFlag){
+void
+Waterfall3DDisplayPlot::SetIntensityColorMapType(const int newType,
+ const QColor lowColor,
+ const QColor highColor,
+ const bool forceFlag,
+ const bool noReplotFlag)
+{
if(((_intensityColorMapType != newType) || forceFlag) ||
((newType == INTENSITY_COLOR_MAP_TYPE_USER_DEFINED) &&
(lowColor.isValid() && highColor.isValid()))){
@@ -350,11 +395,15 @@ void Waterfall3DDisplayPlot::SetIntensityColorMapType(const int newType, const Q
}
}
-const QColor Waterfall3DDisplayPlot::GetUserDefinedLowIntensityColor()const{
+const QColor
+Waterfall3DDisplayPlot::GetUserDefinedLowIntensityColor() const
+{
return _userDefinedLowIntensityColor;
}
-const QColor Waterfall3DDisplayPlot::GetUserDefinedHighIntensityColor()const{
+const QColor
+Waterfall3DDisplayPlot::GetUserDefinedHighIntensityColor() const
+{
return _userDefinedHighIntensityColor;
}
diff --git a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h
index f46f260e3..272bdf697 100644
--- a/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h
+++ b/gr-qtgui/src/lib/Waterfall3DDisplayPlot.h
@@ -10,7 +10,8 @@
#include <qwt3d_color.h>
#include <qwt_color_map.h>
-class Waterfall3DColorMap:public Qwt3D::Color, public QwtLinearColorMap{
+class Waterfall3DColorMap: public Qwt3D::Color, public QwtLinearColorMap
+{
public:
Waterfall3DColorMap();
virtual ~Waterfall3DColorMap();
@@ -75,12 +76,14 @@ class Waterfall3DDisplayPlot:public Qwt3D::SurfacePlot{
virtual QString ticLabel(unsigned int idx) const{
if (idx<majors_p.size())
{
- const timespec markerTime = timespec_add(_plot->_dataTimestamp, -(_plot->_timePerFFT) * majors_p[idx]);
+ const timespec markerTime = timespec_add(_plot->_dataTimestamp,
+ -(_plot->_timePerFFT) * majors_p[idx]);
struct tm timeTm;
gmtime_r(&markerTime.tv_sec, &timeTm);
char* timeBuffer = new char[128];
- snprintf(timeBuffer, 128, "%02d:%02d:%02d.%03ld", timeTm.tm_hour, timeTm.tm_min, timeTm.tm_sec, (markerTime.tv_nsec / 1000000));
+ snprintf(timeBuffer, 128, "%02d:%02d:%02d.%03ld", timeTm.tm_hour,
+ timeTm.tm_min, timeTm.tm_sec, (markerTime.tv_nsec / 1000000));
QString returnBuffer(timeBuffer);
delete[] timeBuffer;
return returnBuffer;
@@ -100,10 +103,14 @@ class Waterfall3DDisplayPlot:public Qwt3D::SurfacePlot{
double _centerFrequency;
bool _useCenterFrequencyFlag;
public:
- FrequencyScale(bool useCenterFrequencyFlag, double centerFrequency):_centerFrequency(centerFrequency),_useCenterFrequencyFlag(useCenterFrequencyFlag){}
+ FrequencyScale(bool useCenterFrequencyFlag, double centerFrequency)
+ : _centerFrequency(centerFrequency),_useCenterFrequencyFlag(useCenterFrequencyFlag)
+ {}
+
virtual ~FrequencyScale(){}
- virtual QString ticLabel(unsigned int idx) const{
+ virtual QString ticLabel(unsigned int idx) const
+ {
if (idx<majors_p.size())
{
if(!_useCenterFrequencyFlag){
@@ -137,14 +144,18 @@ public:
double GetStartFrequency()const;
double GetStopFrequency()const;
- void PlotNewData(const double* dataPoints, const int64_t numDataPoints, const double timePerFFT, const timespec timestamp, const int droppedFrames);
+ void PlotNewData(const double* dataPoints, const int64_t numDataPoints,
+ const double timePerFFT, const timespec timestamp,
+ const int droppedFrames);
void SetIntensityRange(const double minIntensity, const double maxIntensity);
virtual void replot(void);
int GetIntensityColorMapType()const;
- void SetIntensityColorMapType( const int, const QColor, const QColor, const bool forceFlag = false, const bool noReplotFlag = false );
+ void SetIntensityColorMapType( const int, const QColor,
+ const QColor, const bool forceFlag = false,
+ const bool noReplotFlag = false );
const QColor GetUserDefinedLowIntensityColor()const;
const QColor GetUserDefinedHighIntensityColor()const;
@@ -154,6 +165,10 @@ public:
static const int INTENSITY_COLOR_MAP_TYPE_INCANDESCENT = 3;
static const int INTENSITY_COLOR_MAP_TYPE_USER_DEFINED = 4;
+public slots:
+ void resizeSlot( QSize *s );
+
+
signals:
void UpdatedLowerIntensityLevel(const double);
void UpdatedUpperIntensityLevel(const double);
diff --git a/gr-qtgui/src/lib/WaterfallDisplayPlot.cc b/gr-qtgui/src/lib/WaterfallDisplayPlot.cc
index ad167f097..f6d0cc0ba 100644
--- a/gr-qtgui/src/lib/WaterfallDisplayPlot.cc
+++ b/gr-qtgui/src/lib/WaterfallDisplayPlot.cc
@@ -15,28 +15,33 @@
class FreqOffsetAndPrecisionClass
{
public:
- FreqOffsetAndPrecisionClass(const int freqPrecision){
+ FreqOffsetAndPrecisionClass(const int freqPrecision)
+ {
_frequencyPrecision = freqPrecision;
_centerFrequency = 0;
}
- virtual ~FreqOffsetAndPrecisionClass(){
-
+ virtual ~FreqOffsetAndPrecisionClass()
+ {
}
- virtual unsigned int GetFrequencyPrecision()const{
+ virtual unsigned int GetFrequencyPrecision() const
+ {
return _frequencyPrecision;
}
- virtual void SetFrequencyPrecision(const unsigned int newPrecision){
+ virtual void SetFrequencyPrecision(const unsigned int newPrecision)
+ {
_frequencyPrecision = newPrecision;
}
- virtual double GetCenterFrequency()const{
+ virtual double GetCenterFrequency() const
+ {
return _centerFrequency;
}
- virtual void SetCenterFrequency(const double newFreq){
+ virtual void SetCenterFrequency(const double newFreq)
+ {
_centerFrequency = newFreq;
}
@@ -50,19 +55,23 @@ private:
class WaterfallFreqDisplayScaleDraw: public QwtScaleDraw, public FreqOffsetAndPrecisionClass{
public:
- WaterfallFreqDisplayScaleDraw(const unsigned int precision):QwtScaleDraw(), FreqOffsetAndPrecisionClass(precision){
-
+ WaterfallFreqDisplayScaleDraw(const unsigned int precision)
+ : QwtScaleDraw(), FreqOffsetAndPrecisionClass(precision)
+ {
}
- virtual ~WaterfallFreqDisplayScaleDraw(){
-
+ virtual ~WaterfallFreqDisplayScaleDraw()
+ {
}
- QwtText label(double value)const{
- return QString("%1").arg((value + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0), 0, 'f', GetFrequencyPrecision());
+ QwtText label(double value) const
+ {
+ return QString("%1").arg((value + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0),
+ 0, 'f', GetFrequencyPrecision());
}
- virtual void initiateUpdate(){
+ virtual void initiateUpdate()
+ {
invalidateCache();
}
@@ -75,29 +84,33 @@ private:
class TimeScaleData
{
public:
- TimeScaleData(){
+ TimeScaleData()
+ {
timespec_reset(&_zeroTime);
_secondsPerLine = 1.0;
-
}
- virtual ~TimeScaleData(){
-
+ virtual ~TimeScaleData()
+ {
}
- virtual timespec GetZeroTime()const{
+ virtual timespec GetZeroTime() const
+ {
return _zeroTime;
}
- virtual void SetZeroTime(const timespec newTime){
+ virtual void SetZeroTime(const timespec newTime)
+ {
_zeroTime = newTime;
}
- virtual void SetSecondsPerLine(const double newTime){
+ virtual void SetSecondsPerLine(const double newTime)
+ {
_secondsPerLine = newTime;
}
- virtual double GetSecondsPerLine()const{
+ virtual double GetSecondsPerLine() const
+ {
return _secondsPerLine;
}
@@ -113,27 +126,32 @@ private:
class QwtTimeScaleDraw: public QwtScaleDraw, public TimeScaleData
{
public:
- QwtTimeScaleDraw():QwtScaleDraw(),TimeScaleData(){
-
+ QwtTimeScaleDraw():QwtScaleDraw(),TimeScaleData()
+ {
}
- virtual ~QwtTimeScaleDraw(){
-
+ virtual ~QwtTimeScaleDraw()
+ {
}
- virtual QwtText label(double value)const{
+ virtual QwtText label(double value) const
+ {
QwtText returnLabel("");
timespec lineTime = timespec_add(GetZeroTime(), (-value) * GetSecondsPerLine());
struct tm timeTm;
gmtime_r(&lineTime.tv_sec, &timeTm);
- returnLabel = (QString("").sprintf("%04d/%02d/%02d\n%02d:%02d:%02d.%03ld", timeTm.tm_year+1900, timeTm.tm_mon+1, timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min, timeTm.tm_sec, lineTime.tv_nsec/1000000));
-
+ returnLabel = (QString("").sprintf("%04d/%02d/%02d\n%02d:%02d:%02d.%03ld",
+ timeTm.tm_year+1900, timeTm.tm_mon+1,
+ timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min,
+ timeTm.tm_sec, lineTime.tv_nsec/1000000));
return returnLabel;
}
- virtual void initiateUpdate(){
- // Do this in one call rather than when zeroTime and secondsPerLine updates is to prevent the display from being updated too often...
+ virtual void initiateUpdate()
+ {
+ // Do this in one call rather than when zeroTime and secondsPerLine
+ // updates is to prevent the display from being updated too often...
invalidateCache();
}
@@ -146,16 +164,19 @@ private:
class WaterfallZoomer: public QwtPlotZoomer, public TimeScaleData, public FreqOffsetAndPrecisionClass
{
public:
- WaterfallZoomer(QwtPlotCanvas* canvas, const unsigned int freqPrecision):QwtPlotZoomer(canvas), TimeScaleData(), FreqOffsetAndPrecisionClass(freqPrecision)
+ WaterfallZoomer(QwtPlotCanvas* canvas, const unsigned int freqPrecision)
+ : QwtPlotZoomer(canvas), TimeScaleData(),
+ FreqOffsetAndPrecisionClass(freqPrecision)
{
setTrackerMode(QwtPicker::AlwaysOn);
}
- virtual ~WaterfallZoomer(){
-
+ virtual ~WaterfallZoomer()
+ {
}
- virtual void updateTrackerText(){
+ virtual void updateTrackerText()
+ {
updateDisplay();
}
@@ -167,7 +188,10 @@ protected:
timespec lineTime = timespec_add(GetZeroTime(), (-p.y()) * GetSecondsPerLine());
struct tm timeTm;
gmtime_r(&lineTime.tv_sec, &timeTm);
- yLabel = (QString("").sprintf("%04d/%02d/%02d %02d:%02d:%02d.%03ld", timeTm.tm_year+1900, timeTm.tm_mon+1, timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min, timeTm.tm_sec, lineTime.tv_nsec/1000000));
+ yLabel = (QString("").sprintf("%04d/%02d/%02d %02d:%02d:%02d.%03ld",
+ timeTm.tm_year+1900, timeTm.tm_mon+1,
+ timeTm.tm_mday, timeTm.tm_hour, timeTm.tm_min,
+ timeTm.tm_sec, lineTime.tv_nsec/1000000));
QwtText t(QString("%1 %2, %3").arg((p.x() + GetCenterFrequency()) / ((GetFrequencyPrecision() == 0) ? 1.0 : 1000.0), 0, 'f', GetFrequencyPrecision()).arg( (GetFrequencyPrecision() == 0) ? "Hz" : "kHz").arg(yLabel));
@@ -312,15 +336,25 @@ WaterfallDisplayPlot::SetFrequencyRange(const double constStartFreq,
}
-double WaterfallDisplayPlot::GetStartFrequency()const{
+double
+WaterfallDisplayPlot::GetStartFrequency() const
+{
return _startFrequency;
}
-double WaterfallDisplayPlot::GetStopFrequency()const{
+double
+WaterfallDisplayPlot::GetStopFrequency() const
+{
return _stopFrequency;
}
-void WaterfallDisplayPlot::PlotNewData(const double* dataPoints, const int64_t numDataPoints, const double timePerFFT, const timespec timestamp, const int droppedFrames){
+void
+WaterfallDisplayPlot::PlotNewData(const double* dataPoints,
+ const int64_t numDataPoints,
+ const double timePerFFT,
+ const timespec timestamp,
+ const int droppedFrames)
+{
if(numDataPoints > 0){
if(numDataPoints != _numPoints){
_numPoints = numDataPoints;
@@ -363,7 +397,10 @@ void WaterfallDisplayPlot::PlotNewData(const double* dataPoints, const int64_t n
}
}
-void WaterfallDisplayPlot::SetIntensityRange(const double minIntensity, const double maxIntensity){
+void
+WaterfallDisplayPlot::SetIntensityRange(const double minIntensity,
+ const double maxIntensity)
+{
_waterfallData->setRange(QwtDoubleInterval(minIntensity, maxIntensity));
emit UpdatedLowerIntensityLevel(minIntensity);
@@ -372,7 +409,9 @@ void WaterfallDisplayPlot::SetIntensityRange(const double minIntensity, const do
_UpdateIntensityRangeDisplay();
}
-void WaterfallDisplayPlot::replot(){
+void
+WaterfallDisplayPlot::replot()
+{
const timespec startTime = get_highres_clock();
QwtTimeScaleDraw* timeScale = (QwtTimeScaleDraw*)axisScaleDraw(QwtPlot::yLeft);
@@ -406,11 +445,23 @@ void WaterfallDisplayPlot::replot(){
}
}
-int WaterfallDisplayPlot::GetIntensityColorMapType()const{
+void
+WaterfallDisplayPlot::resizeSlot( QSize *s )
+{
+ resize(s->width(), s->height());
+}
+
+int
+WaterfallDisplayPlot::GetIntensityColorMapType() const
+{
return _intensityColorMapType;
}
-void WaterfallDisplayPlot::SetIntensityColorMapType(const int newType, const QColor lowColor, const QColor highColor){
+void
+WaterfallDisplayPlot::SetIntensityColorMapType(const int newType,
+ const QColor lowColor,
+ const QColor highColor)
+{
if((_intensityColorMapType != newType) ||
((newType == INTENSITY_COLOR_MAP_TYPE_USER_DEFINED) &&
(lowColor.isValid() && highColor.isValid()))){
@@ -458,15 +509,21 @@ void WaterfallDisplayPlot::SetIntensityColorMapType(const int newType, const QCo
}
}
-const QColor WaterfallDisplayPlot::GetUserDefinedLowIntensityColor()const{
+const QColor
+WaterfallDisplayPlot::GetUserDefinedLowIntensityColor() const
+{
return _userDefinedLowIntensityColor;
}
-const QColor WaterfallDisplayPlot::GetUserDefinedHighIntensityColor()const{
+const QColor
+WaterfallDisplayPlot::GetUserDefinedHighIntensityColor() const
+{
return _userDefinedHighIntensityColor;
}
-void WaterfallDisplayPlot::_UpdateIntensityRangeDisplay(){
+void
+WaterfallDisplayPlot::_UpdateIntensityRangeDisplay()
+{
QwtScaleWidget *rightAxis = axisWidget(QwtPlot::yRight);
rightAxis->setTitle("Intensity (dB)");
rightAxis->setColorBarEnabled(true);
diff --git a/gr-qtgui/src/lib/WaterfallDisplayPlot.h b/gr-qtgui/src/lib/WaterfallDisplayPlot.h
index fbbb69a5b..bb87fb09f 100644
--- a/gr-qtgui/src/lib/WaterfallDisplayPlot.h
+++ b/gr-qtgui/src/lib/WaterfallDisplayPlot.h
@@ -45,6 +45,9 @@ public:
static const int INTENSITY_COLOR_MAP_TYPE_INCANDESCENT = 3;
static const int INTENSITY_COLOR_MAP_TYPE_USER_DEFINED = 4;
+public slots:
+ void resizeSlot( QSize *s );
+
signals:
void UpdatedLowerIntensityLevel(const double);
void UpdatedUpperIntensityLevel(const double);
diff --git a/gr-qtgui/src/lib/spectrumdisplayform.cc b/gr-qtgui/src/lib/spectrumdisplayform.cc
index 36097d975..6d4329e44 100644
--- a/gr-qtgui/src/lib/spectrumdisplayform.cc
+++ b/gr-qtgui/src/lib/spectrumdisplayform.cc
Binary files differ
diff --git a/gr-qtgui/src/lib/spectrumdisplayform.h b/gr-qtgui/src/lib/spectrumdisplayform.h
index dbbf2567e..51ca365e4 100644
--- a/gr-qtgui/src/lib/spectrumdisplayform.h
+++ b/gr-qtgui/src/lib/spectrumdisplayform.h
@@ -36,7 +36,7 @@ class SpectrumDisplayForm : public QWidget, public Ui::SpectrumDisplayForm
public slots:
void resizeEvent( QResizeEvent * e );
void customEvent( QEvent * e );
- void AvgLineEdit_textChanged( const QString & valueString );
+ void AvgLineEdit_valueChanged( int valueString );
void MaxHoldCheckBox_toggled( bool newState );
void MinHoldCheckBox_toggled( bool newState );
void MinHoldResetBtn_clicked();
diff --git a/gr-qtgui/src/lib/spectrumdisplayform.ui b/gr-qtgui/src/lib/spectrumdisplayform.ui
index 9324f150b..1458488a0 100644
--- a/gr-qtgui/src/lib/spectrumdisplayform.ui
+++ b/gr-qtgui/src/lib/spectrumdisplayform.ui
@@ -5,687 +5,758 @@
<rect>
<x>0</x>
<y>0</y>
- <width>633</width>
- <height>436</height>
+ <width>657</width>
+ <height>536</height>
</rect>
</property>
<property name="windowTitle" >
<string>Spectrum Display</string>
</property>
- <widget class="QCheckBox" name="UseRFFrequenciesCheckBox" >
- <property name="geometry" >
- <rect>
- <x>10</x>
- <y>385</y>
- <width>180</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>Display RF Frequencies</string>
- </property>
- </widget>
- <widget class="QComboBox" name="WindowComboBox" >
- <property name="geometry" >
- <rect>
- <x>105</x>
- <y>410</y>
- <width>170</width>
- <height>20</height>
- </rect>
- </property>
- <property name="font" >
- <font>
- <pointsize>9</pointsize>
- </font>
- </property>
- <item>
- <property name="text" >
- <string>Hamming</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Hann</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Blackman</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Rectangular</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Kaiser</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Blackman-harris</string>
- </property>
- </item>
- </widget>
- <widget class="QLabel" name="WindowLbl" >
- <property name="geometry" >
- <rect>
- <x>10</x>
- <y>410</y>
- <width>90</width>
- <height>17</height>
- </rect>
- </property>
- <property name="text" >
- <string>Window:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QLabel" name="FFTSizeLabel" >
- <property name="geometry" >
- <rect>
- <x>405</x>
- <y>385</y>
- <width>116</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>FFT Size:</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QComboBox" name="FFTSizeComboBox" >
- <property name="geometry" >
- <rect>
- <x>525</x>
- <y>385</y>
- <width>100</width>
- <height>20</height>
- </rect>
- </property>
- <item>
- <property name="text" >
- <string>1024</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>2048</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>4096</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>8192</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>16384</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>32768</string>
- </property>
- </item>
- </widget>
- <widget class="QTabWidget" name="SpectrumTypeTab" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>0</y>
- <width>630</width>
- <height>380</height>
- </rect>
- </property>
- <property name="currentIndex" >
- <number>0</number>
- </property>
- <widget class="QWidget" name="FrequencyPage" >
- <attribute name="title" >
- <string>Frequency Display</string>
- </attribute>
- <widget class="QLineEdit" name="PowerLineEdit" >
- <property name="geometry" >
- <rect>
- <x>480</x>
- <y>320</y>
- <width>60</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>1</string>
- </property>
- </widget>
- <widget class="QCheckBox" name="MinHoldCheckBox" >
- <property name="geometry" >
- <rect>
- <x>10</x>
- <y>325</y>
- <width>95</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>Min Hold</string>
- </property>
- <property name="checked" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QLabel" name="AvgLabel" >
- <property name="geometry" >
- <rect>
- <x>545</x>
- <y>300</y>
- <width>72</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>Average</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignCenter</set>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QPushButton" name="MinHoldResetBtn" >
- <property name="geometry" >
- <rect>
- <x>105</x>
- <y>325</y>
- <width>61</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>Reset</string>
- </property>
- </widget>
- <widget class="QLineEdit" name="AvgLineEdit" >
- <property name="geometry" >
- <rect>
- <x>550</x>
- <y>320</y>
- <width>60</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>0</string>
- </property>
- </widget>
- <widget class="QLabel" name="PowerLabel" >
- <property name="geometry" >
- <rect>
- <x>475</x>
- <y>300</y>
- <width>72</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>Power</string>
- </property>
- <property name="alignment" >
- <set>Qt::AlignCenter</set>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QPushButton" name="MaxHoldResetBtn" >
- <property name="geometry" >
- <rect>
- <x>105</x>
- <y>300</y>
- <width>61</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>Reset</string>
- </property>
- </widget>
- <widget class="QCheckBox" name="MaxHoldCheckBox" >
- <property name="geometry" >
- <rect>
- <x>10</x>
- <y>300</y>
- <width>95</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>Max Hold</string>
- </property>
- <property name="checked" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QFrame" name="FrequencyPlotDisplayFrame" >
- <property name="geometry" >
- <rect>
- <x>5</x>
- <y>5</y>
- <width>620</width>
- <height>290</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- </widget>
- </widget>
- <widget class="QWidget" name="WaterfallPage" >
- <attribute name="title" >
- <string>Waterfall Display</string>
- </attribute>
- <widget class="QLabel" name="textLabel1" >
- <property name="geometry" >
- <rect>
- <x>5</x>
- <y>0</y>
- <width>85</width>
- <height>21</height>
- </rect>
- </property>
- <property name="text" >
- <string>&lt;font size="-2">Intensity Display:&lt;/font></string>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QComboBox" name="WaterfallIntensityComboBox" >
- <property name="geometry" >
- <rect>
- <x>90</x>
- <y>0</y>
- <width>121</width>
- <height>25</height>
- </rect>
+ <layout class="QGridLayout" name="gridLayout" >
+ <item row="1" column="3" >
+ <widget class="QComboBox" name="FFTSizeComboBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>120</width>
+ <height>16777215</height>
+ </size>
</property>
<item>
<property name="text" >
- <string>Color</string>
+ <string>1024</string>
</property>
</item>
<item>
<property name="text" >
- <string>White Hot</string>
+ <string>2048</string>
</property>
</item>
<item>
<property name="text" >
- <string>Black Hot</string>
+ <string>4096</string>
</property>
</item>
<item>
<property name="text" >
- <string>Incandescent</string>
+ <string>8192</string>
</property>
</item>
<item>
<property name="text" >
- <string>User Defined</string>
+ <string>16384</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>32768</string>
</property>
</item>
</widget>
- <widget class="QwtWheel" name="WaterfallMaximumIntensityWheel" >
- <property name="geometry" >
- <rect>
- <x>215</x>
- <y>0</y>
- <width>335</width>
- <height>24</height>
- </rect>
- </property>
- <property name="mouseTracking" >
- <bool>true</bool>
- </property>
- <property name="focusPolicy" >
- <enum>Qt::WheelFocus</enum>
- </property>
- <property name="valid" >
- <bool>true</bool>
- </property>
- <property name="totalAngle" >
- <double>200.000000000000000</double>
- </property>
- <property name="viewAngle" >
- <double>20.000000000000000</double>
- </property>
- <property name="mass" >
- <double>0.000000000000000</double>
- </property>
- </widget>
- <widget class="QLabel" name="WaterfallMaximumIntensityLabel" >
- <property name="geometry" >
- <rect>
- <x>563</x>
- <y>3</y>
- <width>55</width>
- <height>21</height>
- </rect>
- </property>
- <property name="text" >
- <string>100 dB</string>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QFrame" name="WaterfallPlotDisplayFrame" >
- <property name="geometry" >
- <rect>
- <x>5</x>
- <y>30</y>
- <width>615</width>
- <height>295</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- </widget>
- <widget class="QwtWheel" name="WaterfallMinimumIntensityWheel" >
- <property name="geometry" >
- <rect>
- <x>215</x>
- <y>325</y>
- <width>335</width>
- <height>24</height>
- </rect>
- </property>
- <property name="valid" >
- <bool>true</bool>
- </property>
- <property name="totalAngle" >
- <double>200.000000000000000</double>
- </property>
- <property name="viewAngle" >
- <double>20.000000000000000</double>
- </property>
- <property name="mass" >
- <double>0.000000000000000</double>
- </property>
- </widget>
- <widget class="QLabel" name="WaterfallMinimumIntensityLabel" >
- <property name="geometry" >
- <rect>
- <x>565</x>
- <y>325</y>
- <width>55</width>
- <height>20</height>
- </rect>
- </property>
- <property name="text" >
- <string>-100 dB</string>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QPushButton" name="WaterfallAutoScaleBtn" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>325</y>
- <width>135</width>
- <height>21</height>
- </rect>
- </property>
- <property name="toolTip" >
- <string>Scales the Intensity to the current data extremes.</string>
- </property>
- <property name="text" >
- <string>Auto Scale</string>
- </property>
- </widget>
- </widget>
- <widget class="QWidget" name="Waterfall3DPage" >
- <attribute name="title" >
- <string>3D Waterfall Display</string>
- </attribute>
- <widget class="QLabel" name="textLabel1_2" >
- <property name="geometry" >
- <rect>
- <x>5</x>
- <y>0</y>
- <width>85</width>
- <height>21</height>
- </rect>
- </property>
+ </item>
+ <item row="1" column="2" >
+ <widget class="QLabel" name="FFTSizeLabel" >
<property name="text" >
- <string>&lt;font size="-2">Intensity Display:&lt;/font></string>
+ <string>FFT Size:</string>
</property>
- <property name="wordWrap" >
- <bool>false</bool>
- </property>
- </widget>
- <widget class="QLabel" name="Waterfall3DMaximumIntensityLabel" >
- <property name="geometry" >
- <rect>
- <x>563</x>
- <y>3</y>
- <width>55</width>
- <height>21</height>
- </rect>
- </property>
- <property name="text" >
- <string>100 dB</string>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
<property name="wordWrap" >
<bool>false</bool>
</property>
</widget>
- <widget class="QPushButton" name="Waterfall3DAutoScaleBtn" >
- <property name="geometry" >
- <rect>
- <x>0</x>
- <y>325</y>
- <width>135</width>
- <height>21</height>
- </rect>
- </property>
- <property name="toolTip" >
- <string>Scales the Intensity to the current data extremes.</string>
- </property>
- <property name="text" >
- <string>Auto Scale</string>
- </property>
- </widget>
- <widget class="QwtWheel" name="Waterfall3DMinimumIntensityWheel" >
- <property name="geometry" >
- <rect>
- <x>215</x>
- <y>325</y>
- <width>335</width>
- <height>24</height>
- </rect>
- </property>
- <property name="valid" >
- <bool>true</bool>
- </property>
- <property name="totalAngle" >
- <double>200.000000000000000</double>
- </property>
- <property name="viewAngle" >
- <double>20.000000000000000</double>
- </property>
- <property name="mass" >
- <double>0.000000000000000</double>
- </property>
- </widget>
- <widget class="QLabel" name="Waterfall3DMinimumIntensityLabel" >
- <property name="geometry" >
- <rect>
- <x>565</x>
- <y>325</y>
- <width>55</width>
- <height>20</height>
- </rect>
- </property>
+ </item>
+ <item row="1" column="0" >
+ <widget class="QCheckBox" name="UseRFFrequenciesCheckBox" >
<property name="text" >
- <string>-100 dB</string>
- </property>
- <property name="wordWrap" >
- <bool>false</bool>
+ <string>Display RF Frequencies</string>
</property>
</widget>
- <widget class="QFrame" name="Waterfall3DPlotDisplayFrame" >
- <property name="geometry" >
- <rect>
- <x>5</x>
- <y>30</y>
- <width>615</width>
- <height>295</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- </widget>
- <widget class="QComboBox" name="Waterfall3DIntensityComboBox" >
- <property name="geometry" >
- <rect>
- <x>90</x>
- <y>0</y>
- <width>121</width>
- <height>25</height>
- </rect>
- </property>
- <item>
- <property name="text" >
- <string>Color</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>White Hot</string>
- </property>
- </item>
- <item>
- <property name="text" >
- <string>Black Hot</string>
- </property>
- </item>
+ </item>
+ <item row="3" column="0" >
+ <layout class="QHBoxLayout" name="horizontalLayout" >
<item>
- <property name="text" >
- <string>Incandescent</string>
- </property>
+ <widget class="QLabel" name="WindowLbl" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text" >
+ <string>Window:</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
</item>
<item>
- <property name="text" >
- <string>User Defined</string>
- </property>
+ <widget class="QComboBox" name="WindowComboBox" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>120</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>120</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="font" >
+ <font>
+ <pointsize>9</pointsize>
+ </font>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Hamming</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Hann</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Blackman</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Rectangular</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Kaiser</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Blackman-harris</string>
+ </property>
+ </item>
+ </widget>
</item>
+ </layout>
+ </item>
+ <item row="0" column="0" colspan="4" >
+ <widget class="QTabWidget" name="SpectrumTypeTab" >
+ <property name="currentIndex" >
+ <number>0</number>
+ </property>
+ <widget class="QWidget" name="FrequencyPage" >
+ <attribute name="title" >
+ <string>Frequency Display</string>
+ </attribute>
+ <layout class="QVBoxLayout" name="verticalLayout" >
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout_2" >
+ <item>
+ <widget class="QFrame" name="FrequencyPlotDisplayFrame" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Preferred" hsizetype="Preferred" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>615</width>
+ <height>332</height>
+ </size>
+ </property>
+ <property name="sizeIncrement" >
+ <size>
+ <width>1</width>
+ <height>1</height>
+ </size>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Plain</enum>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <layout class="QGridLayout" name="gridLayout_2" >
+ <item row="1" column="0" >
+ <widget class="QCheckBox" name="MaxHoldCheckBox" >
+ <property name="text" >
+ <string>Max Hold</string>
+ </property>
+ <property name="checked" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" >
+ <widget class="QCheckBox" name="MinHoldCheckBox" >
+ <property name="text" >
+ <string>Min Hold</string>
+ </property>
+ <property name="checked" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="3" >
+ <widget class="QLabel" name="PowerLabel" >
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>50</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Power</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="1" >
+ <widget class="QPushButton" name="MaxHoldResetBtn" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>25</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Reset</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="4" >
+ <widget class="QLabel" name="AvgLabel" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>62</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Average</string>
+ </property>
+ <property name="alignment" >
+ <set>Qt::AlignCenter</set>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="1" >
+ <widget class="QPushButton" name="MinHoldResetBtn" >
+ <property name="text" >
+ <string>Reset</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="4" >
+ <widget class="QSpinBox" name="AvgLineEdit" />
+ </item>
+ <item row="2" column="3" >
+ <widget class="QLineEdit" name="PowerLineEdit" >
+ <property name="sizePolicy" >
+ <sizepolicy vsizetype="Fixed" hsizetype="Fixed" >
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="minimumSize" >
+ <size>
+ <width>50</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>50</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>1</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="2" >
+ <spacer name="horizontalSpacer_2" >
+ <property name="orientation" >
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="sizeHint" stdset="0" >
+ <size>
+ <width>325</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="WaterfallPage" >
+ <attribute name="title" >
+ <string>Waterfall Display</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_3" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="textLabel1" >
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Intensity Display:</string>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QwtWheel" name="WaterfallMaximumIntensityWheel" >
+ <property name="minimumSize" >
+ <size>
+ <width>200</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="mouseTracking" >
+ <bool>true</bool>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::WheelFocus</enum>
+ </property>
+ <property name="valid" >
+ <bool>true</bool>
+ </property>
+ <property name="totalAngle" >
+ <double>200.000000000000000</double>
+ </property>
+ <property name="viewAngle" >
+ <double>20.000000000000000</double>
+ </property>
+ <property name="mass" >
+ <double>0.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="WaterfallMaximumIntensityLabel" >
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>100 dB</string>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="4" >
+ <widget class="QFrame" name="WaterfallPlotDisplayFrame" >
+ <property name="minimumSize" >
+ <size>
+ <width>617</width>
+ <height>338</height>
+ </size>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Plain</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QwtWheel" name="WaterfallMinimumIntensityWheel" >
+ <property name="minimumSize" >
+ <size>
+ <width>200</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="valid" >
+ <bool>true</bool>
+ </property>
+ <property name="totalAngle" >
+ <double>200.000000000000000</double>
+ </property>
+ <property name="viewAngle" >
+ <double>20.000000000000000</double>
+ </property>
+ <property name="mass" >
+ <double>0.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QLabel" name="WaterfallMinimumIntensityLabel" >
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>-100 dB</string>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QPushButton" name="WaterfallAutoScaleBtn" >
+ <property name="maximumSize" >
+ <size>
+ <width>80</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Scales the Intensity to the current data extremes.</string>
+ </property>
+ <property name="text" >
+ <string>Auto Scale</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="WaterfallIntensityComboBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Color</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>White Hot</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Black Hot</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Incandescent</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>User Defined</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ <zorder>textLabel1</zorder>
+ <zorder>WaterfallMaximumIntensityWheel</zorder>
+ <zorder>WaterfallMaximumIntensityLabel</zorder>
+ <zorder>WaterfallPlotDisplayFrame</zorder>
+ <zorder>WaterfallMinimumIntensityWheel</zorder>
+ <zorder>WaterfallMinimumIntensityLabel</zorder>
+ <zorder>WaterfallAutoScaleBtn</zorder>
+ <zorder>WaterfallIntensityComboBox</zorder>
+ </widget>
+ <widget class="QWidget" name="Waterfall3DPage" >
+ <attribute name="title" >
+ <string>3D Waterfall Display</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_6" >
+ <item row="0" column="0" >
+ <widget class="QLabel" name="textLabel1_2" >
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>Intensity Display:</string>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1" >
+ <widget class="QComboBox" name="Waterfall3DIntensityComboBox" >
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <item>
+ <property name="text" >
+ <string>Color</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>White Hot</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Black Hot</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>Incandescent</string>
+ </property>
+ </item>
+ <item>
+ <property name="text" >
+ <string>User Defined</string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item row="0" column="2" >
+ <widget class="QwtWheel" name="Waterfall3DMaximumIntensityWheel" >
+ <property name="minimumSize" >
+ <size>
+ <width>200</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="mouseTracking" >
+ <bool>true</bool>
+ </property>
+ <property name="focusPolicy" >
+ <enum>Qt::WheelFocus</enum>
+ </property>
+ <property name="valid" >
+ <bool>true</bool>
+ </property>
+ <property name="totalAngle" >
+ <double>200.000000000000000</double>
+ </property>
+ <property name="viewAngle" >
+ <double>20.000000000000000</double>
+ </property>
+ <property name="mass" >
+ <double>0.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="3" >
+ <widget class="QLabel" name="Waterfall3DMaximumIntensityLabel" >
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>100 dB</string>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="4" >
+ <widget class="QFrame" name="Waterfall3DPlotDisplayFrame" >
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Plain</enum>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0" colspan="2" >
+ <widget class="QPushButton" name="Waterfall3DAutoScaleBtn" >
+ <property name="minimumSize" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize" >
+ <size>
+ <width>80</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="sizeIncrement" >
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="toolTip" >
+ <string>Scales the Intensity to the current data extremes.</string>
+ </property>
+ <property name="text" >
+ <string>Auto Scale</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="2" >
+ <widget class="QwtWheel" name="Waterfall3DMinimumIntensityWheel" >
+ <property name="minimumSize" >
+ <size>
+ <width>200</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="valid" >
+ <bool>true</bool>
+ </property>
+ <property name="totalAngle" >
+ <double>200.000000000000000</double>
+ </property>
+ <property name="viewAngle" >
+ <double>20.000000000000000</double>
+ </property>
+ <property name="mass" >
+ <double>0.000000000000000</double>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="3" >
+ <widget class="QLabel" name="Waterfall3DMinimumIntensityLabel" >
+ <property name="maximumSize" >
+ <size>
+ <width>100</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text" >
+ <string>-100 dB</string>
+ </property>
+ <property name="wordWrap" >
+ <bool>false</bool>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="TimeDomainPage" >
+ <attribute name="title" >
+ <string>Time Domain Display</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_4" >
+ <item row="0" column="0" >
+ <widget class="QFrame" name="TimeDomainDisplayFrame" >
+ <property name="minimumSize" >
+ <size>
+ <width>617</width>
+ <height>404</height>
+ </size>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::NoFrame</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Plain</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <widget class="QWidget" name="ConstellationPage" >
+ <attribute name="title" >
+ <string>Constellation Display</string>
+ </attribute>
+ <layout class="QGridLayout" name="gridLayout_5" >
+ <item row="0" column="0" >
+ <widget class="QFrame" name="ConstellationDisplayFrame" >
+ <property name="minimumSize" >
+ <size>
+ <width>617</width>
+ <height>406</height>
+ </size>
+ </property>
+ <property name="frameShape" >
+ <enum>QFrame::StyledPanel</enum>
+ </property>
+ <property name="frameShadow" >
+ <enum>QFrame::Raised</enum>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
</widget>
- <widget class="QwtWheel" name="Waterfall3DMaximumIntensityWheel" >
- <property name="geometry" >
- <rect>
- <x>215</x>
- <y>0</y>
- <width>335</width>
- <height>24</height>
- </rect>
- </property>
- <property name="mouseTracking" >
- <bool>true</bool>
- </property>
- <property name="focusPolicy" >
- <enum>Qt::WheelFocus</enum>
- </property>
- <property name="valid" >
- <bool>true</bool>
- </property>
- <property name="totalAngle" >
- <double>200.000000000000000</double>
- </property>
- <property name="viewAngle" >
- <double>20.000000000000000</double>
- </property>
- <property name="mass" >
- <double>0.000000000000000</double>
- </property>
- </widget>
- </widget>
- <widget class="QWidget" name="TimeDomainPage" >
- <attribute name="title" >
- <string>Time Domain Display</string>
- </attribute>
- <widget class="QFrame" name="TimeDomainDisplayFrame" >
- <property name="geometry" >
- <rect>
- <x>5</x>
- <y>5</y>
- <width>620</width>
- <height>340</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::NoFrame</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Plain</enum>
- </property>
- </widget>
- </widget>
- <widget class="QWidget" name="ConstellationPage" >
- <attribute name="title" >
- <string>Constellation Display</string>
- </attribute>
- <widget class="QFrame" name="ConstellationDisplayFrame" >
- <property name="geometry" >
- <rect>
- <x>5</x>
- <y>5</y>
- <width>620</width>
- <height>340</height>
- </rect>
- </property>
- <property name="frameShape" >
- <enum>QFrame::StyledPanel</enum>
- </property>
- <property name="frameShadow" >
- <enum>QFrame::Raised</enum>
- </property>
- </widget>
- </widget>
- </widget>
+ </item>
+ </layout>
</widget>
<layoutdefault spacing="6" margin="11" />
<pixmapfunction>qPixmapFromMimeSource</pixmapfunction>
@@ -698,14 +769,7 @@
</customwidgets>
<tabstops>
<tabstop>SpectrumTypeTab</tabstop>
- <tabstop>MaxHoldCheckBox</tabstop>
- <tabstop>MaxHoldResetBtn</tabstop>
- <tabstop>MinHoldCheckBox</tabstop>
- <tabstop>MinHoldResetBtn</tabstop>
- <tabstop>PowerLineEdit</tabstop>
- <tabstop>AvgLineEdit</tabstop>
<tabstop>UseRFFrequenciesCheckBox</tabstop>
- <tabstop>WindowComboBox</tabstop>
<tabstop>FFTSizeComboBox</tabstop>
<tabstop>WaterfallMaximumIntensityWheel</tabstop>
<tabstop>WaterfallMinimumIntensityWheel</tabstop>
@@ -787,22 +851,6 @@
</hints>
</connection>
<connection>
- <sender>AvgLineEdit</sender>
- <signal>textChanged(QString)</signal>
- <receiver>SpectrumDisplayForm</receiver>
- <slot>AvgLineEdit_textChanged(QString)</slot>
- <hints>
- <hint type="sourcelabel" >
- <x>552</x>
- <y>344</y>
- </hint>
- <hint type="destinationlabel" >
- <x>20</x>
- <y>20</y>
- </hint>
- </hints>
- </connection>
- <connection>
<sender>PowerLineEdit</sender>
<signal>textChanged(QString)</signal>
<receiver>SpectrumDisplayForm</receiver>
@@ -1010,5 +1058,21 @@
</hint>
</hints>
</connection>
+ <connection>
+ <sender>AvgLineEdit</sender>
+ <signal>valueChanged(int)</signal>
+ <receiver>SpectrumDisplayForm</receiver>
+ <slot>AvgLineEdit_valueChanged(int)</slot>
+ <hints>
+ <hint type="sourcelabel" >
+ <x>604</x>
+ <y>421</y>
+ </hint>
+ <hint type="destinationlabel" >
+ <x>328</x>
+ <y>260</y>
+ </hint>
+ </hints>
+ </connection>
</connections>
</ui>