@ -70,6 +70,7 @@ const char* Vehicle::_altitudeAMSLFactName = "altitudeAMSL";
@@ -70,6 +70,7 @@ const char* Vehicle::_altitudeAMSLFactName = "altitudeAMSL";
const char * Vehicle : : _flightDistanceFactName = " flightDistance " ;
const char * Vehicle : : _flightTimeFactName = " flightTime " ;
const char * Vehicle : : _distanceToHomeFactName = " distanceToHome " ;
const char * Vehicle : : _headingToHomeFactName = " headingToHome " ;
const char * Vehicle : : _distanceToGCSFactName = " distanceToGCS " ;
const char * Vehicle : : _hobbsFactName = " hobbs " ;
@ -194,6 +195,7 @@ Vehicle::Vehicle(LinkInterface* link,
@@ -194,6 +195,7 @@ Vehicle::Vehicle(LinkInterface* link,
, _flightDistanceFact ( 0 , _flightDistanceFactName , FactMetaData : : valueTypeDouble )
, _flightTimeFact ( 0 , _flightTimeFactName , FactMetaData : : valueTypeElapsedTimeInSeconds )
, _distanceToHomeFact ( 0 , _distanceToHomeFactName , FactMetaData : : valueTypeDouble )
, _headingToHomeFact ( 0 , _headingToHomeFactName , FactMetaData : : valueTypeDouble )
, _distanceToGCSFact ( 0 , _distanceToGCSFactName , FactMetaData : : valueTypeDouble )
, _hobbsFact ( 0 , _hobbsFactName , FactMetaData : : valueTypeString )
, _gpsFactGroup ( this )
@ -388,6 +390,7 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType,
@@ -388,6 +390,7 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType,
, _flightDistanceFact ( 0 , _flightDistanceFactName , FactMetaData : : valueTypeDouble )
, _flightTimeFact ( 0 , _flightTimeFactName , FactMetaData : : valueTypeElapsedTimeInSeconds )
, _distanceToHomeFact ( 0 , _distanceToHomeFactName , FactMetaData : : valueTypeDouble )
, _headingToHomeFact ( 0 , _headingToHomeFactName , FactMetaData : : valueTypeDouble )
, _distanceToGCSFact ( 0 , _distanceToGCSFactName , FactMetaData : : valueTypeDouble )
, _hobbsFact ( 0 , _hobbsFactName , FactMetaData : : valueTypeString )
, _gpsFactGroup ( this )
@ -408,9 +411,9 @@ void Vehicle::_commonInit(void)
@@ -408,9 +411,9 @@ void Vehicle::_commonInit(void)
connect ( _firmwarePlugin , & FirmwarePlugin : : toolbarIndicatorsChanged , this , & Vehicle : : toolBarIndicatorsChanged ) ;
connect ( this , & Vehicle : : coordinateChanged , this , & Vehicle : : _updateDistanceToHome ) ;
connect ( this , & Vehicle : : coordinateChanged , this , & Vehicle : : _updateDistanceHeading ToHome ) ;
connect ( this , & Vehicle : : coordinateChanged , this , & Vehicle : : _updateDistanceToGCS ) ;
connect ( this , & Vehicle : : homePositionChanged , this , & Vehicle : : _updateDistanceToHome ) ;
connect ( this , & Vehicle : : homePositionChanged , this , & Vehicle : : _updateDistanceHeading ToHome ) ;
connect ( this , & Vehicle : : hobbsMeterChanged , this , & Vehicle : : _updateHobbsMeter ) ;
connect ( _toolbox - > qgcPositionManager ( ) , & QGCPositionManager : : gcsPositionChanged , this , & Vehicle : : _updateDistanceToGCS ) ;
@ -460,6 +463,7 @@ void Vehicle::_commonInit(void)
@@ -460,6 +463,7 @@ void Vehicle::_commonInit(void)
_addFact ( & _flightDistanceFact , _flightDistanceFactName ) ;
_addFact ( & _flightTimeFact , _flightTimeFactName ) ;
_addFact ( & _distanceToHomeFact , _distanceToHomeFactName ) ;
_addFact ( & _headingToHomeFact , _headingToHomeFactName ) ;
_addFact ( & _distanceToGCSFact , _distanceToGCSFactName ) ;
_hobbsFact . setRawValue ( QVariant ( QString ( " 0000:00:00 " ) ) ) ;
@ -3597,12 +3601,18 @@ void Vehicle::_handleADSBVehicle(const mavlink_message_t& message)
@@ -3597,12 +3601,18 @@ void Vehicle::_handleADSBVehicle(const mavlink_message_t& message)
}
}
void Vehicle : : _updateDistanceToHome ( void )
void Vehicle : : _updateDistanceHeading ToHome ( void )
{
if ( coordinate ( ) . isValid ( ) & & homePosition ( ) . isValid ( ) ) {
_distanceToHomeFact . setRawValue ( coordinate ( ) . distanceTo ( homePosition ( ) ) ) ;
if ( _distanceToHomeFact . rawValue ( ) . toDouble ( ) > 1.0 ) {
_headingToHomeFact . setRawValue ( coordinate ( ) . azimuthTo ( homePosition ( ) ) ) ;
} else {
_headingToHomeFact . setRawValue ( qQNaN ( ) ) ;
}
} else {
_distanceToHomeFact . setRawValue ( qQNaN ( ) ) ;
_headingToHomeFact . setRawValue ( qQNaN ( ) ) ;
}
}