summaryrefslogtreecommitdiff
path: root/gr-qtgui/lib/timedisplayform.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-qtgui/lib/timedisplayform.cc')
-rw-r--r--gr-qtgui/lib/timedisplayform.cc138
1 files changed, 39 insertions, 99 deletions
diff --git a/gr-qtgui/lib/timedisplayform.cc b/gr-qtgui/lib/timedisplayform.cc
index c650cd3eb0..e3c7f8a60b 100644
--- a/gr-qtgui/lib/timedisplayform.cc
+++ b/gr-qtgui/lib/timedisplayform.cc
@@ -1,6 +1,6 @@
/* -*- c++ -*- */
/*
- * Copyright 2011 Free Software Foundation, Inc.
+ * Copyright 2011,2012 Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
@@ -21,34 +21,30 @@
*/
#include <cmath>
-#include <QColorDialog>
#include <QMessageBox>
#include <timedisplayform.h>
#include <iostream>
TimeDisplayForm::TimeDisplayForm(int nplots, QWidget* parent)
- : QWidget(parent)
+ : DisplayForm(nplots, parent)
{
- _systemSpecifiedFlag = false;
_intValidator = new QIntValidator(this);
_intValidator->setBottom(0);
_layout = new QGridLayout(this);
- _timeDomainDisplayPlot = new TimeDomainDisplayPlot(nplots, this);
- _layout->addWidget(_timeDomainDisplayPlot, 0, 0);
-
- _numRealDataPoints = 1024;
-
+ _displayPlot = new TimeDomainDisplayPlot(nplots, this);
+ _layout->addWidget(_displayPlot, 0, 0);
setLayout(_layout);
- Reset();
+ NPointsMenu *nptsmenu = new NPointsMenu(this);
+ _menu->addAction(nptsmenu);
+ connect(nptsmenu, SIGNAL(whichTrigger(int)),
+ this, SLOT(setNPoints(const int)));
- // Create a timer to update plots at the specified rate
- displayTimer = new QTimer(this);
- connect(displayTimer, SIGNAL(timeout()), this, SLOT(updateGuiTimer()));
+ Reset();
- connect(_timeDomainDisplayPlot, SIGNAL(plotPointSelected(const QPointF)),
- this, SLOT(onTimePlotPointSelected(const QPointF)));
+ connect(_displayPlot, SIGNAL(plotPointSelected(const QPointF)),
+ this, SLOT(onPlotPointSelected(const QPointF)));
}
TimeDisplayForm::~TimeDisplayForm()
@@ -57,121 +53,65 @@ TimeDisplayForm::~TimeDisplayForm()
// Don't worry about deleting Display Plots - they are deleted when parents are deleted
delete _intValidator;
-
- displayTimer->stop();
- delete displayTimer;
-}
-
-void
-TimeDisplayForm::newData( const TimeUpdateEvent* spectrumUpdateEvent)
-{
- const std::vector<double*> timeDomainDataPoints = spectrumUpdateEvent->getTimeDomainPoints();
- const uint64_t numTimeDomainDataPoints = spectrumUpdateEvent->getNumTimeDomainDataPoints();
-
- _timeDomainDisplayPlot->PlotNewData(timeDomainDataPoints,
- numTimeDomainDataPoints,
- d_update_time);
}
-void
-TimeDisplayForm::resizeEvent( QResizeEvent *e )
+TimeDomainDisplayPlot*
+TimeDisplayForm::getPlot()
{
- QSize s = size();
- emit _timeDomainDisplayPlot->resizeSlot(&s);
+ return ((TimeDomainDisplayPlot*)_displayPlot);
}
void
-TimeDisplayForm::customEvent( QEvent * e)
+TimeDisplayForm::newData(const QEvent* updateEvent)
{
- if(e->type() == 10005) {
- TimeUpdateEvent* timeUpdateEvent = (TimeUpdateEvent*)e;
- newData(timeUpdateEvent);
- }
- //else if(e->type() == 10008){
- //setWindowTitle(((SpectrumWindowCaptionEvent*)e)->getLabel());
- //}
- //else if(e->type() == 10009){
- //Reset();
- //if(_systemSpecifiedFlag){
- // _system->ResetPendingGUIUpdateEvents();
- //}
- //}
-}
+ TimeUpdateEvent *tevent = (TimeUpdateEvent*)updateEvent;
+ const std::vector<double*> dataPoints = tevent->getTimeDomainPoints();
+ const uint64_t numDataPoints = tevent->getNumTimeDomainDataPoints();
-void
-TimeDisplayForm::updateGuiTimer()
-{
- _timeDomainDisplayPlot->canvas()->update();
+ getPlot()->PlotNewData(dataPoints,
+ numDataPoints,
+ d_update_time);
}
void
-TimeDisplayForm::onTimePlotPointSelected(const QPointF p)
+TimeDisplayForm::customEvent(QEvent * e)
{
- emit plotPointSelected(p, 3);
+ if(e->type() == TimeUpdateEvent::Type()) {
+ newData(e);
+ }
}
void
-TimeDisplayForm::setFrequencyRange(const double newCenterFrequency,
- const double newStartFrequency,
- const double newStopFrequency)
+TimeDisplayForm::setSampleRate(const double samprate)
{
- double fdiff = std::max(fabs(newStartFrequency), fabs(newStopFrequency));
-
- if(fdiff > 0) {
+ if(samprate > 0) {
std::string strtime[4] = {"sec", "ms", "us", "ns"};
- double units10 = floor(log10(fdiff));
+ double units10 = floor(log10(samprate));
double units3 = std::max(floor(units10 / 3.0), 0.0);
double units = pow(10, (units10-fmod(units10, 3.0)));
int iunit = static_cast<int>(units3);
- _startFrequency = newStartFrequency;
- _stopFrequency = newStopFrequency;
-
- _timeDomainDisplayPlot->SetSampleRate(_stopFrequency - _startFrequency,
- units, strtime[iunit]);
+ getPlot()->SetSampleRate(samprate, units, strtime[iunit]);
+ }
+ else {
+ throw std::runtime_error("TimeDisplayForm: samprate must be > 0.\n");
}
}
void
-TimeDisplayForm::Reset()
-{
-}
-
-
-void
-TimeDisplayForm::closeEvent( QCloseEvent *e )
-{
- //if(_systemSpecifiedFlag){
- // _system->SetWindowOpenFlag(false);
- //}
-
- qApp->processEvents();
-
- QWidget::closeEvent(e);
-}
-
-void
-TimeDisplayForm::setTimeDomainAxis(double min, double max)
-{
- _timeDomainDisplayPlot->setYaxis(min, max);
-}
-
-void
-TimeDisplayForm::setUpdateTime(double t)
+TimeDisplayForm::setYaxis(double min, double max)
{
- d_update_time = t;
- // QTimer class takes millisecond input
- displayTimer->start(d_update_time*1000);
+ getPlot()->setYaxis(min, max);
}
-void
-TimeDisplayForm::setTitle(int which, QString title)
+int
+TimeDisplayForm::getNPoints() const
{
- _timeDomainDisplayPlot->setTitle(which, title);
+ return d_npoints;
}
void
-TimeDisplayForm::setColor(int which, QString color)
+TimeDisplayForm::setNPoints(const int npoints)
{
- _timeDomainDisplayPlot->setColor(which, color);
+ d_npoints = npoints;
}