1
0
mirror of https://bitbucket.org/librepilot/librepilot.git synced 2024-12-01 09:24:10 +01:00

Janitor work, mainly doxygen and qmake.

git-svn-id: svn://svn.openpilot.org/OpenPilot/trunk@930 ebee16cc-31ac-478f-84a7-5cbb03baadba
This commit is contained in:
dankers 2010-06-29 01:17:10 +00:00 committed by dankers
parent 1faa9b4073
commit d02d890979
28 changed files with 1854 additions and 1865 deletions

View File

@ -0,0 +1,30 @@
include(../../../openpilotgcs.pri)
COLLECTIONS = default bling
TEMPLATE = app
TARGET = phony_target2
CONFIG -= qt
QT =
LIBS =
isEmpty(vcproj) {
QMAKE_LINK = @: IGNORE THIS LINE
OBJECTS_DIR =
win32:CONFIG -= embed_manifest_exe
} else {
CONFIG += console
PHONY_DEPS = .
phony_src.input = PHONY_DEPS
phony_src.output = phony.c
phony_src.variable_out = GENERATED_SOURCES
phony_src.commands = echo int main() { return 0; } > phony.c
phony_src.name = CREATE phony.c
phony_src.CONFIG += combine
QMAKE_EXTRA_COMPILERS += phony_src
}
gauges.files = $$PWD/$$COLLECTIONS
gauges.path = /share/openpilotgcs/gauges
gauges.CONFIG += no_check_exist
INSTALLS += gauges

View File

@ -0,0 +1,30 @@
include(../../../openpilotgcs.pri)
COLLECTIONS = Easystar
TEMPLATE = app
TARGET = phony_target2
CONFIG -= qt
QT =
LIBS =
isEmpty(vcproj) {
QMAKE_LINK = @: IGNORE THIS LINE
OBJECTS_DIR =
win32:CONFIG -= embed_manifest_exe
} else {
CONFIG += console
PHONY_DEPS = .
phony_src.input = PHONY_DEPS
phony_src.output = phony.c
phony_src.variable_out = GENERATED_SOURCES
phony_src.commands = echo int main() { return 0; } > phony.c
phony_src.name = CREATE phony.c
phony_src.CONFIG += combine
QMAKE_EXTRA_COMPILERS += phony_src
}
models.files = $$PWD/$$COLLECTIONS
models.path = /share/openpilotgcs/models
models.CONFIG += no_check_exist
INSTALLS += models

View File

@ -0,0 +1,30 @@
include(../../../openpilotgcs.pri)
COLLECTIONS = default
TEMPLATE = app
TARGET = phony_target2
CONFIG -= qt
QT =
LIBS =
isEmpty(vcproj) {
QMAKE_LINK = @: IGNORE THIS LINE
OBJECTS_DIR =
win32:CONFIG -= embed_manifest_exe
} else {
CONFIG += console
PHONY_DEPS = .
phony_src.input = PHONY_DEPS
phony_src.output = phony.c
phony_src.variable_out = GENERATED_SOURCES
phony_src.commands = echo int main() { return 0; } > phony.c
phony_src.name = CREATE phony.c
phony_src.CONFIG += combine
QMAKE_EXTRA_COMPILERS += phony_src
}
pfd.files = $$PWD/$$COLLECTIONS
pfd.path = /share/openpilotgcs/pfd
pfd.CONFIG += no_check_exist
INSTALLS += pfd

View File

@ -1,4 +1,11 @@
TEMPLATE = subdirs
SUBDIRS = openpilotgcs/translations
SUBDIRS += openpilotgcs/sounds
SUBDIRS += openpilotgcs/gauges
SUBDIRS += openpilotgcs/models
SUBDIRS += openpilotgcs/pfd

View File

@ -18,5 +18,4 @@ SOURCES += dialgadgetconfiguration.cpp
SOURCES += dialgadgetoptionspage.cpp
OTHER_FILES += DialGadget.pluginspec
FORMS += dialgadgetoptionspage.ui
RESOURCES += dial.qrc \
dial.qrc
RESOURCES += dial.qrc

View File

@ -1,39 +1,39 @@
/**
******************************************************************************
*
* @file IPconnection_global.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnection_plugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnection_GLOBAL_H
#define IPconnection_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(IPconnection_LIBRARY)
# define IPconnection_EXPORT Q_DECL_EXPORT
#else
# define IPconnection_EXPORT Q_DECL_IMPORT
#endif
#endif // IPconnection_GLOBAL_H
/**
******************************************************************************
*
* @file IPconnection_global.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnectionplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnection_GLOBAL_H
#define IPconnection_GLOBAL_H
#include <QtCore/qglobal.h>
#if defined(IPconnection_LIBRARY)
# define IPconnection_EXPORT Q_DECL_EXPORT
#else
# define IPconnection_EXPORT Q_DECL_IMPORT
#endif
#endif // IPconnection_GLOBAL_H

View File

@ -1,92 +1,92 @@
/**
******************************************************************************
*
* @file IPconnectionconfiguration.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup map
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "ipconnectionconfiguration.h"
#include <QtCore/QDataStream>
#include <coreplugin/icore.h>
IPconnectionConfiguration::IPconnectionConfiguration(QString classId, const QByteArray &state, QObject *parent) :
IUAVGadgetConfiguration(classId, parent),
m_HostName("127.0.0.1"),
m_Port(1000),
m_UseTCP(1)
{
settings = Core::ICore::instance()->settings();
}
IPconnectionConfiguration::~IPconnectionConfiguration()
{
}
IUAVGadgetConfiguration *IPconnectionConfiguration::clone()
{
IPconnectionConfiguration *m = new IPconnectionConfiguration(this->classId());
m->m_Port = m_Port;
m->m_HostName = m_HostName;
m->m_UseTCP = m_UseTCP;
return m;
}
QByteArray IPconnectionConfiguration::saveState() const
{
QByteArray bytes;
QDataStream stream(&bytes, QIODevice::WriteOnly);
stream << m_Port;
stream << m_HostName;
stream << m_UseTCP;
return bytes;
}
void IPconnectionConfiguration::savesettings() const
{
settings->beginGroup(QLatin1String("IPconnection"));
settings->beginWriteArray("Current");
settings->setArrayIndex(0);
settings->setValue(QLatin1String("HostName"), m_HostName);
settings->setValue(QLatin1String("Port"), m_Port);
settings->setValue(QLatin1String("UseTCP"), m_UseTCP);
settings->endArray();
settings->endGroup();
}
void IPconnectionConfiguration::restoresettings()
{
settings->beginGroup(QLatin1String("IPconnection"));
settings->beginReadArray("Current");
settings->setArrayIndex(0);
m_HostName = (settings->value(QLatin1String("HostName"), tr("")).toString());
m_Port = (settings->value(QLatin1String("Port"), tr("")).toInt());
m_UseTCP = (settings->value(QLatin1String("UseTCP"), tr("")).toInt());
settings->endArray();
settings->endGroup();
}
/**
******************************************************************************
*
* @file IPconnectionconfiguration.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnectionplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "ipconnectionconfiguration.h"
#include <QtCore/QDataStream>
#include <coreplugin/icore.h>
IPconnectionConfiguration::IPconnectionConfiguration(QString classId, const QByteArray &state, QObject *parent) :
IUAVGadgetConfiguration(classId, parent),
m_HostName("127.0.0.1"),
m_Port(1000),
m_UseTCP(1)
{
settings = Core::ICore::instance()->settings();
}
IPconnectionConfiguration::~IPconnectionConfiguration()
{
}
IUAVGadgetConfiguration *IPconnectionConfiguration::clone()
{
IPconnectionConfiguration *m = new IPconnectionConfiguration(this->classId());
m->m_Port = m_Port;
m->m_HostName = m_HostName;
m->m_UseTCP = m_UseTCP;
return m;
}
QByteArray IPconnectionConfiguration::saveState() const
{
QByteArray bytes;
QDataStream stream(&bytes, QIODevice::WriteOnly);
stream << m_Port;
stream << m_HostName;
stream << m_UseTCP;
return bytes;
}
void IPconnectionConfiguration::savesettings() const
{
settings->beginGroup(QLatin1String("IPconnection"));
settings->beginWriteArray("Current");
settings->setArrayIndex(0);
settings->setValue(QLatin1String("HostName"), m_HostName);
settings->setValue(QLatin1String("Port"), m_Port);
settings->setValue(QLatin1String("UseTCP"), m_UseTCP);
settings->endArray();
settings->endGroup();
}
void IPconnectionConfiguration::restoresettings()
{
settings->beginGroup(QLatin1String("IPconnection"));
settings->beginReadArray("Current");
settings->setArrayIndex(0);
m_HostName = (settings->value(QLatin1String("HostName"), tr("")).toString());
m_Port = (settings->value(QLatin1String("Port"), tr("")).toInt());
m_UseTCP = (settings->value(QLatin1String("UseTCP"), tr("")).toInt());
settings->endArray();
settings->endGroup();
}

View File

@ -1,73 +1,73 @@
/**
******************************************************************************
*
* @file IPconnectionconfiguration.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup map
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnectionCONFIGURATION_H
#define IPconnectionCONFIGURATION_H
#include <coreplugin/iuavgadgetconfiguration.h>
#include <QtCore/QString>
#include <QtCore/QSettings>
using namespace Core;
class IPconnectionConfiguration : public IUAVGadgetConfiguration
{
Q_OBJECT
Q_PROPERTY(QString HostName READ HostName WRITE setHostName)
Q_PROPERTY(int Port READ Port WRITE setPort)
Q_PROPERTY(int UseTCP READ UseTCP WRITE setUseTCP)
public:
explicit IPconnectionConfiguration(QString classId, const QByteArray &state = 0, QObject *parent = 0);
virtual ~IPconnectionConfiguration();
QByteArray saveState() const;
//void savesettings(QSettings* settings) const;
//void restoresettings(QSettings* settings);
void savesettings() const;
void restoresettings();
IUAVGadgetConfiguration *clone();
QString HostName() const { return m_HostName; }
int Port() const { return m_Port; }
int UseTCP() const { return m_UseTCP; }
public slots:
void setHostName(QString HostName) { m_HostName = HostName; }
void setPort(int Port) { m_Port = Port; }
void setUseTCP(int UseTCP) { m_UseTCP = UseTCP; }
private:
QString m_HostName;
int m_Port;
int m_UseTCP;
QSettings* settings;
};
#endif // IPconnectionCONFIGURATION_H
/**
******************************************************************************
*
* @file IPconnectionconfiguration.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnectionplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnectionCONFIGURATION_H
#define IPconnectionCONFIGURATION_H
#include <coreplugin/iuavgadgetconfiguration.h>
#include <QtCore/QString>
#include <QtCore/QSettings>
using namespace Core;
class IPconnectionConfiguration : public IUAVGadgetConfiguration
{
Q_OBJECT
Q_PROPERTY(QString HostName READ HostName WRITE setHostName)
Q_PROPERTY(int Port READ Port WRITE setPort)
Q_PROPERTY(int UseTCP READ UseTCP WRITE setUseTCP)
public:
explicit IPconnectionConfiguration(QString classId, const QByteArray &state = 0, QObject *parent = 0);
virtual ~IPconnectionConfiguration();
QByteArray saveState() const;
//void savesettings(QSettings* settings) const;
//void restoresettings(QSettings* settings);
void savesettings() const;
void restoresettings();
IUAVGadgetConfiguration *clone();
QString HostName() const { return m_HostName; }
int Port() const { return m_Port; }
int UseTCP() const { return m_UseTCP; }
public slots:
void setHostName(QString HostName) { m_HostName = HostName; }
void setPort(int Port) { m_Port = Port; }
void setUseTCP(int UseTCP) { m_UseTCP = UseTCP; }
private:
QString m_HostName;
int m_Port;
int m_UseTCP;
QSettings* settings;
};
#endif // IPconnectionCONFIGURATION_H

View File

@ -1,82 +1,82 @@
/**
******************************************************************************
*
* @file IPconnectionoptionspage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup map
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "ipconnectionoptionspage.h"
#include "ipconnectionconfiguration.h"
#include <QtGui/QLabel>
#include <QtGui/QComboBox>
#include <QtGui/QSpinBox>
#include <QtGui/QDoubleSpinBox>
#include <QtGui/QRadioButton>
#include <QtGui/QHBoxLayout>
#include <QtGui/QVBoxLayout>
#include "ui_ipconnectionoptionspage.h"
IPconnectionOptionsPage::IPconnectionOptionsPage(IPconnectionConfiguration *config, QObject *parent) :
IOptionsPage(parent),
m_config(config)
{
}
IPconnectionOptionsPage::~IPconnectionOptionsPage()
{
}
QWidget *IPconnectionOptionsPage::createPage(QWidget *parent)
{
m_page = new Ui::IPconnectionOptionsPage();
QWidget *w = new QWidget(parent);
m_page->setupUi(w);
m_page->Port->setValue(m_config->Port());
m_page->HostName->setText(m_config->HostName());
m_page->UseTCP->setChecked(m_config->UseTCP()?true:false);
m_page->UseUDP->setChecked(m_config->UseTCP()?false:true);
return w;
}
void IPconnectionOptionsPage::apply()
{
m_config->setPort(m_page->Port->value());
m_config->setHostName(m_page->HostName->text());
m_config->setUseTCP(m_page->UseTCP->isChecked()?1:0);
m_config->savesettings();
emit availableDevChanged();
}
void IPconnectionOptionsPage::finish()
{
delete m_page;
}
/**
******************************************************************************
*
* @file IPconnectionoptionspage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnectionplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "ipconnectionoptionspage.h"
#include "ipconnectionconfiguration.h"
#include <QtGui/QLabel>
#include <QtGui/QComboBox>
#include <QtGui/QSpinBox>
#include <QtGui/QDoubleSpinBox>
#include <QtGui/QRadioButton>
#include <QtGui/QHBoxLayout>
#include <QtGui/QVBoxLayout>
#include "ui_ipconnectionoptionspage.h"
IPconnectionOptionsPage::IPconnectionOptionsPage(IPconnectionConfiguration *config, QObject *parent) :
IOptionsPage(parent),
m_config(config)
{
}
IPconnectionOptionsPage::~IPconnectionOptionsPage()
{
}
QWidget *IPconnectionOptionsPage::createPage(QWidget *parent)
{
m_page = new Ui::IPconnectionOptionsPage();
QWidget *w = new QWidget(parent);
m_page->setupUi(w);
m_page->Port->setValue(m_config->Port());
m_page->HostName->setText(m_config->HostName());
m_page->UseTCP->setChecked(m_config->UseTCP()?true:false);
m_page->UseUDP->setChecked(m_config->UseTCP()?false:true);
return w;
}
void IPconnectionOptionsPage::apply()
{
m_config->setPort(m_page->Port->value());
m_config->setHostName(m_page->HostName->text());
m_config->setUseTCP(m_page->UseTCP->isChecked()?1:0);
m_config->savesettings();
emit availableDevChanged();
}
void IPconnectionOptionsPage::finish()
{
delete m_page;
}

View File

@ -1,71 +1,71 @@
/**
******************************************************************************
*
* @file IPconnectionoptionspage.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup map
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnectionOPTIONSPAGE_H
#define IPconnectionOPTIONSPAGE_H
#include "coreplugin/dialogs/ioptionspage.h"
class IPconnectionConfiguration;
namespace Core {
class IUAVGadgetConfiguration;
}
namespace Ui {
class IPconnectionOptionsPage;
}
using namespace Core;
class IPconnectionOptionsPage : public IOptionsPage
{
Q_OBJECT
public:
explicit IPconnectionOptionsPage(IPconnectionConfiguration *config, QObject *parent = 0);
virtual ~IPconnectionOptionsPage();
QString id() const { return QLatin1String("settings"); }
QString trName() const { return tr("settings"); }
QString category() const { return "IP Network Telemetry"; };
QString trCategory() const { return "IP Network Telemetry"; };
QWidget *createPage(QWidget *parent);
void apply();
void finish();
signals:
void availableDevChanged();
public slots:
private:
IPconnectionConfiguration *m_config;
Ui::IPconnectionOptionsPage *m_page;
};
#endif // IPconnectionOPTIONSPAGE_H
/**
******************************************************************************
*
* @file IPconnectionoptionspage.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnectionplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnectionOPTIONSPAGE_H
#define IPconnectionOPTIONSPAGE_H
#include "coreplugin/dialogs/ioptionspage.h"
class IPconnectionConfiguration;
namespace Core {
class IUAVGadgetConfiguration;
}
namespace Ui {
class IPconnectionOptionsPage;
}
using namespace Core;
class IPconnectionOptionsPage : public IOptionsPage
{
Q_OBJECT
public:
explicit IPconnectionOptionsPage(IPconnectionConfiguration *config, QObject *parent = 0);
virtual ~IPconnectionOptionsPage();
QString id() const { return QLatin1String("settings"); }
QString trName() const { return tr("settings"); }
QString category() const { return "IP Network Telemetry"; };
QString trCategory() const { return "IP Network Telemetry"; };
QWidget *createPage(QWidget *parent);
void apply();
void finish();
signals:
void availableDevChanged();
public slots:
private:
IPconnectionConfiguration *m_config;
Ui::IPconnectionOptionsPage *m_page;
};
#endif // IPconnectionOPTIONSPAGE_H

View File

@ -5,7 +5,7 @@
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Register connection object for the core connection manager
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnection_plugin
* @defgroup IPconnectionplugin
* @{
*
*****************************************************************************/

View File

@ -1,98 +1,98 @@
/**
******************************************************************************
*
* @file IPconnectionplugin.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnection_plugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnectionPLUGIN_H
#define IPconnectionPLUGIN_H
#include "ipconnection_global.h"
#include "ipconnectionoptionspage.h"
#include "ipconnectionconfiguration.h"
#include "coreplugin/iconnection.h"
#include <extensionsystem/iplugin.h>
//#include <QtCore/QSettings>
class QAbstractSocket;
class QTcpSocket;
class QUdpSocket;
class IConnection;
/**
* Define a connection via the IConnection interface
* Plugin will add a instance of this class to the pool,
* so the connection manager can use it.
*/
class IPconnection_EXPORT IPconnectionConnection
: public Core::IConnection
{
Q_OBJECT
public:
IPconnectionConnection();
virtual ~IPconnectionConnection();
virtual QStringList availableDevices();
virtual QIODevice *openDevice(const QString &deviceName);
virtual void closeDevice(const QString &deviceName);
virtual QString connectionName();
virtual QString shortName();
IPconnectionConfiguration * Config() const { return m_config; }
IPconnectionOptionsPage * Optionspage() const { return m_optionspage; }
protected slots:
void onEnumerationChanged();
private:
QAbstractSocket *tcpSocket;
IPconnectionConfiguration *m_config;
IPconnectionOptionsPage *m_optionspage;
//QSettings* settings;
};
class IPconnection_EXPORT IPconnectionPlugin
: public ExtensionSystem::IPlugin
{
Q_OBJECT
public:
IPconnectionPlugin();
~IPconnectionPlugin();
virtual bool initialize(const QStringList &arguments, QString *error_message);
virtual void extensionsInitialized();
private:
IPconnectionConnection *m_connection;
};
#endif // IPconnectionPLUGIN_H
/**
******************************************************************************
*
* @file IPconnectionplugin.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief
* @see The GNU Public License (GPL) Version 3
* @defgroup IPconnectionplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef IPconnectionPLUGIN_H
#define IPconnectionPLUGIN_H
#include "ipconnection_global.h"
#include "ipconnectionoptionspage.h"
#include "ipconnectionconfiguration.h"
#include "coreplugin/iconnection.h"
#include <extensionsystem/iplugin.h>
//#include <QtCore/QSettings>
class QAbstractSocket;
class QTcpSocket;
class QUdpSocket;
class IConnection;
/**
* Define a connection via the IConnection interface
* Plugin will add a instance of this class to the pool,
* so the connection manager can use it.
*/
class IPconnection_EXPORT IPconnectionConnection
: public Core::IConnection
{
Q_OBJECT
public:
IPconnectionConnection();
virtual ~IPconnectionConnection();
virtual QStringList availableDevices();
virtual QIODevice *openDevice(const QString &deviceName);
virtual void closeDevice(const QString &deviceName);
virtual QString connectionName();
virtual QString shortName();
IPconnectionConfiguration * Config() const { return m_config; }
IPconnectionOptionsPage * Optionspage() const { return m_optionspage; }
protected slots:
void onEnumerationChanged();
private:
QAbstractSocket *tcpSocket;
IPconnectionConfiguration *m_config;
IPconnectionOptionsPage *m_optionspage;
//QSettings* settings;
};
class IPconnection_EXPORT IPconnectionPlugin
: public ExtensionSystem::IPlugin
{
Q_OBJECT
public:
IPconnectionPlugin();
~IPconnectionPlugin();
virtual bool initialize(const QStringList &arguments, QString *error_message);
virtual void extensionsInitialized();
private:
IPconnectionConnection *m_connection;
};
#endif // IPconnectionPLUGIN_H

View File

@ -1,107 +0,0 @@
/********************************************************************************
** Form generated from reading UI file 'IPconnectionoptionspage.ui'
**
** Created: Sun Jun 27 12:45:24 2010
** by: Qt User Interface Compiler version 4.6.2
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_TCPTELEMETRYOPTIONSPAGE_H
#define UI_TCPTELEMETRYOPTIONSPAGE_H
#include <QtCore/QVariant>
#include <QtGui/QAction>
#include <QtGui/QApplication>
#include <QtGui/QButtonGroup>
#include <QtGui/QGridLayout>
#include <QtGui/QHeaderView>
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include <QtGui/QRadioButton>
#include <QtGui/QSpacerItem>
#include <QtGui/QSpinBox>
#include <QtGui/QWidget>
QT_BEGIN_NAMESPACE
class Ui_IPconnectionOptionsPage
{
public:
QGridLayout *gridLayout;
QSpacerItem *horizontalSpacer;
QRadioButton *UseTCP;
QRadioButton *UseUDP;
QSpinBox *Port;
QLabel *label_3;
QLineEdit *HostName;
QLabel *label_2;
void setupUi(QWidget *IPconnectionOptionsPage)
{
if (IPconnectionOptionsPage->objectName().isEmpty())
IPconnectionOptionsPage->setObjectName(QString::fromUtf8("IPconnectionOptionsPage"));
IPconnectionOptionsPage->resize(388, 300);
gridLayout = new QGridLayout(IPconnectionOptionsPage);
gridLayout->setContentsMargins(0, 0, 0, 0);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
gridLayout->addItem(horizontalSpacer, 0, 3, 1, 1);
UseTCP = new QRadioButton(IPconnectionOptionsPage);
UseTCP->setObjectName(QString::fromUtf8("UseTCP"));
gridLayout->addWidget(UseTCP, 2, 2, 1, 1);
UseUDP = new QRadioButton(IPconnectionOptionsPage);
UseUDP->setObjectName(QString::fromUtf8("UseUDP"));
gridLayout->addWidget(UseUDP, 3, 2, 1, 1);
Port = new QSpinBox(IPconnectionOptionsPage);
Port->setObjectName(QString::fromUtf8("Port"));
Port->setMinimum(1);
Port->setMaximum(999999);
gridLayout->addWidget(Port, 4, 2, 1, 1);
label_3 = new QLabel(IPconnectionOptionsPage);
label_3->setObjectName(QString::fromUtf8("label_3"));
gridLayout->addWidget(label_3, 4, 1, 1, 1);
HostName = new QLineEdit(IPconnectionOptionsPage);
HostName->setObjectName(QString::fromUtf8("HostName"));
gridLayout->addWidget(HostName, 0, 2, 1, 1);
label_2 = new QLabel(IPconnectionOptionsPage);
label_2->setObjectName(QString::fromUtf8("label_2"));
gridLayout->addWidget(label_2, 0, 1, 1, 1);
retranslateUi(IPconnectionOptionsPage);
QMetaObject::connectSlotsByName(IPconnectionOptionsPage);
} // setupUi
void retranslateUi(QWidget *IPconnectionOptionsPage)
{
IPconnectionOptionsPage->setWindowTitle(QApplication::translate("IPconnectionOptionsPage", "Form", 0, QApplication::UnicodeUTF8));
UseTCP->setText(QApplication::translate("IPconnectionOptionsPage", "TCP connection", 0, QApplication::UnicodeUTF8));
UseUDP->setText(QApplication::translate("IPconnectionOptionsPage", "UDP connection", 0, QApplication::UnicodeUTF8));
label_3->setText(QApplication::translate("IPconnectionOptionsPage", "Port", 0, QApplication::UnicodeUTF8));
label_2->setText(QApplication::translate("IPconnectionOptionsPage", "Host Name/Number", 0, QApplication::UnicodeUTF8));
} // retranslateUi
};
namespace Ui {
class IPconnectionOptionsPage: public Ui_IPconnectionOptionsPage {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_TCPTELEMETRYOPTIONSPAGE_H

View File

@ -1,138 +1,138 @@
/**
******************************************************************************
*
* @file plotdata.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Implementation of plotdata.
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "plotdata.h"
#include <math.h>
PlotData::PlotData(QString* p_uavObject, QString* p_uavField)
{
uavObject = new QString(*p_uavObject);
uavField = new QString(*p_uavField);
xData = new QVector<double>();
yData = new QVector<double>();
curve = 0;
scalePower = 0;
yMinimum = 0;
yMaximum = 0;
m_xWindowSize = 0;
}
PlotData::~PlotData()
{
delete uavObject;
delete uavField;
delete xData;
delete yData;
}
bool SequencialPlotData::append(UAVObject* obj)
{
if (*uavObject == obj->getName()) {
//Get the field of interest
UAVObjectField* field = obj->getField(*uavField);
if (field) {
//Shift data forward and put the new value at the front
yData->append(field->getDouble() * pow(10, scalePower));
if (yData->size() > m_xWindowSize) {
yData->pop_front();
//Make the x-axis values scroll...
//xData->append( xData->last() + 1 );
//xData->pop_front();
} else
xData->insert(xData->size(), xData->size());
dataChanged();
return true;
}
}
return false;
}
bool ChronoPlotData::append(UAVObject* obj)
{
if (*uavObject == obj->getName()) {
//Get the field of interest
UAVObjectField* field = obj->getField(*uavField);
if (field) {
//Put the new value at the front
QDateTime NOW = QDateTime::currentDateTime();
double newestValue = NOW.toTime_t() + NOW.time().msec() / 1000.0;
xData->append(newestValue);
yData->append(field->getDouble() * pow(10, scalePower));
//Remove stale data
removeStaleData();
dataChanged();
return true;
}
}
return false;
}
void ChronoPlotData::removeStaleData()
{
double newestValue;
double oldestValue;
while (1) {
if (xData->size() == 0)
break;
newestValue = xData->last();
oldestValue = xData->first();
if (newestValue - oldestValue > m_xWindowSize) {
yData->pop_front();
xData->pop_front();
} else
break;
}
}
void ChronoPlotData::removeStaleDataTimeout()
{
removeStaleData();
dataChanged();
}
bool UAVObjectPlotData::append(UAVObject* obj)
{
return false;
}
/**
******************************************************************************
*
* @file plotdata.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Implementation of plotdata.
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "plotdata.h"
#include <math.h>
PlotData::PlotData(QString* p_uavObject, QString* p_uavField)
{
uavObject = new QString(*p_uavObject);
uavField = new QString(*p_uavField);
xData = new QVector<double>();
yData = new QVector<double>();
curve = 0;
scalePower = 0;
yMinimum = 0;
yMaximum = 0;
m_xWindowSize = 0;
}
PlotData::~PlotData()
{
delete uavObject;
delete uavField;
delete xData;
delete yData;
}
bool SequencialPlotData::append(UAVObject* obj)
{
if (*uavObject == obj->getName()) {
//Get the field of interest
UAVObjectField* field = obj->getField(*uavField);
if (field) {
//Shift data forward and put the new value at the front
yData->append(field->getDouble() * pow(10, scalePower));
if (yData->size() > m_xWindowSize) {
yData->pop_front();
//Make the x-axis values scroll...
//xData->append( xData->last() + 1 );
//xData->pop_front();
} else
xData->insert(xData->size(), xData->size());
dataChanged();
return true;
}
}
return false;
}
bool ChronoPlotData::append(UAVObject* obj)
{
if (*uavObject == obj->getName()) {
//Get the field of interest
UAVObjectField* field = obj->getField(*uavField);
if (field) {
//Put the new value at the front
QDateTime NOW = QDateTime::currentDateTime();
double newestValue = NOW.toTime_t() + NOW.time().msec() / 1000.0;
xData->append(newestValue);
yData->append(field->getDouble() * pow(10, scalePower));
//Remove stale data
removeStaleData();
dataChanged();
return true;
}
}
return false;
}
void ChronoPlotData::removeStaleData()
{
double newestValue;
double oldestValue;
while (1) {
if (xData->size() == 0)
break;
newestValue = xData->last();
oldestValue = xData->first();
if (newestValue - oldestValue > m_xWindowSize) {
yData->pop_front();
xData->pop_front();
} else
break;
}
}
void ChronoPlotData::removeStaleDataTimeout()
{
removeStaleData();
dataChanged();
}
bool UAVObjectPlotData::append(UAVObject* obj)
{
return false;
}

View File

@ -1,142 +1,142 @@
/**
******************************************************************************
*
* @file plotdata.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Object that manages the data for a curve.
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef PLOTDATA_H
#define PLOTDATA_H
#include "uavobjects/uavobject.h"
#include "uavobjects/altitudeactual.h"
#include "uavobjects/positionactual.h"
#include "qwt/src/qwt.h"
#include "qwt/src/qwt_plot.h"
#include "qwt/src/qwt_plot_curve.h"
#include "qwt/src/qwt_scale_draw.h"
#include "qwt/src/qwt_scale_widget.h"
#include <QTimer>
#include <QTime>
#include <QVector>
enum PlotType {
SequencialPlot,
ChronoPlot,
UAVObjectPlot,
NPlotTypes
};
class PlotData : public QObject
{
Q_OBJECT
public:
PlotData(QString* uavObject, QString* uavField);
~PlotData();
QString* uavObject;
QString* uavField;
QwtPlotCurve* curve;
QVector<double>* xData;
QVector<double>* yData;
int scalePower; //This is the power to wich each value must be raised
double yMinimum;
double yMaximum;
double m_xWindowSize;
virtual bool append(UAVObject* obj) = 0;
virtual PlotType plotType() = 0;
signals:
void dataChanged();
};
class SequencialPlotData : public PlotData
{
Q_OBJECT
public:
SequencialPlotData(QString* uavObject, QString* uavField)
: PlotData(uavObject, uavField) {}
~SequencialPlotData() {}
bool append(UAVObject* obj);
virtual PlotType plotType() {
return SequencialPlot;
}
};
class ChronoPlotData : public PlotData
{
Q_OBJECT
public:
ChronoPlotData(QString* uavObject, QString* uavField)
: PlotData(uavObject, uavField) {
scalePower = 1;
//Setup timer
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(removeStaleDataTimeout()));
timer->start(100);
}
~ChronoPlotData() {
delete timer;
}
bool append(UAVObject* obj);
virtual PlotType plotType() {
return ChronoPlot;
}
private:
//QDateTime m_epoch;
void removeStaleData();
QTimer *timer;
private slots:
void removeStaleDataTimeout();
};
class UAVObjectPlotData : public PlotData
{
Q_OBJECT
public:
UAVObjectPlotData(QString* uavObject, QString* uavField)
: PlotData(uavObject, uavField) {}
~UAVObjectPlotData() {}
bool append(UAVObject* obj);
virtual PlotType plotType() {
return UAVObjectPlot;
}
};
#endif // PLOTDATA_H
/**
******************************************************************************
*
* @file plotdata.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Object that manages the data for a curve.
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef PLOTDATA_H
#define PLOTDATA_H
#include "uavobjects/uavobject.h"
#include "uavobjects/altitudeactual.h"
#include "uavobjects/positionactual.h"
#include "qwt/src/qwt.h"
#include "qwt/src/qwt_plot.h"
#include "qwt/src/qwt_plot_curve.h"
#include "qwt/src/qwt_scale_draw.h"
#include "qwt/src/qwt_scale_widget.h"
#include <QTimer>
#include <QTime>
#include <QVector>
enum PlotType {
SequencialPlot,
ChronoPlot,
UAVObjectPlot,
NPlotTypes
};
class PlotData : public QObject
{
Q_OBJECT
public:
PlotData(QString* uavObject, QString* uavField);
~PlotData();
QString* uavObject;
QString* uavField;
QwtPlotCurve* curve;
QVector<double>* xData;
QVector<double>* yData;
int scalePower; //This is the power to wich each value must be raised
double yMinimum;
double yMaximum;
double m_xWindowSize;
virtual bool append(UAVObject* obj) = 0;
virtual PlotType plotType() = 0;
signals:
void dataChanged();
};
class SequencialPlotData : public PlotData
{
Q_OBJECT
public:
SequencialPlotData(QString* uavObject, QString* uavField)
: PlotData(uavObject, uavField) {}
~SequencialPlotData() {}
bool append(UAVObject* obj);
virtual PlotType plotType() {
return SequencialPlot;
}
};
class ChronoPlotData : public PlotData
{
Q_OBJECT
public:
ChronoPlotData(QString* uavObject, QString* uavField)
: PlotData(uavObject, uavField) {
scalePower = 1;
//Setup timer
timer = new QTimer();
connect(timer, SIGNAL(timeout()), this, SLOT(removeStaleDataTimeout()));
timer->start(100);
}
~ChronoPlotData() {
delete timer;
}
bool append(UAVObject* obj);
virtual PlotType plotType() {
return ChronoPlot;
}
private:
//QDateTime m_epoch;
void removeStaleData();
QTimer *timer;
private slots:
void removeStaleDataTimeout();
};
class UAVObjectPlotData : public PlotData
{
Q_OBJECT
public:
UAVObjectPlotData(QString* uavObject, QString* uavField)
: PlotData(uavObject, uavField) {}
~UAVObjectPlotData() {}
bool append(UAVObject* obj);
virtual PlotType plotType() {
return UAVObjectPlot;
}
};
#endif // PLOTDATA_H

View File

@ -1,40 +1,40 @@
/**
******************************************************************************
*
* @file scopegadget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Gadget configuration
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadget.h"
#include "scopegadgetwidget.h"
ScopeGadget::ScopeGadget(QString classId, ScopeGadgetWidget *widget, QWidget *parent) :
IUAVGadget(classId, parent),
m_widget(widget)
{
}
ScopeGadget::~ScopeGadget()
{
}
/**
******************************************************************************
*
* @file scopegadget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Gadget configuration
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadget.h"
#include "scopegadgetwidget.h"
ScopeGadget::ScopeGadget(QString classId, ScopeGadgetWidget *widget, QWidget *parent) :
IUAVGadget(classId, parent),
m_widget(widget)
{
}
ScopeGadget::~ScopeGadget()
{
}

View File

@ -1,65 +1,65 @@
/**
******************************************************************************
*
* @file scopegadget.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGET_H_
#define SCOPEGADGET_H_
#include <coreplugin/iuavgadget.h>
class IUAVGadget;
//class QList<int>;
class QWidget;
class QString;
class ScopeGadgetWidget;
using namespace Core;
class ScopeGadget : public Core::IUAVGadget
{
Q_OBJECT
public:
ScopeGadget(QString classId, ScopeGadgetWidget *widget, QWidget *parent = 0);
~ScopeGadget();
QList<int> context() const {
return m_context;
}
QWidget *widget() {
return m_widget;
}
QString contextHelpId() const {
return QString();
}
private:
QWidget *m_widget;
QList<int> m_context;
};
#endif // SCOPEGADGET_H_
/**
******************************************************************************
*
* @file scopegadget.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGET_H_
#define SCOPEGADGET_H_
#include <coreplugin/iuavgadget.h>
class IUAVGadget;
//class QList<int>;
class QWidget;
class QString;
class ScopeGadgetWidget;
using namespace Core;
class ScopeGadget : public Core::IUAVGadget
{
Q_OBJECT
public:
ScopeGadget(QString classId, ScopeGadgetWidget *widget, QWidget *parent = 0);
~ScopeGadget();
QList<int> context() const {
return m_context;
}
QWidget *widget() {
return m_widget;
}
QString contextHelpId() const {
return QString();
}
private:
QWidget *m_widget;
QList<int> m_context;
};
#endif // SCOPEGADGET_H_

View File

@ -1,72 +1,72 @@
/**
******************************************************************************
*
* @file scopegadgetconfiguration.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget configuration
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadgetconfiguration.h"
#include <QtCore/QDataStream>
ScopeGadgetConfiguration::ScopeGadgetConfiguration(QString classId, const QByteArray &state, QObject *parent) :
IUAVGadgetConfiguration(classId, parent)
{
}
/**
* Clones a configuration.
*
*/
IUAVGadgetConfiguration *ScopeGadgetConfiguration::clone()
{
ScopeGadgetConfiguration *m = new ScopeGadgetConfiguration(this->classId());
//m->m_defaultDial=m_defaultDial;
return m;
}
/**
* Saves a configuration.
*
*/
QByteArray ScopeGadgetConfiguration::saveState() const
{
QByteArray bytes;
// QDataStream stream(&bytes, QIODevice::WriteOnly);
// stream << m_defaultDial;
// stream << dialBackgroundID;
// stream << dialForegroundID;
// stream << dialNeedleID1;
// stream << dialNeedleID2;
// stream << needle1MinValue;
// stream << needle1MaxValue;
// stream << needle2MinValue;
// stream << needle2MaxValue;
// stream << needle1DataObject;
// stream << needle1ObjectField;
// stream << needle2DataObject;
// stream << needle2ObjectField;
// stream << needle1Factor;
// stream << needle2Factor;
return bytes;
}
/**
******************************************************************************
*
* @file scopegadgetconfiguration.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget configuration
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadgetconfiguration.h"
#include <QtCore/QDataStream>
ScopeGadgetConfiguration::ScopeGadgetConfiguration(QString classId, const QByteArray &state, QObject *parent) :
IUAVGadgetConfiguration(classId, parent)
{
}
/**
* Clones a configuration.
*
*/
IUAVGadgetConfiguration *ScopeGadgetConfiguration::clone()
{
ScopeGadgetConfiguration *m = new ScopeGadgetConfiguration(this->classId());
//m->m_defaultDial=m_defaultDial;
return m;
}
/**
* Saves a configuration.
*
*/
QByteArray ScopeGadgetConfiguration::saveState() const
{
QByteArray bytes;
// QDataStream stream(&bytes, QIODevice::WriteOnly);
// stream << m_defaultDial;
// stream << dialBackgroundID;
// stream << dialForegroundID;
// stream << dialNeedleID1;
// stream << dialNeedleID2;
// stream << needle1MinValue;
// stream << needle1MaxValue;
// stream << needle2MinValue;
// stream << needle2MaxValue;
// stream << needle1DataObject;
// stream << needle1ObjectField;
// stream << needle2DataObject;
// stream << needle2ObjectField;
// stream << needle1Factor;
// stream << needle2Factor;
return bytes;
}

View File

@ -1,46 +1,46 @@
/**
******************************************************************************
*
* @file scopegadgetconfiguration.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget configuration
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETCONFIGURATION_H
#define SCOPEGADGETCONFIGURATION_H
#include <coreplugin/iuavgadgetconfiguration.h>
using namespace Core;
class ScopeGadgetConfiguration : public IUAVGadgetConfiguration
{
Q_OBJECT
public:
explicit ScopeGadgetConfiguration(QString classId, const QByteArray &state = 0, QObject *parent = 0);
QByteArray saveState() const;
IUAVGadgetConfiguration *clone();
};
#endif // SCOPEGADGETCONFIGURATION_H
/**
******************************************************************************
*
* @file scopegadgetconfiguration.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget configuration
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETCONFIGURATION_H
#define SCOPEGADGETCONFIGURATION_H
#include <coreplugin/iuavgadgetconfiguration.h>
using namespace Core;
class ScopeGadgetConfiguration : public IUAVGadgetConfiguration
{
Q_OBJECT
public:
explicit ScopeGadgetConfiguration(QString classId, const QByteArray &state = 0, QObject *parent = 0);
QByteArray saveState() const;
IUAVGadgetConfiguration *clone();
};
#endif // SCOPEGADGETCONFIGURATION_H

View File

@ -1,59 +1,59 @@
/**
******************************************************************************
*
* @file scopegadgetfactory.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Gadget Factory
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadgetfactory.h"
#include "scopegadgetwidget.h"
#include "scopegadgetconfiguration.h"
#include "scopegadgetoptionspage.h"
#include "scopegadget.h"
#include <coreplugin/iuavgadget.h>
ScopeGadgetFactory::ScopeGadgetFactory(QObject *parent) :
IUAVGadgetFactory(QString("ScopeGadget"),
tr("Scope Gadget"),
parent)
{
}
ScopeGadgetFactory::~ScopeGadgetFactory()
{
}
Core::IUAVGadget* ScopeGadgetFactory::createGadget(QWidget *parent)
{
ScopeGadgetWidget* gadgetWidget = new ScopeGadgetWidget(parent);
return new ScopeGadget(QString("ScopeGadget"), gadgetWidget, parent);
}
IUAVGadgetConfiguration *ScopeGadgetFactory::createConfiguration(const QByteArray &state)
{
return new ScopeGadgetConfiguration(QString("ScopeGadget"), state);
}
IOptionsPage *ScopeGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config)
{
return new ScopeGadgetOptionsPage(qobject_cast<ScopeGadgetConfiguration*>(config));
}
/**
******************************************************************************
*
* @file scopegadgetfactory.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Gadget Factory
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadgetfactory.h"
#include "scopegadgetwidget.h"
#include "scopegadgetconfiguration.h"
#include "scopegadgetoptionspage.h"
#include "scopegadget.h"
#include <coreplugin/iuavgadget.h>
ScopeGadgetFactory::ScopeGadgetFactory(QObject *parent) :
IUAVGadgetFactory(QString("ScopeGadget"),
tr("Scope Gadget"),
parent)
{
}
ScopeGadgetFactory::~ScopeGadgetFactory()
{
}
Core::IUAVGadget* ScopeGadgetFactory::createGadget(QWidget *parent)
{
ScopeGadgetWidget* gadgetWidget = new ScopeGadgetWidget(parent);
return new ScopeGadget(QString("ScopeGadget"), gadgetWidget, parent);
}
IUAVGadgetConfiguration *ScopeGadgetFactory::createConfiguration(const QByteArray &state)
{
return new ScopeGadgetConfiguration(QString("ScopeGadget"), state);
}
IOptionsPage *ScopeGadgetFactory::createOptionsPage(IUAVGadgetConfiguration *config)
{
return new ScopeGadgetOptionsPage(qobject_cast<ScopeGadgetConfiguration*>(config));
}

View File

@ -1,53 +1,53 @@
/**
******************************************************************************
*
* @file scopegadgetfactory.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget Factory
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETFACTORY_H_
#define SCOPEGADGETFACTORY_H_
#include <coreplugin/iuavgadgetfactory.h>
namespace Core
{
class IUAVGadget;
class IUAVGadgetFactory;
}
using namespace Core;
class ScopeGadgetFactory : public IUAVGadgetFactory
{
Q_OBJECT
public:
ScopeGadgetFactory(QObject *parent = 0);
~ScopeGadgetFactory();
Core::IUAVGadget *createGadget(QWidget *parent);
IUAVGadgetConfiguration *createConfiguration(const QByteArray &state);
IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config);
};
#endif // SCOPEGADGETFACTORY_H_
/**
******************************************************************************
*
* @file scopegadgetfactory.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget Factory
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETFACTORY_H_
#define SCOPEGADGETFACTORY_H_
#include <coreplugin/iuavgadgetfactory.h>
namespace Core
{
class IUAVGadget;
class IUAVGadgetFactory;
}
using namespace Core;
class ScopeGadgetFactory : public IUAVGadgetFactory
{
Q_OBJECT
public:
ScopeGadgetFactory(QObject *parent = 0);
~ScopeGadgetFactory();
Core::IUAVGadget *createGadget(QWidget *parent);
IUAVGadgetConfiguration *createConfiguration(const QByteArray &state);
IOptionsPage *createOptionsPage(IUAVGadgetConfiguration *config);
};
#endif // SCOPEGADGETFACTORY_H_

View File

@ -1,75 +1,75 @@
/**
******************************************************************************
*
* @file scopegadgetoptionspage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget options page
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadgetoptionspage.h"
#include "scopegadgetconfiguration.h"
#include "ui_scopegadgetoptionspage.h"
#include "extensionsystem/pluginmanager.h"
#include "uavobjects/uavobjectmanager.h"
#include "uavobjects/uavdataobject.h"
ScopeGadgetOptionsPage::ScopeGadgetOptionsPage(ScopeGadgetConfiguration *config, QObject *parent) :
IOptionsPage(parent),
m_config(config)
{
//nothing to do here...
}
//creates options page widget (uses the UI file)
QWidget* ScopeGadgetOptionsPage::createPage(QWidget *parent)
{
options_page = new Ui::ScopeGadgetOptionsPage();
//main widget
QWidget *optionsPageWidget = new QWidget;
//main layout
options_page->setupUi(optionsPageWidget);
//TODO: Rest of the init stuff here
return optionsPageWidget;
}
/**
* Called when the user presses apply or OK.
*
* Saves the current values
*
*/
void ScopeGadgetOptionsPage::apply()
{
//Apply configuration changes
// m_config->setDialFile(options_page->svgSourceFile->text());
}
void ScopeGadgetOptionsPage::finish()
{
}
/**
******************************************************************************
*
* @file scopegadgetoptionspage.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget options page
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopegadgetoptionspage.h"
#include "scopegadgetconfiguration.h"
#include "ui_scopegadgetoptionspage.h"
#include "extensionsystem/pluginmanager.h"
#include "uavobjects/uavobjectmanager.h"
#include "uavobjects/uavdataobject.h"
ScopeGadgetOptionsPage::ScopeGadgetOptionsPage(ScopeGadgetConfiguration *config, QObject *parent) :
IOptionsPage(parent),
m_config(config)
{
//nothing to do here...
}
//creates options page widget (uses the UI file)
QWidget* ScopeGadgetOptionsPage::createPage(QWidget *parent)
{
options_page = new Ui::ScopeGadgetOptionsPage();
//main widget
QWidget *optionsPageWidget = new QWidget;
//main layout
options_page->setupUi(optionsPageWidget);
//TODO: Rest of the init stuff here
return optionsPageWidget;
}
/**
* Called when the user presses apply or OK.
*
* Saves the current values
*
*/
void ScopeGadgetOptionsPage::apply()
{
//Apply configuration changes
// m_config->setDialFile(options_page->svgSourceFile->text());
}
void ScopeGadgetOptionsPage::finish()
{
}

View File

@ -1,66 +1,66 @@
/**
******************************************************************************
*
* @file scopegadgetoptionspage.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget options page
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETOPTIONSPAGE_H
#define SCOPEGADGETOPTIONSPAGE_H
#include "coreplugin/dialogs/ioptionspage.h"
#include "QString"
#include <QStringList>
#include <QDebug>
namespace Core
{
class IUAVGadgetConfiguration;
}
class ScopeGadgetConfiguration;
namespace Ui
{
class ScopeGadgetOptionsPage;
}
using namespace Core;
class ScopeGadgetOptionsPage : public IOptionsPage
{
Q_OBJECT
public:
explicit ScopeGadgetOptionsPage(ScopeGadgetConfiguration *config, QObject *parent = 0);
QWidget *createPage(QWidget *parent);
void apply();
void finish();
private:
Ui::ScopeGadgetOptionsPage *options_page;
ScopeGadgetConfiguration *m_config;
};
#endif // SCOPEGADGETOPTIONSPAGE_H
/**
******************************************************************************
*
* @file scopegadgetoptionspage.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget options page
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETOPTIONSPAGE_H
#define SCOPEGADGETOPTIONSPAGE_H
#include "coreplugin/dialogs/ioptionspage.h"
#include "QString"
#include <QStringList>
#include <QDebug>
namespace Core
{
class IUAVGadgetConfiguration;
}
class ScopeGadgetConfiguration;
namespace Ui
{
class ScopeGadgetOptionsPage;
}
using namespace Core;
class ScopeGadgetOptionsPage : public IOptionsPage
{
Q_OBJECT
public:
explicit ScopeGadgetOptionsPage(ScopeGadgetConfiguration *config, QObject *parent = 0);
QWidget *createPage(QWidget *parent);
void apply();
void finish();
private:
Ui::ScopeGadgetOptionsPage *options_page;
ScopeGadgetConfiguration *m_config;
};
#endif // SCOPEGADGETOPTIONSPAGE_H

View File

@ -1,315 +1,315 @@
/**
******************************************************************************
*
* @file scopegadgetwidget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Gadget Widget
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "uavobjects/uavobjectmanager.h"
#include "extensionsystem/pluginmanager.h"
//#include "uavobjects/uavobject.h"
//#include "uavobjects/uavdataobject.h"
//#include "uavobjects/uavobjectfield.h"
//#include "uavobjects/uavmetaobject.h"
#include "scopegadgetwidget.h"
#include "qwt/src/qwt_plot_curve.h"
#include "qwt/src/qwt_legend.h"
#include <iostream>
#include <math.h>
#include <QDebug>
#include <QStringList>
#include <QtGui/QWidget>
#include <QtGui/QVBoxLayout>
#include <QtGui/QPushButton>
TestDataGen* ScopeGadgetWidget::testDataGen;
ScopeGadgetWidget::ScopeGadgetWidget(QWidget *parent) : QwtPlot(parent)
{
//setupExamplePlot();
//Setup defaults
//setupSequencialPlot();
setupChronoPlot();
addCurvePlot(QString("AltitudeActual"), QString("Altitude"), -1, QPen(Qt::blue));
addCurvePlot(QString("AltitudeActual"), QString("Temperature"), 0, QPen(Qt::red));
//if(testDataGen == 0)
// testDataGen = new TestDataGen();
}
void ScopeGadgetWidget::preparePlot(PlotType plotType)
{
m_plotType = plotType;
clearCurvePlots();
setMinimumSize(64, 64);
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
// Show a title
setTitle("Scope");
// Show a legend at the bottom
if (legend() == 0) {
QwtLegend *legend = new QwtLegend();
legend->setFrameStyle(QFrame::Box | QFrame::Sunken);
insertLegend(legend, QwtPlot::BottomLegend);
}
}
void ScopeGadgetWidget::setupSequencialPlot()
{
//setAutoReplot(true);
m_xWindowSize = 100;
preparePlot(SequencialPlot);
setAxisTitle(QwtPlot::xBottom, "Index");
setAxisScale(QwtPlot::xBottom, 0, m_xWindowSize);
//setAxisLabelRotation(QwtPlot::xBottom, -50.0);
setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);
}
void ScopeGadgetWidget::setupChronoPlot()
{
//setAutoReplot(true);
m_xWindowSize = 100;
preparePlot(ChronoPlot);
setAxisTitle(QwtPlot::xBottom, "Time [h:m:s]");
setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw());
uint NOW = QDateTime::currentDateTime().toTime_t();
setAxisScale(QwtPlot::xBottom, NOW - m_xWindowSize, NOW);
setAxisLabelRotation(QwtPlot::xBottom, -50.0);
setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);
/*
In situations, when there is a label at the most right position of the
scale, additional space is needed to display the overlapping part
of the label would be taken by reducing the width of scale and canvas.
To avoid this "jumping canvas" effect, we add a permanent margin.
We don't need to do the same for the left border, because there
is enough space for the overlapping label below the left scale.
*/
QwtScaleWidget *scaleWidget = axisWidget(QwtPlot::xBottom);
const int fmh = QFontMetrics(scaleWidget->font()).height();
scaleWidget->setMinBorderDist(0, fmh / 2);
}
void ScopeGadgetWidget::addCurvePlot(QString uavObject, QString uavField, int scaleOrderFactor, QPen pen)
{
PlotData* plotData;
if (m_plotType == SequencialPlot)
plotData = new SequencialPlotData(&uavObject, &uavField);
else if (m_plotType == ChronoPlot)
plotData = new ChronoPlotData(&uavObject, &uavField);
else if (m_plotType == UAVObjectPlot)
plotData = new UAVObjectPlotData(&uavObject, &uavField);
plotData->m_xWindowSize = m_xWindowSize;
plotData->scalePower = scaleOrderFactor;
//If the y-bounds are supplied, set them
if (plotData->yMinimum != plotData->yMaximum)
setAxisScale(QwtPlot::yLeft, plotData->yMinimum, plotData->yMaximum);
//Create the curve
QString curveName = *(plotData->uavObject) + "." + *(plotData->uavField);
QwtPlotCurve* plotCurve = new QwtPlotCurve(curveName);
plotCurve->setPen(pen);
plotCurve->setData(*plotData->xData, *plotData->yData);
plotCurve->attach(this);
plotData->curve = plotCurve;
//Keep the curve details for later
m_curvesData.insert(curveName, plotData);
//Get the object to monitor
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(*(plotData->uavObject)));
//Link to the signal of new data only if this UAVObject has not been to connected yet
if (!m_connectedUAVObjects.contains(obj->getName())) {
m_connectedUAVObjects.append(obj->getName());
connect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(uavObjectReceived(UAVObject*)));
}
connect(plotData, SIGNAL(dataChanged()), this, SLOT(replotNewData()));
}
void ScopeGadgetWidget::removeCurvePlot(QString uavObject, QString uavField)
{
QString curveName = uavObject + "." + uavField;
PlotData* plotData = m_curvesData.take(curveName);
m_curvesData.remove(curveName);
plotData->curve->detach();
delete plotData;
}
void ScopeGadgetWidget::uavObjectReceived(UAVObject* obj)
{
foreach(PlotData* plotData, m_curvesData.values()) {
plotData->append(obj);
plotData->curve->setData(*plotData->xData, *plotData->yData);
}
}
void ScopeGadgetWidget::replotNewData()
{
if (m_plotType == ChronoPlot) {
uint NOW = QDateTime::currentDateTime().toTime_t();
setAxisScale(QwtPlot::xBottom, NOW - m_xWindowSize, NOW);
}
replot();
}
void ScopeGadgetWidget::setupExamplePlot()
{
preparePlot(SequencialPlot);
// Show the axes
setAxisTitle(xBottom, "x");
setAxisTitle(yLeft, "y");
// Calculate the data, 500 points each
const int points = 500;
double x[ points ];
double sn[ points ];
double cs[ points ];
double sg[ points ];
for (int i = 0; i < points; i++) {
x[i] = (3.0 * 3.14 / double(points)) * double(i);
sn[i] = 2.0 * sin(x[i]);
cs[i] = 3.0 * cos(x[i]);
sg[i] = (sn[i] > 0) ? 1 : ((sn[i] < 0) ? -1 : 0);
}
// add curves
QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1");
curve1->setPen(QPen(Qt::blue));
QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2");
curve2->setPen(QPen(Qt::red));
QwtPlotCurve *curve3 = new QwtPlotCurve("Curve 3");
curve3->setPen(QPen(Qt::green));
// copy the data into the curves
curve1->setData(x, sn, points);
curve2->setData(x, cs, points);
curve3->setData(x, sg, points);
curve1->attach(this);
curve2->attach(this);
curve3->attach(this);
// finally, refresh the plot
replot();
}
ScopeGadgetWidget::~ScopeGadgetWidget()
{
//Get the object to de-monitor
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
foreach(QString uavObjName, m_connectedUAVObjects) {
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(uavObjName));
disconnect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(uavObjectReceived(UAVObject*)));
}
clearCurvePlots();
}
void ScopeGadgetWidget::clearCurvePlots()
{
foreach(PlotData* plotData, m_curvesData.values()) {
plotData->curve->detach();
delete plotData->curve;
delete plotData;
}
m_curvesData.clear();
}
TestDataGen::TestDataGen()
{
// Get required UAVObjects
ExtensionSystem::PluginManager* pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager* objManager = pm->getObject<UAVObjectManager>();
altActual = AltitudeActual::GetInstance(objManager);
gps = PositionActual::GetInstance(objManager);
//Setup timer
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(genTestData()));
timer->start(100);
}
void TestDataGen::genTestData()
{
// Update AltitudeActual object
AltitudeActual::DataFields altActualData;
altActualData.Altitude = 500 * sin(0.1 * testTime) + 200 * cos(0.4 * testTime) + 800;
altActualData.Temperature = 30 * sin(0.05 * testTime);
altActualData.Pressure = 100;
altActual->setData(altActualData);
// Update gps objects
PositionActual::DataFields gpsData;
gpsData.Altitude = 0;
gpsData.Heading = 0;
gpsData.Groundspeed = 0;
gpsData.Latitude = 0;
gpsData.Longitude = 0;
gpsData.Satellites = 10;
gps->setData(gpsData);
testTime++;
}
TestDataGen::~TestDataGen()
{
if (timer)
timer->stop();
delete timer;
}
/**
******************************************************************************
*
* @file scopegadgetwidget.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Gadget Widget
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "uavobjects/uavobjectmanager.h"
#include "extensionsystem/pluginmanager.h"
//#include "uavobjects/uavobject.h"
//#include "uavobjects/uavdataobject.h"
//#include "uavobjects/uavobjectfield.h"
//#include "uavobjects/uavmetaobject.h"
#include "scopegadgetwidget.h"
#include "qwt/src/qwt_plot_curve.h"
#include "qwt/src/qwt_legend.h"
#include <iostream>
#include <math.h>
#include <QDebug>
#include <QStringList>
#include <QtGui/QWidget>
#include <QtGui/QVBoxLayout>
#include <QtGui/QPushButton>
TestDataGen* ScopeGadgetWidget::testDataGen;
ScopeGadgetWidget::ScopeGadgetWidget(QWidget *parent) : QwtPlot(parent)
{
//setupExamplePlot();
//Setup defaults
//setupSequencialPlot();
setupChronoPlot();
addCurvePlot(QString("AltitudeActual"), QString("Altitude"), -1, QPen(Qt::blue));
addCurvePlot(QString("AltitudeActual"), QString("Temperature"), 0, QPen(Qt::red));
//if(testDataGen == 0)
// testDataGen = new TestDataGen();
}
void ScopeGadgetWidget::preparePlot(PlotType plotType)
{
m_plotType = plotType;
clearCurvePlots();
setMinimumSize(64, 64);
setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
// Show a title
setTitle("Scope");
// Show a legend at the bottom
if (legend() == 0) {
QwtLegend *legend = new QwtLegend();
legend->setFrameStyle(QFrame::Box | QFrame::Sunken);
insertLegend(legend, QwtPlot::BottomLegend);
}
}
void ScopeGadgetWidget::setupSequencialPlot()
{
//setAutoReplot(true);
m_xWindowSize = 100;
preparePlot(SequencialPlot);
setAxisTitle(QwtPlot::xBottom, "Index");
setAxisScale(QwtPlot::xBottom, 0, m_xWindowSize);
//setAxisLabelRotation(QwtPlot::xBottom, -50.0);
setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);
}
void ScopeGadgetWidget::setupChronoPlot()
{
//setAutoReplot(true);
m_xWindowSize = 100;
preparePlot(ChronoPlot);
setAxisTitle(QwtPlot::xBottom, "Time [h:m:s]");
setAxisScaleDraw(QwtPlot::xBottom, new TimeScaleDraw());
uint NOW = QDateTime::currentDateTime().toTime_t();
setAxisScale(QwtPlot::xBottom, NOW - m_xWindowSize, NOW);
setAxisLabelRotation(QwtPlot::xBottom, -50.0);
setAxisLabelAlignment(QwtPlot::xBottom, Qt::AlignLeft | Qt::AlignBottom);
/*
In situations, when there is a label at the most right position of the
scale, additional space is needed to display the overlapping part
of the label would be taken by reducing the width of scale and canvas.
To avoid this "jumping canvas" effect, we add a permanent margin.
We don't need to do the same for the left border, because there
is enough space for the overlapping label below the left scale.
*/
QwtScaleWidget *scaleWidget = axisWidget(QwtPlot::xBottom);
const int fmh = QFontMetrics(scaleWidget->font()).height();
scaleWidget->setMinBorderDist(0, fmh / 2);
}
void ScopeGadgetWidget::addCurvePlot(QString uavObject, QString uavField, int scaleOrderFactor, QPen pen)
{
PlotData* plotData;
if (m_plotType == SequencialPlot)
plotData = new SequencialPlotData(&uavObject, &uavField);
else if (m_plotType == ChronoPlot)
plotData = new ChronoPlotData(&uavObject, &uavField);
else if (m_plotType == UAVObjectPlot)
plotData = new UAVObjectPlotData(&uavObject, &uavField);
plotData->m_xWindowSize = m_xWindowSize;
plotData->scalePower = scaleOrderFactor;
//If the y-bounds are supplied, set them
if (plotData->yMinimum != plotData->yMaximum)
setAxisScale(QwtPlot::yLeft, plotData->yMinimum, plotData->yMaximum);
//Create the curve
QString curveName = *(plotData->uavObject) + "." + *(plotData->uavField);
QwtPlotCurve* plotCurve = new QwtPlotCurve(curveName);
plotCurve->setPen(pen);
plotCurve->setData(*plotData->xData, *plotData->yData);
plotCurve->attach(this);
plotData->curve = plotCurve;
//Keep the curve details for later
m_curvesData.insert(curveName, plotData);
//Get the object to monitor
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(*(plotData->uavObject)));
//Link to the signal of new data only if this UAVObject has not been to connected yet
if (!m_connectedUAVObjects.contains(obj->getName())) {
m_connectedUAVObjects.append(obj->getName());
connect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(uavObjectReceived(UAVObject*)));
}
connect(plotData, SIGNAL(dataChanged()), this, SLOT(replotNewData()));
}
void ScopeGadgetWidget::removeCurvePlot(QString uavObject, QString uavField)
{
QString curveName = uavObject + "." + uavField;
PlotData* plotData = m_curvesData.take(curveName);
m_curvesData.remove(curveName);
plotData->curve->detach();
delete plotData;
}
void ScopeGadgetWidget::uavObjectReceived(UAVObject* obj)
{
foreach(PlotData* plotData, m_curvesData.values()) {
plotData->append(obj);
plotData->curve->setData(*plotData->xData, *plotData->yData);
}
}
void ScopeGadgetWidget::replotNewData()
{
if (m_plotType == ChronoPlot) {
uint NOW = QDateTime::currentDateTime().toTime_t();
setAxisScale(QwtPlot::xBottom, NOW - m_xWindowSize, NOW);
}
replot();
}
void ScopeGadgetWidget::setupExamplePlot()
{
preparePlot(SequencialPlot);
// Show the axes
setAxisTitle(xBottom, "x");
setAxisTitle(yLeft, "y");
// Calculate the data, 500 points each
const int points = 500;
double x[ points ];
double sn[ points ];
double cs[ points ];
double sg[ points ];
for (int i = 0; i < points; i++) {
x[i] = (3.0 * 3.14 / double(points)) * double(i);
sn[i] = 2.0 * sin(x[i]);
cs[i] = 3.0 * cos(x[i]);
sg[i] = (sn[i] > 0) ? 1 : ((sn[i] < 0) ? -1 : 0);
}
// add curves
QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1");
curve1->setPen(QPen(Qt::blue));
QwtPlotCurve *curve2 = new QwtPlotCurve("Curve 2");
curve2->setPen(QPen(Qt::red));
QwtPlotCurve *curve3 = new QwtPlotCurve("Curve 3");
curve3->setPen(QPen(Qt::green));
// copy the data into the curves
curve1->setData(x, sn, points);
curve2->setData(x, cs, points);
curve3->setData(x, sg, points);
curve1->attach(this);
curve2->attach(this);
curve3->attach(this);
// finally, refresh the plot
replot();
}
ScopeGadgetWidget::~ScopeGadgetWidget()
{
//Get the object to de-monitor
ExtensionSystem::PluginManager *pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager *objManager = pm->getObject<UAVObjectManager>();
foreach(QString uavObjName, m_connectedUAVObjects) {
UAVDataObject* obj = dynamic_cast<UAVDataObject*>(objManager->getObject(uavObjName));
disconnect(obj, SIGNAL(objectUpdated(UAVObject*)), this, SLOT(uavObjectReceived(UAVObject*)));
}
clearCurvePlots();
}
void ScopeGadgetWidget::clearCurvePlots()
{
foreach(PlotData* plotData, m_curvesData.values()) {
plotData->curve->detach();
delete plotData->curve;
delete plotData;
}
m_curvesData.clear();
}
TestDataGen::TestDataGen()
{
// Get required UAVObjects
ExtensionSystem::PluginManager* pm = ExtensionSystem::PluginManager::instance();
UAVObjectManager* objManager = pm->getObject<UAVObjectManager>();
altActual = AltitudeActual::GetInstance(objManager);
gps = PositionActual::GetInstance(objManager);
//Setup timer
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(genTestData()));
timer->start(100);
}
void TestDataGen::genTestData()
{
// Update AltitudeActual object
AltitudeActual::DataFields altActualData;
altActualData.Altitude = 500 * sin(0.1 * testTime) + 200 * cos(0.4 * testTime) + 800;
altActualData.Temperature = 30 * sin(0.05 * testTime);
altActualData.Pressure = 100;
altActual->setData(altActualData);
// Update gps objects
PositionActual::DataFields gpsData;
gpsData.Altitude = 0;
gpsData.Heading = 0;
gpsData.Groundspeed = 0;
gpsData.Latitude = 0;
gpsData.Longitude = 0;
gpsData.Satellites = 10;
gps->setData(gpsData);
testTime++;
}
TestDataGen::~TestDataGen()
{
if (timer)
timer->stop();
delete timer;
}

View File

@ -1,117 +1,117 @@
/**
******************************************************************************
*
* @file scopegadgetwidget.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget Widget
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETWIDGET_H_
#define SCOPEGADGETWIDGET_H_
#include "plotdata.h"
#include "uavobjects/uavobject.h"
#include "uavobjects/altitudeactual.h"
#include "uavobjects/positionactual.h"
#include "qwt/src/qwt.h"
#include "qwt/src/qwt_plot.h"
#include "qwt/src/qwt_plot_curve.h"
#include "qwt/src/qwt_scale_draw.h"
#include "qwt/src/qwt_scale_widget.h"
#include <QTimer>
#include <QTime>
#include <QVector>
class TimeScaleDraw : public QwtScaleDraw
{
public:
TimeScaleDraw() {
baseTime = QDateTime::currentDateTime().toTime_t();
}
virtual QwtText label(double v) const {
QDateTime upTime = QDateTime::fromTime_t((uint)v);
return upTime.toLocalTime().toString("hh:mm:ss");
}
private:
double baseTime;
};
class TestDataGen : QObject
{
Q_OBJECT
public:
TestDataGen();
~TestDataGen();
private:
AltitudeActual* altActual;
PositionActual* gps;
QTimer *timer;
double testTime;
private slots:
void genTestData();
};
class ScopeGadgetWidget : public QwtPlot
{
Q_OBJECT
public:
ScopeGadgetWidget(QWidget *parent = 0);
~ScopeGadgetWidget();
private slots:
void uavObjectReceived(UAVObject*);
void replotNewData();
private:
void preparePlot(PlotType plotType);
void setupExamplePlot();
void setupSequencialPlot();
void setupChronoPlot();
void setupUAVObjectPlot();
void addCurvePlot(QString uavObject, QString uavField, int scaleOrderFactor = 0, QPen pen = QPen(Qt::black));
void removeCurvePlot(QString uavObject, QString uavField);
void clearCurvePlots();
PlotType m_plotType;
double m_xWindowSize;
QVector<QString> m_connectedUAVObjects;
QMap<QString, PlotData*> m_curvesData;
static TestDataGen* testDataGen;
};
#endif /* SCOPEGADGETWIDGET_H_ */
/**
******************************************************************************
*
* @file scopegadgetwidget.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin Gadget Widget
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEGADGETWIDGET_H_
#define SCOPEGADGETWIDGET_H_
#include "plotdata.h"
#include "uavobjects/uavobject.h"
#include "uavobjects/altitudeactual.h"
#include "uavobjects/positionactual.h"
#include "qwt/src/qwt.h"
#include "qwt/src/qwt_plot.h"
#include "qwt/src/qwt_plot_curve.h"
#include "qwt/src/qwt_scale_draw.h"
#include "qwt/src/qwt_scale_widget.h"
#include <QTimer>
#include <QTime>
#include <QVector>
class TimeScaleDraw : public QwtScaleDraw
{
public:
TimeScaleDraw() {
baseTime = QDateTime::currentDateTime().toTime_t();
}
virtual QwtText label(double v) const {
QDateTime upTime = QDateTime::fromTime_t((uint)v);
return upTime.toLocalTime().toString("hh:mm:ss");
}
private:
double baseTime;
};
class TestDataGen : QObject
{
Q_OBJECT
public:
TestDataGen();
~TestDataGen();
private:
AltitudeActual* altActual;
PositionActual* gps;
QTimer *timer;
double testTime;
private slots:
void genTestData();
};
class ScopeGadgetWidget : public QwtPlot
{
Q_OBJECT
public:
ScopeGadgetWidget(QWidget *parent = 0);
~ScopeGadgetWidget();
private slots:
void uavObjectReceived(UAVObject*);
void replotNewData();
private:
void preparePlot(PlotType plotType);
void setupExamplePlot();
void setupSequencialPlot();
void setupChronoPlot();
void setupUAVObjectPlot();
void addCurvePlot(QString uavObject, QString uavField, int scaleOrderFactor = 0, QPen pen = QPen(Qt::black));
void removeCurvePlot(QString uavObject, QString uavField);
void clearCurvePlots();
PlotType m_plotType;
double m_xWindowSize;
QVector<QString> m_connectedUAVObjects;
QMap<QString, PlotData*> m_curvesData;
static TestDataGen* testDataGen;
};
#endif /* SCOPEGADGETWIDGET_H_ */

View File

@ -1,66 +1,66 @@
/**
******************************************************************************
*
* @file scopeplugin.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopeplugin.h"
#include "scopegadgetfactory.h"
#include <QDebug>
#include <QtPlugin>
#include <QStringList>
#include <extensionsystem/pluginmanager.h>
ScopePlugin::ScopePlugin()
{
// Do nothing
}
ScopePlugin::~ScopePlugin()
{
// Do nothing
}
bool ScopePlugin::initialize(const QStringList& args, QString *errMsg)
{
Q_UNUSED(args);
Q_UNUSED(errMsg);
mf = new ScopeGadgetFactory(this);
addAutoReleasedObject(mf);
return true;
}
void ScopePlugin::extensionsInitialized()
{
// Do nothing
}
void ScopePlugin::shutdown()
{
// Do nothing
}
Q_EXPORT_PLUGIN(ScopePlugin)
/**
******************************************************************************
*
* @file scopeplugin.cpp
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include "scopeplugin.h"
#include "scopegadgetfactory.h"
#include <QDebug>
#include <QtPlugin>
#include <QStringList>
#include <extensionsystem/pluginmanager.h>
ScopePlugin::ScopePlugin()
{
// Do nothing
}
ScopePlugin::~ScopePlugin()
{
// Do nothing
}
bool ScopePlugin::initialize(const QStringList& args, QString *errMsg)
{
Q_UNUSED(args);
Q_UNUSED(errMsg);
mf = new ScopeGadgetFactory(this);
addAutoReleasedObject(mf);
return true;
}
void ScopePlugin::extensionsInitialized()
{
// Do nothing
}
void ScopePlugin::shutdown()
{
// Do nothing
}
Q_EXPORT_PLUGIN(ScopePlugin)

View File

@ -1,46 +1,46 @@
/**
******************************************************************************
*
* @file scopeplugin.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin
* @see The GNU Public License (GPL) Version 3
* @defgroup Scope
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEPLUGIN_H_
#define SCOPEPLUGIN_H_
#include <extensionsystem/iplugin.h>
class ScopeGadgetFactory;
class ScopePlugin : public ExtensionSystem::IPlugin
{
public:
ScopePlugin();
~ScopePlugin();
void extensionsInitialized();
bool initialize(const QStringList & arguments, QString * errorString);
void shutdown();
private:
ScopeGadgetFactory *mf;
};
#endif /* SCOPEPLUGIN_H_ */
/**
******************************************************************************
*
* @file scopeplugin.h
* @author The OpenPilot Team, http://www.openpilot.org Copyright (C) 2010.
* @brief Scope Plugin
* @see The GNU Public License (GPL) Version 3
* @defgroup scopeplugin
* @{
*
*****************************************************************************/
/*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* for more details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef SCOPEPLUGIN_H_
#define SCOPEPLUGIN_H_
#include <extensionsystem/iplugin.h>
class ScopeGadgetFactory;
class ScopePlugin : public ExtensionSystem::IPlugin
{
public:
ScopePlugin();
~ScopePlugin();
void extensionsInitialized();
bool initialize(const QStringList & arguments, QString * errorString);
void shutdown();
private:
ScopeGadgetFactory *mf;
};
#endif /* SCOPEPLUGIN_H_ */