summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohnathan Corgan <johnathan@corganlabs.com>2013-08-23 19:36:38 -0700
committerJohnathan Corgan <johnathan@corganlabs.com>2013-08-23 19:36:38 -0700
commit686a5558405c7ef48c01aba4c55b15a3d2dd72a9 (patch)
treec4ef5f9197a2876c491c43b3f9ccbd7fb330df8f
parent6bf21a5a3371939b8e3e79ac57b33deb333eea8a (diff)
parent76d2cd1ffe81f0d42c57b49c1669c3f2bdea49bb (diff)
Merge branch 'maint'
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h2
-rw-r--r--gr-qtgui/include/gnuradio/qtgui/waterfalldisplayform.h1
-rw-r--r--gr-qtgui/lib/FrequencyDisplayPlot.cc22
-rw-r--r--gr-qtgui/lib/WaterfallDisplayPlot.cc16
-rw-r--r--gr-qtgui/lib/spectrumdisplayform.cc13
-rw-r--r--gr-qtgui/lib/waterfalldisplayform.cc4
6 files changed, 21 insertions, 37 deletions
diff --git a/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h b/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
index 62ea41a87c..cff06572bc 100644
--- a/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
+++ b/gr-qtgui/include/gnuradio/qtgui/WaterfallDisplayPlot.h
@@ -115,8 +115,6 @@ private:
std::vector<QwtPlotSpectrogram*> d_spectrogram;
#endif
- gr::high_res_timer_type _lastReplot;
-
std::vector<int> _intensityColorMapType;
QColor _userDefinedLowIntensityColor;
QColor _userDefinedHighIntensityColor;
diff --git a/gr-qtgui/include/gnuradio/qtgui/waterfalldisplayform.h b/gr-qtgui/include/gnuradio/qtgui/waterfalldisplayform.h
index 8d78bb015a..f615eda2e9 100644
--- a/gr-qtgui/include/gnuradio/qtgui/waterfalldisplayform.h
+++ b/gr-qtgui/include/gnuradio/qtgui/waterfalldisplayform.h
@@ -87,7 +87,6 @@ private:
QIntValidator* _intValidator;
double _samp_rate, _center_freq;
- double _time_per_slice;
int _fftsize;
float _fftavg;
gr::filter::firdes::win_type _fftwintype;
diff --git a/gr-qtgui/lib/FrequencyDisplayPlot.cc b/gr-qtgui/lib/FrequencyDisplayPlot.cc
index 087a176d5e..3784ec1501 100644
--- a/gr-qtgui/lib/FrequencyDisplayPlot.cc
+++ b/gr-qtgui/lib/FrequencyDisplayPlot.cc
@@ -186,8 +186,6 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(int nplots, QWidget* parent)
_noiseFloorAmplitude = -HUGE_VAL;
- replot();
-
_zoomer = new FreqDisplayZoomer(canvas(), 0);
#if QWT_VERSION < 0x060000
@@ -213,6 +211,8 @@ FrequencyDisplayPlot::FrequencyDisplayPlot(int nplots, QWidget* parent)
((QwtLegendItem*)w)->setChecked(true);
w = legendDisplay->find(_max_fft_plot_curve);
((QwtLegendItem*)w)->setChecked(true);
+
+ replot();
}
FrequencyDisplayPlot::~FrequencyDisplayPlot()
@@ -263,8 +263,11 @@ FrequencyDisplayPlot::setFrequencyRange(const double centerfreq,
setAxisScaleDraw(QwtPlot::xBottom, new FreqDisplayScaleDraw(display_units));
setAxisTitle(QwtPlot::xBottom, QString("Frequency (%1)").arg(strunits.c_str()));
- if(reset)
- _resetXAxisPoints();
+ if(reset) {
+ _resetXAxisPoints();
+ clearMaxData();
+ clearMinData();
+ }
((FreqDisplayZoomer*)_zoomer)->setFrequencyPrecision(display_units);
((FreqDisplayZoomer*)_zoomer)->setUnitType(strunits);
@@ -343,12 +346,11 @@ FrequencyDisplayPlot::plotNewData(const std::vector<double*> dataPoints,
clearMinData();
}
- for(int i = 0; i < _nplots; i++) {
- memcpy(_dataPoints[i], dataPoints[i], numDataPoints*sizeof(double));
- }
-
double bottom=1e20, top=-1e20;
for(int n = 0; n < _nplots; n++) {
+
+ memcpy(_dataPoints[n], dataPoints[n], numDataPoints*sizeof(double));
+
for(int64_t point = 0; point < numDataPoints; point++) {
if(dataPoints[n][point] < _minFFTPoints[point]) {
_minFFTPoints[point] = dataPoints[n][point];
@@ -449,7 +451,7 @@ void
FrequencyDisplayPlot::_resetXAxisPoints()
{
double fft_bin_size = (_stopFrequency-_startFrequency)
- / static_cast<double>(_numPoints);
+ / static_cast<double>(_numPoints-1);
double freqValue = _startFrequency;
for(int64_t loc = 0; loc < _numPoints; loc++) {
_xAxisPoints[loc] = freqValue;
@@ -461,8 +463,6 @@ FrequencyDisplayPlot::_resetXAxisPoints()
// Set up zoomer base for maximum unzoom x-axis
// and reset to maximum unzoom level
QwtDoubleRect zbase = _zoomer->zoomBase();
- zbase.setLeft(_startFrequency);
- zbase.setRight(_stopFrequency);
_zoomer->zoom(zbase);
_zoomer->setZoomBase(zbase);
_zoomer->setZoomBase(true);
diff --git a/gr-qtgui/lib/WaterfallDisplayPlot.cc b/gr-qtgui/lib/WaterfallDisplayPlot.cc
index 0e38808b94..d86d0e5885 100644
--- a/gr-qtgui/lib/WaterfallDisplayPlot.cc
+++ b/gr-qtgui/lib/WaterfallDisplayPlot.cc
@@ -136,8 +136,6 @@ WaterfallDisplayPlot::WaterfallDisplayPlot(int nplots, QWidget* parent)
setAxisTitle(QwtPlot::yLeft, "Time (s)");
setAxisScaleDraw(QwtPlot::yLeft, new QwtTimeScaleDraw());
- _lastReplot = 0;
-
for(int i = 0; i < _nplots; i++) {
d_data.push_back(new WaterfallData(_startFrequency, _stopFrequency,
_numPoints, 200));
@@ -206,8 +204,6 @@ WaterfallDisplayPlot::resetAxis()
// Load up the new base zoom settings
QwtDoubleRect zbase = _zoomer->zoomBase();
- zbase.setLeft(_startFrequency);
- zbase.setRight(_stopFrequency);
_zoomer->zoom(zbase);
_zoomer->setZoomBase(zbase);
_zoomer->setZoomBase(true);
@@ -282,13 +278,6 @@ WaterfallDisplayPlot::plotNewData(const std::vector<double*> dataPoints,
if(isVisible()) {
replot();
}
-
- _lastReplot = gr::high_res_timer_now();
- }
-
- for(int i = 0; i < _nplots; i++) {
- d_data[i]->addFFTData(dataPoints[i], numDataPoints, droppedFrames);
- d_data[i]->incrementNumLinesToUpdate();
}
QwtTimeScaleDraw* timeScale = (QwtTimeScaleDraw*)axisScaleDraw(QwtPlot::yLeft);
@@ -299,6 +288,8 @@ WaterfallDisplayPlot::plotNewData(const std::vector<double*> dataPoints,
((WaterfallZoomer*)_zoomer)->setZeroTime(timestamp);
for(int i = 0; i < _nplots; i++) {
+ d_data[i]->addFFTData(dataPoints[i], numDataPoints, droppedFrames);
+ d_data[i]->incrementNumLinesToUpdate();
d_spectrogram[i]->invalidateCache();
d_spectrogram[i]->itemChanged();
}
@@ -567,9 +558,6 @@ WaterfallDisplayPlot::_updateIntensityRangeDisplay()
// Draw again
replot();
-
- // Update the last replot timer
- _lastReplot = gr::high_res_timer_now();
}
#endif /* WATERFALL_DISPLAY_PLOT_C */
diff --git a/gr-qtgui/lib/spectrumdisplayform.cc b/gr-qtgui/lib/spectrumdisplayform.cc
index 7731e41454..0d16b957a6 100644
--- a/gr-qtgui/lib/spectrumdisplayform.cc
+++ b/gr-qtgui/lib/spectrumdisplayform.cc
@@ -403,14 +403,15 @@ SpectrumDisplayForm::setFrequencyRange(const double newCenterFrequency,
const double newStartFrequency,
const double newStopFrequency)
{
- double fdiff;
+ double fcenter;
if(UseRFFrequenciesCheckBox->isChecked()) {
- fdiff = newCenterFrequency;
+ fcenter = newCenterFrequency;
}
else {
- fdiff = std::max(fabs(newStartFrequency), fabs(newStopFrequency));
+ fcenter = 0;
}
+ double fdiff = std::max(fabs(newStartFrequency), fabs(newStopFrequency));
if(fdiff > 0) {
std::string strunits[4] = {"Hz", "kHz", "MHz", "GHz"};
std::string strtime[4] = {"sec", "ms", "us", "ns"};
@@ -423,11 +424,11 @@ SpectrumDisplayForm::setFrequencyRange(const double newCenterFrequency,
_stopFrequency = newStopFrequency;
_centerFrequency = newCenterFrequency;
- _frequencyDisplayPlot->setFrequencyRange(_centerFrequency, fdiff,
+ _frequencyDisplayPlot->setFrequencyRange(fcenter, fdiff,
units, strunits[iunit]);
- _waterfallDisplayPlot->setFrequencyRange(_centerFrequency, fdiff,
+ _waterfallDisplayPlot->setFrequencyRange(fcenter, fdiff,
units, strunits[iunit]);
- _timeDomainDisplayPlot->setSampleRate(_stopFrequency - _startFrequency,
+ _timeDomainDisplayPlot->setSampleRate((_stopFrequency - _startFrequency)/2.0,
units, strtime[iunit]);
}
}
diff --git a/gr-qtgui/lib/waterfalldisplayform.cc b/gr-qtgui/lib/waterfalldisplayform.cc
index 1021a4f8d3..c80168e671 100644
--- a/gr-qtgui/lib/waterfalldisplayform.cc
+++ b/gr-qtgui/lib/waterfalldisplayform.cc
@@ -128,8 +128,7 @@ WaterfallDisplayForm::newData(const QEvent *updateEvent)
_max_val = *max_val;
}
- getPlot()->plotNewData(dataPoints, numDataPoints,
- _time_per_slice, dataTimestamp, 0);
+ getPlot()->plotNewData(dataPoints, numDataPoints, d_update_time, dataTimestamp, 0);
}
void
@@ -218,7 +217,6 @@ WaterfallDisplayForm::setFrequencyRange(const double centerfreq,
_center_freq = centerfreq;
_samp_rate = bandwidth;
- _time_per_slice = (1.0/bandwidth)*_fftsize;
getPlot()->setFrequencyRange(centerfreq, bandwidth,
units, strunits[iunit]);