mirror of
https://bitbucket.org/librepilot/librepilot.git
synced 2024-12-01 09:24:10 +01:00
OP-263 Scopes now only run when telemetry is connected.
git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@2495 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
parent
c0218be369
commit
c37403a480
@ -6,5 +6,7 @@
|
|||||||
<url>http://www.openpilot.org</url>
|
<url>http://www.openpilot.org</url>
|
||||||
<dependencyList>
|
<dependencyList>
|
||||||
<dependency name="Core" version="1.0.0"/>
|
<dependency name="Core" version="1.0.0"/>
|
||||||
|
<dependency name="UAVObjects" version="1.0.0"/>
|
||||||
|
<dependency name="UAVTalk" version="1.0.0"/>
|
||||||
</dependencyList>
|
</dependencyList>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
@ -3,6 +3,7 @@ TARGET = ScopeGadget
|
|||||||
include(../../openpilotgcsplugin.pri)
|
include(../../openpilotgcsplugin.pri)
|
||||||
include(../../plugins/coreplugin/coreplugin.pri)
|
include(../../plugins/coreplugin/coreplugin.pri)
|
||||||
include(../../plugins/uavobjects/uavobjects.pri)
|
include(../../plugins/uavobjects/uavobjects.pri)
|
||||||
|
include(../../plugins/uavtalk/uavtalk.pri)
|
||||||
include(../../libs/qwt/qwt.pri)
|
include(../../libs/qwt/qwt.pri)
|
||||||
HEADERS += scopeplugin.h \
|
HEADERS += scopeplugin.h \
|
||||||
plotdata.h
|
plotdata.h
|
||||||
|
@ -26,11 +26,16 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "uavobjects/uavobjectmanager.h"
|
|
||||||
#include "extensionsystem/pluginmanager.h"
|
|
||||||
#include "scopegadgetwidget.h"
|
#include "scopegadgetwidget.h"
|
||||||
#include "utils/stylehelper.h"
|
#include "utils/stylehelper.h"
|
||||||
|
|
||||||
|
#include "uavtalk/telemetrymanager.h"
|
||||||
|
#include "extensionsystem/pluginmanager.h"
|
||||||
|
#include "uavobjects/uavobjectmanager.h"
|
||||||
|
#include "uavobjects/uavobject.h"
|
||||||
|
#include "coreplugin/icore.h"
|
||||||
|
#include "coreplugin/connectionmanager.h"
|
||||||
|
|
||||||
#include "qwt/src/qwt_plot_curve.h"
|
#include "qwt/src/qwt_plot_curve.h"
|
||||||
#include "qwt/src/qwt_legend.h"
|
#include "qwt/src/qwt_legend.h"
|
||||||
#include "qwt/src/qwt_legend_item.h"
|
#include "qwt/src/qwt_legend_item.h"
|
||||||
@ -45,6 +50,7 @@
|
|||||||
#include <QtGui/QVBoxLayout>
|
#include <QtGui/QVBoxLayout>
|
||||||
#include <QtGui/QPushButton>
|
#include <QtGui/QPushButton>
|
||||||
|
|
||||||
|
using namespace Core;
|
||||||
|
|
||||||
TestDataGen* ScopeGadgetWidget::testDataGen;
|
TestDataGen* ScopeGadgetWidget::testDataGen;
|
||||||
|
|
||||||
@ -56,6 +62,28 @@ ScopeGadgetWidget::ScopeGadgetWidget(QWidget *parent) : QwtPlot(parent)
|
|||||||
//Setup the timer that replots data
|
//Setup the timer that replots data
|
||||||
replotTimer = new QTimer(this);
|
replotTimer = new QTimer(this);
|
||||||
connect(replotTimer, SIGNAL(timeout()), this, SLOT(replotNewData()));
|
connect(replotTimer, SIGNAL(timeout()), this, SLOT(replotNewData()));
|
||||||
|
|
||||||
|
// Listen to telemetry connection/disconnection events, no point
|
||||||
|
// running the scopes if we are not connected and not replaying logs
|
||||||
|
// Also listen to disconnect actions from the user
|
||||||
|
Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager();
|
||||||
|
connect(cm, SIGNAL(deviceDisconnected()), this, SLOT(onTelemetryDisconnected()));
|
||||||
|
connect(cm, SIGNAL(deviceConnected(QIODevice*)), this, SLOT(onTelemetryConnected()));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Starts/stops telemetry
|
||||||
|
*/
|
||||||
|
void ScopeGadgetWidget::onTelemetryConnected()
|
||||||
|
{
|
||||||
|
if(!replotTimer->isActive())
|
||||||
|
replotTimer->start(m_refreshInterval);
|
||||||
|
}
|
||||||
|
|
||||||
|
void ScopeGadgetWidget::onTelemetryDisconnected()
|
||||||
|
{
|
||||||
|
replotTimer->stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScopeGadgetWidget::preparePlot(PlotType plotType)
|
void ScopeGadgetWidget::preparePlot(PlotType plotType)
|
||||||
@ -87,12 +115,16 @@ void ScopeGadgetWidget::preparePlot(PlotType plotType)
|
|||||||
|
|
||||||
connect(this, SIGNAL(legendChecked(QwtPlotItem *, bool)),this, SLOT(showCurve(QwtPlotItem *, bool)));
|
connect(this, SIGNAL(legendChecked(QwtPlotItem *, bool)),this, SLOT(showCurve(QwtPlotItem *, bool)));
|
||||||
|
|
||||||
|
// Only start the timer if we are already connected
|
||||||
|
Core::ConnectionManager *cm = Core::ICore::instance()->connectionManager();
|
||||||
|
if (cm->getCurrentConnection()) {
|
||||||
if(!replotTimer->isActive())
|
if(!replotTimer->isActive())
|
||||||
replotTimer->start(m_refreshInterval);
|
replotTimer->start(m_refreshInterval);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
replotTimer->setInterval(m_refreshInterval);
|
replotTimer->setInterval(m_refreshInterval);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -29,9 +29,6 @@
|
|||||||
#define SCOPEGADGETWIDGET_H_
|
#define SCOPEGADGETWIDGET_H_
|
||||||
|
|
||||||
#include "plotdata.h"
|
#include "plotdata.h"
|
||||||
#include "uavobjects/uavobject.h"
|
|
||||||
#include "uavobjects/baroaltitude.h"
|
|
||||||
#include "uavobjects/positionactual.h"
|
|
||||||
|
|
||||||
|
|
||||||
#include "qwt/src/qwt.h"
|
#include "qwt/src/qwt.h"
|
||||||
@ -44,6 +41,7 @@
|
|||||||
#include <QTime>
|
#include <QTime>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
\brief This class is used to render the time values on the horizontal axis for the
|
\brief This class is used to render the time values on the horizontal axis for the
|
||||||
ChronoPlot.
|
ChronoPlot.
|
||||||
@ -122,6 +120,8 @@ private slots:
|
|||||||
void uavObjectReceived(UAVObject*);
|
void uavObjectReceived(UAVObject*);
|
||||||
void replotNewData();
|
void replotNewData();
|
||||||
void showCurve(QwtPlotItem *item, bool on);
|
void showCurve(QwtPlotItem *item, bool on);
|
||||||
|
void onTelemetryConnected();
|
||||||
|
void onTelemetryDisconnected();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user