Commit 625bf951 authored by DonLakeFlyer's avatar DonLakeFlyer

Fix position updates on Android

parent 48c896bb
...@@ -32,6 +32,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox) ...@@ -32,6 +32,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
if(!_defaultSource) { if(!_defaultSource) {
//-- Otherwise, create a default one //-- Otherwise, create a default one
_defaultSource = QGeoPositionInfoSource::createDefaultSource(this); _defaultSource = QGeoPositionInfoSource::createDefaultSource(this);
qDebug() << _defaultSource;
} }
_simulatedSource = new SimulatedPosition(); _simulatedSource = new SimulatedPosition();
...@@ -43,7 +44,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox) ...@@ -43,7 +44,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
setPositionSource(QGCPositionSource::GPS); setPositionSource(QGCPositionSource::GPS);
} }
void QGCPositionManager::positionUpdated(const QGeoPositionInfo &update) void QGCPositionManager::_positionUpdated(const QGeoPositionInfo &update)
{ {
emit lastPositionUpdated(update.isValid(), QVariant::fromValue(update.coordinate())); emit lastPositionUpdated(update.isValid(), QVariant::fromValue(update.coordinate()));
emit positionInfoUpdated(update); emit positionInfoUpdated(update);
...@@ -58,7 +59,7 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource ...@@ -58,7 +59,7 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
{ {
if (_currentSource != nullptr) { if (_currentSource != nullptr) {
_currentSource->stopUpdates(); _currentSource->stopUpdates();
disconnect(_currentSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo))); disconnect(_currentSource);
} }
switch(source) { switch(source) {
...@@ -77,8 +78,19 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource ...@@ -77,8 +78,19 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
_updateInterval = _currentSource->minimumUpdateInterval(); _updateInterval = _currentSource->minimumUpdateInterval();
_currentSource->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods); _currentSource->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods);
_currentSource->setUpdateInterval(_updateInterval); _currentSource->setUpdateInterval(_updateInterval);
connect(_currentSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo))); connect(_currentSource, &QGeoPositionInfoSource::positionUpdated, this, &QGCPositionManager::_positionUpdated);
connect(_currentSource, &QGeoPositionInfoSource::updateTimeout, this, &QGCPositionManager::_updateTimeout);
connect(_currentSource, SIGNAL(error(QGeoPositionInfoSource::Error)), this, SLOT(_error(QGeoPositionInfoSource::Error)));
_currentSource->startUpdates(); _currentSource->startUpdates();
} }
} }
void QGCPositionManager::_error(QGeoPositionInfoSource::Error positioningError)
{
qWarning() << "QGCPositionManager error" << positioningError;
}
void QGCPositionManager::_updateTimeout(void)
{
qWarning() << "QGCPositionManager updateTimeout";
}
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#pragma once #pragma once
#include <QtPositioning/qgeopositioninfosource.h> #include <QGeoPositionInfoSource>
#include <QVariant> #include <QVariant>
...@@ -37,7 +37,9 @@ public: ...@@ -37,7 +37,9 @@ public:
void setToolbox(QGCToolbox* toolbox); void setToolbox(QGCToolbox* toolbox);
private slots: private slots:
void positionUpdated(const QGeoPositionInfo &update); void _positionUpdated(const QGeoPositionInfo &update);
void _error(QGeoPositionInfoSource::Error positioningError);
void _updateTimeout(void);
signals: signals:
void lastPositionUpdated(bool valid, QVariant lastPosition); void lastPositionUpdated(bool valid, QVariant lastPosition);
......
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