Commit dfbaf7f2 authored by Gus Grubba's avatar Gus Grubba

Core Mavlink log handler.

parent 42f447cc
...@@ -334,6 +334,7 @@ HEADERS += \ ...@@ -334,6 +334,7 @@ HEADERS += \
src/uas/UAS.h \ src/uas/UAS.h \
src/uas/UASInterface.h \ src/uas/UASInterface.h \
src/uas/UASMessageHandler.h \ src/uas/UASMessageHandler.h \
src/uas/MavlinkLogManager.h \
src/ui/toolbar/MainToolBarController.h \ src/ui/toolbar/MainToolBarController.h \
src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \ src/AutoPilotPlugins/PX4/PX4AirframeLoader.h \
src/AutoPilotPlugins/APM/APMAirframeLoader.h \ src/AutoPilotPlugins/APM/APMAirframeLoader.h \
...@@ -498,6 +499,7 @@ SOURCES += \ ...@@ -498,6 +499,7 @@ SOURCES += \
src/QmlControls/QmlObjectListModel.cc \ src/QmlControls/QmlObjectListModel.cc \
src/uas/UAS.cc \ src/uas/UAS.cc \
src/uas/UASMessageHandler.cc \ src/uas/UASMessageHandler.cc \
src/uas/MavlinkLogManager.cc \
src/ui/toolbar/MainToolBarController.cc \ src/ui/toolbar/MainToolBarController.cc \
src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \ src/AutoPilotPlugins/PX4/PX4AirframeLoader.cc \
src/AutoPilotPlugins/APM/APMAirframeLoader.cc \ src/AutoPilotPlugins/APM/APMAirframeLoader.cc \
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "FollowMe.h" #include "FollowMe.h"
#include "PositionManager.h" #include "PositionManager.h"
#include "VideoManager.h" #include "VideoManager.h"
#include "MavlinkLogManager.h"
QGCToolbox::QGCToolbox(QGCApplication* app) QGCToolbox::QGCToolbox(QGCApplication* app)
: _audioOutput(NULL) : _audioOutput(NULL)
...@@ -50,6 +51,7 @@ QGCToolbox::QGCToolbox(QGCApplication* app) ...@@ -50,6 +51,7 @@ QGCToolbox::QGCToolbox(QGCApplication* app)
, _followMe(NULL) , _followMe(NULL)
, _qgcPositionManager(NULL) , _qgcPositionManager(NULL)
, _videoManager(NULL) , _videoManager(NULL)
, _mavlinkLogManager(NULL)
{ {
_audioOutput = new GAudioOutput(app); _audioOutput = new GAudioOutput(app);
_autopilotPluginManager = new AutoPilotPluginManager(app); _autopilotPluginManager = new AutoPilotPluginManager(app);
...@@ -71,6 +73,7 @@ QGCToolbox::QGCToolbox(QGCApplication* app) ...@@ -71,6 +73,7 @@ QGCToolbox::QGCToolbox(QGCApplication* app)
_qgcPositionManager = new QGCPositionManager(app); _qgcPositionManager = new QGCPositionManager(app);
_followMe = new FollowMe(app); _followMe = new FollowMe(app);
_videoManager = new VideoManager(app); _videoManager = new VideoManager(app);
_mavlinkLogManager = new MavlinkLogManager(app);
} }
void QGCToolbox::setChildToolboxes(void) void QGCToolbox::setChildToolboxes(void)
...@@ -95,11 +98,13 @@ void QGCToolbox::setChildToolboxes(void) ...@@ -95,11 +98,13 @@ void QGCToolbox::setChildToolboxes(void)
_followMe->setToolbox(this); _followMe->setToolbox(this);
_qgcPositionManager->setToolbox(this); _qgcPositionManager->setToolbox(this);
_videoManager->setToolbox(this); _videoManager->setToolbox(this);
_mavlinkLogManager->setToolbox(this);
} }
QGCToolbox::~QGCToolbox() QGCToolbox::~QGCToolbox()
{ {
delete _videoManager; delete _videoManager;
delete _mavlinkLogManager;
delete _audioOutput; delete _audioOutput;
delete _autopilotPluginManager; delete _autopilotPluginManager;
delete _factSystem; delete _factSystem;
......
...@@ -32,6 +32,7 @@ class QGCImageProvider; ...@@ -32,6 +32,7 @@ class QGCImageProvider;
class UASMessageHandler; class UASMessageHandler;
class QGCPositionManager; class QGCPositionManager;
class VideoManager; class VideoManager;
class MavlinkLogManager;
/// This is used to manage all of our top level services/tools /// This is used to manage all of our top level services/tools
class QGCToolbox { class QGCToolbox {
...@@ -56,6 +57,8 @@ public: ...@@ -56,6 +57,8 @@ public:
FollowMe* followMe(void) { return _followMe; } FollowMe* followMe(void) { return _followMe; }
QGCPositionManager* qgcPositionManager(void) { return _qgcPositionManager; } QGCPositionManager* qgcPositionManager(void) { return _qgcPositionManager; }
VideoManager* videoManager(void) { return _videoManager; } VideoManager* videoManager(void) { return _videoManager; }
MavlinkLogManager* mavlinkLogManager(void) { return _mavlinkLogManager; }
#ifndef __mobile__ #ifndef __mobile__
GPSManager* gpsManager(void) { return _gpsManager; } GPSManager* gpsManager(void) { return _gpsManager; }
#endif #endif
...@@ -83,6 +86,7 @@ private: ...@@ -83,6 +86,7 @@ private:
FollowMe* _followMe; FollowMe* _followMe;
QGCPositionManager* _qgcPositionManager; QGCPositionManager* _qgcPositionManager;
VideoManager* _videoManager; VideoManager* _videoManager;
MavlinkLogManager* _mavlinkLogManager;
friend class QGCApplication; friend class QGCApplication;
}; };
......
...@@ -44,6 +44,7 @@ QGroundControlQmlGlobal::QGroundControlQmlGlobal(QGCApplication* app) ...@@ -44,6 +44,7 @@ QGroundControlQmlGlobal::QGroundControlQmlGlobal(QGCApplication* app)
, _qgcPositionManager(NULL) , _qgcPositionManager(NULL)
, _missionCommandTree(NULL) , _missionCommandTree(NULL)
, _videoManager(NULL) , _videoManager(NULL)
, _mavlinkLogManager(NULL)
, _virtualTabletJoystick(false) , _virtualTabletJoystick(false)
, _baseFontPointSize(0.0) , _baseFontPointSize(0.0)
{ {
...@@ -60,7 +61,6 @@ QGroundControlQmlGlobal::~QGroundControlQmlGlobal() ...@@ -60,7 +61,6 @@ QGroundControlQmlGlobal::~QGroundControlQmlGlobal()
} }
void QGroundControlQmlGlobal::setToolbox(QGCToolbox* toolbox) void QGroundControlQmlGlobal::setToolbox(QGCToolbox* toolbox)
{ {
QGCTool::setToolbox(toolbox); QGCTool::setToolbox(toolbox);
...@@ -72,9 +72,9 @@ void QGroundControlQmlGlobal::setToolbox(QGCToolbox* toolbox) ...@@ -72,9 +72,9 @@ void QGroundControlQmlGlobal::setToolbox(QGCToolbox* toolbox)
_qgcPositionManager = toolbox->qgcPositionManager(); _qgcPositionManager = toolbox->qgcPositionManager();
_missionCommandTree = toolbox->missionCommandTree(); _missionCommandTree = toolbox->missionCommandTree();
_videoManager = toolbox->videoManager(); _videoManager = toolbox->videoManager();
_mavlinkLogManager = toolbox->mavlinkLogManager();
} }
void QGroundControlQmlGlobal::saveGlobalSetting (const QString& key, const QString& value) void QGroundControlQmlGlobal::saveGlobalSetting (const QString& key, const QString& value)
{ {
QSettings settings; QSettings settings;
......
...@@ -72,6 +72,7 @@ public: ...@@ -72,6 +72,7 @@ public:
Q_PROPERTY(QGCPositionManager* qgcPositionManger READ qgcPositionManger CONSTANT) Q_PROPERTY(QGCPositionManager* qgcPositionManger READ qgcPositionManger CONSTANT)
Q_PROPERTY(MissionCommandTree* missionCommandTree READ missionCommandTree CONSTANT) Q_PROPERTY(MissionCommandTree* missionCommandTree READ missionCommandTree CONSTANT)
Q_PROPERTY(VideoManager* videoManager READ videoManager CONSTANT) Q_PROPERTY(VideoManager* videoManager READ videoManager CONSTANT)
Q_PROPERTY(MavlinkLogManager* mavlinkLogManager READ mavlinkLogManager CONSTANT)
Q_PROPERTY(qreal zOrderTopMost READ zOrderTopMost CONSTANT) ///< z order for top most items, toolbar, main window sub view Q_PROPERTY(qreal zOrderTopMost READ zOrderTopMost CONSTANT) ///< z order for top most items, toolbar, main window sub view
Q_PROPERTY(qreal zOrderWidgets READ zOrderWidgets CONSTANT) ///< z order value to widgets, for example: zoom controls, hud widgetss Q_PROPERTY(qreal zOrderWidgets READ zOrderWidgets CONSTANT) ///< z order value to widgets, for example: zoom controls, hud widgetss
...@@ -166,6 +167,7 @@ public: ...@@ -166,6 +167,7 @@ public:
QGCPositionManager* qgcPositionManger () { return _qgcPositionManager; } QGCPositionManager* qgcPositionManger () { return _qgcPositionManager; }
MissionCommandTree* missionCommandTree () { return _missionCommandTree; } MissionCommandTree* missionCommandTree () { return _missionCommandTree; }
VideoManager* videoManager () { return _videoManager; } VideoManager* videoManager () { return _videoManager; }
MavlinkLogManager* mavlinkLogManager () { return _mavlinkLogManager; }
qreal zOrderTopMost () { return 1000; } qreal zOrderTopMost () { return 1000; }
qreal zOrderWidgets () { return 100; } qreal zOrderWidgets () { return 100; }
...@@ -237,6 +239,7 @@ private: ...@@ -237,6 +239,7 @@ private:
QGCPositionManager* _qgcPositionManager; QGCPositionManager* _qgcPositionManager;
MissionCommandTree* _missionCommandTree; MissionCommandTree* _missionCommandTree;
VideoManager* _videoManager; VideoManager* _videoManager;
MavlinkLogManager* _mavlinkLogManager;
bool _virtualTabletJoystick; bool _virtualTabletJoystick;
qreal _baseFontPointSize; qreal _baseFontPointSize;
......
This diff is collapsed.
/****************************************************************************
*
* (c) 2009-2016 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
#ifndef MavlinkLogManager_H
#define MavlinkLogManager_H
#include <QObject>
#include "QmlObjectListModel.h"
#include "QGCLoggingCategory.h"
#include "QGCToolbox.h"
Q_DECLARE_LOGGING_CATEGORY(MavlinkLogManagerLog)
class QNetworkAccessManager;
class MavlinkLogManager;
//-----------------------------------------------------------------------------
class MavlinkLogFiles : public QObject
{
Q_OBJECT
public:
MavlinkLogFiles (MavlinkLogManager* manager, const QString& filePath);
Q_PROPERTY(QString name READ name CONSTANT)
Q_PROPERTY(quint32 size READ size CONSTANT)
Q_PROPERTY(bool selected READ selected WRITE setSelected NOTIFY selectedChanged)
Q_PROPERTY(bool uploading READ uploading NOTIFY uploadingChanged)
Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged)
QString name () { return _name; }
quint32 size () { return _size; }
bool selected () { return _selected; }
bool uploading () { return _uploading; }
qreal progress () { return _progress; }
void setSelected (bool selected);
void setUploading (bool uploading);
void setProgress (qreal progress);
signals:
void selectedChanged ();
void uploadingChanged ();
void progressChanged ();
private:
MavlinkLogManager* _manager;
QString _name;
quint32 _size;
bool _selected;
bool _uploading;
qreal _progress;
};
class MavlinkLogManager : public QGCTool
{
Q_OBJECT
public:
MavlinkLogManager (QGCApplication* app);
~MavlinkLogManager ();
Q_PROPERTY(QString emailAddress READ emailAddress WRITE setEmailAddress NOTIFY emailAddressChanged)
Q_PROPERTY(QString description READ description WRITE setDescription NOTIFY descriptionChanged)
Q_PROPERTY(QString uploadURL READ uploadURL WRITE setUploadURL NOTIFY uploadURLChanged)
Q_PROPERTY(bool enableAutolog READ enableAutolog WRITE setEnableAutolog NOTIFY enableAutologChanged)
Q_PROPERTY(bool busy READ busy NOTIFY busyChanged)
Q_PROPERTY(QmlObjectListModel* logFiles READ logFiles NOTIFY logFilesChanged)
Q_INVOKABLE void uploadLog ();
Q_INVOKABLE void deleteLog ();
Q_INVOKABLE void cancelUpload ();
QString emailAddress () { return _emailAddress; }
QString description () { return _description; }
QString uploadURL () { return _uploadURL; }
bool enableAutolog () { return _enableAutolog; }
bool busy ();
QmlObjectListModel* logFiles () { return &_logFiles; }
void setEmailAddress (QString email);
void setDescription (QString description);
void setUploadURL (QString url);
void setEnableAutolog (bool enable);
// Override from QGCTool
void setToolbox (QGCToolbox *toolbox);
signals:
void emailAddressChanged ();
void descriptionChanged ();
void uploadURLChanged ();
void enableAutologChanged ();
void logFilesChanged ();
void selectedCountChanged ();
void busyChanged ();
void readyRead (QByteArray data);
void failed ();
void succeed ();
void abortUpload ();
private slots:
void _uploadFinished ();
void _dataAvailable ();
void _uploadProgress (qint64 bytesSent, qint64 bytesTotal);
private:
bool _sendLog (const QString& logFile);
bool _processUploadResponse (int http_code, QByteArray &data);
private:
QString _description;
QString _emailAddress;
QString _uploadURL;
QString _logPath;
bool _enableAutolog;
QNetworkAccessManager* _nam;
QmlObjectListModel _logFiles;
MavlinkLogFiles* _currentLogfile;
};
#endif
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment