@ -8,22 +8,15 @@
@@ -8,22 +8,15 @@
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
# include "PositionManager.h"
# include "QGCApplication.h"
# include "QGCCorePlugin.h"
QGCPositionManager : : QGCPositionManager ( QGCApplication * app ) :
QGCTool ( app ) ,
_updateInterval ( 0 ) ,
_currentSource ( nullptr )
{
_defaultSource = QGeoPositionInfoSource : : createDefaultSource ( this ) ;
_simulatedSource = new SimulatedPosition ( ) ;
// Enable this to get a simulated target on desktop
// if (_defaultSource == nullptr) {
// _defaultSource = _simulatedSource;
// }
setPositionSource ( QGCPositionSource : : GPS ) ;
}
QGCPositionManager : : ~ QGCPositionManager ( )
@ -31,12 +24,28 @@ QGCPositionManager::~QGCPositionManager()
@@ -31,12 +24,28 @@ QGCPositionManager::~QGCPositionManager()
delete ( _simulatedSource ) ;
}
void QGCPositionManager : : positionUpdated ( const QGeoPositionInfo & update )
void QGCPositionManager : : setToolbox ( QGCToolbox * toolbox )
{
QGCTool : : setToolbox ( toolbox ) ;
//-- First see if plugin provides a position source
_defaultSource = toolbox - > corePlugin ( ) - > createPositionSource ( this ) ;
if ( ! _defaultSource ) {
//-- Otherwise, create a default one
_defaultSource = QGeoPositionInfoSource : : createDefaultSource ( this ) ;
}
_simulatedSource = new SimulatedPosition ( ) ;
QGeoCoordinate position ( update . coordinate ( ) . latitude ( ) , update . coordinate ( ) . longitude ( ) ) ;
// Enable this to get a simulated target on desktop
// if (_defaultSource == nullptr) {
// _defaultSource = _simulatedSource;
// }
setPositionSource ( QGCPositionSource : : GPS ) ;
}
emit lastPositionUpdated ( update . isValid ( ) , QVariant : : fromValue ( position ) ) ;
void QGCPositionManager : : positionUpdated ( const QGeoPositionInfo & update )
{
emit lastPositionUpdated ( update . isValid ( ) , QVariant : : fromValue ( update . coordinate ( ) ) ) ;
emit positionInfoUpdated ( update ) ;
}
@ -68,9 +77,8 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
@@ -68,9 +77,8 @@ void QGCPositionManager::setPositionSource(QGCPositionManager::QGCPositionSource
_updateInterval = _currentSource - > minimumUpdateInterval ( ) ;
_currentSource - > setPreferredPositioningMethods ( QGeoPositionInfoSource : : SatellitePositioningMethods ) ;
_currentSource - > setUpdateInterval ( _updateInterval ) ;
_currentSource - > startUpdates ( ) ;
connect ( _currentSource , SIGNAL ( positionUpdated ( QGeoPositionInfo ) ) , this , SLOT ( positionUpdated ( QGeoPositionInfo ) ) ) ;
_currentSource - > startUpdates ( ) ;
}
}