|
|
|
@ -32,6 +32,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
@@ -32,6 +32,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
|
|
|
|
|
if(!_defaultSource) { |
|
|
|
|
//-- Otherwise, create a default one
|
|
|
|
|
_defaultSource = QGeoPositionInfoSource::createDefaultSource(this); |
|
|
|
|
qDebug() << _defaultSource; |
|
|
|
|
} |
|
|
|
|
_simulatedSource = new SimulatedPosition(); |
|
|
|
|
|
|
|
|
@ -43,7 +44,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
@@ -43,7 +44,7 @@ void QGCPositionManager::setToolbox(QGCToolbox *toolbox)
|
|
|
|
|
setPositionSource(QGCPositionSource::GPS); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void QGCPositionManager::positionUpdated(const QGeoPositionInfo &update) |
|
|
|
|
void QGCPositionManager::_positionUpdated(const QGeoPositionInfo &update) |
|
|
|
|
{ |
|
|
|
|
emit lastPositionUpdated(update.isValid(), QVariant::fromValue(update.coordinate())); |
|
|
|
|
emit positionInfoUpdated(update); |
|
|
|
@ -58,7 +59,7 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
@@ -58,7 +59,7 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
|
|
|
|
|
{ |
|
|
|
|
if (_currentSource != nullptr) { |
|
|
|
|
_currentSource->stopUpdates(); |
|
|
|
|
disconnect(_currentSource, SIGNAL(positionUpdated(QGeoPositionInfo)), this, SLOT(positionUpdated(QGeoPositionInfo))); |
|
|
|
|
disconnect(_currentSource); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
switch(source) { |
|
|
|
@ -77,8 +78,19 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
@@ -77,8 +78,19 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
|
|
|
|
|
_updateInterval = _currentSource->minimumUpdateInterval(); |
|
|
|
|
_currentSource->setPreferredPositioningMethods(QGeoPositionInfoSource::SatellitePositioningMethods); |
|
|
|
|
_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(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void QGCPositionManager::_error(QGeoPositionInfoSource::Error positioningError) |
|
|
|
|
{ |
|
|
|
|
qWarning() << "QGCPositionManager error" << positioningError; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void QGCPositionManager::_updateTimeout(void) |
|
|
|
|
{ |
|
|
|
|
qWarning() << "QGCPositionManager updateTimeout"; |
|
|
|
|
} |
|
|
|
|