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