Commit 6f05b038 authored by Don Gagne's avatar Don Gagne

parent 0a205d71
...@@ -8,7 +8,8 @@ Note: This file only contains high level features or important fixes. ...@@ -8,7 +8,8 @@ Note: This file only contains high level features or important fixes.
* Add support for specifying fixed RTK based station location in Settings/General. * Add support for specifying fixed RTK based station location in Settings/General.
* Added Airmap integration to QGC * Added Airmap integration to QGC
* Add ESTIMATOR_STATUS values to new estimatorStatus Vehicle FactGroup. These are now available to display in instrument panel. * Add ESTIMATOR_STATUS values to new estimatorStatus Vehicle FactGroup. These are now available to display in instrument panel.
* Make Distance to GCS to available for display from instrument panel. * Make Distance to GCS available for display from instrument panel.
* Make Heading to Home available for display from instrument panel.
## 3.4 ## 3.4
......
...@@ -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::_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, ...@@ -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, ...@@ -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) ...@@ -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) ...@@ -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) ...@@ -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());
} }
} }
......
...@@ -656,6 +656,7 @@ public: ...@@ -656,6 +656,7 @@ public:
Q_PROPERTY(Fact* altitudeAMSL READ altitudeAMSL CONSTANT) Q_PROPERTY(Fact* altitudeAMSL READ altitudeAMSL CONSTANT)
Q_PROPERTY(Fact* flightDistance READ flightDistance CONSTANT) Q_PROPERTY(Fact* flightDistance READ flightDistance CONSTANT)
Q_PROPERTY(Fact* distanceToHome READ distanceToHome CONSTANT) Q_PROPERTY(Fact* distanceToHome READ distanceToHome CONSTANT)
Q_PROPERTY(Fact* headingToHome READ headingToHome CONSTANT)
Q_PROPERTY(Fact* distanceToGCS READ distanceToGCS CONSTANT) Q_PROPERTY(Fact* distanceToGCS READ distanceToGCS CONSTANT)
Q_PROPERTY(Fact* hobbs READ hobbs CONSTANT) Q_PROPERTY(Fact* hobbs READ hobbs CONSTANT)
...@@ -946,6 +947,7 @@ public: ...@@ -946,6 +947,7 @@ public:
Fact* altitudeAMSL (void) { return &_altitudeAMSLFact; } Fact* altitudeAMSL (void) { return &_altitudeAMSLFact; }
Fact* flightDistance (void) { return &_flightDistanceFact; } Fact* flightDistance (void) { return &_flightDistanceFact; }
Fact* distanceToHome (void) { return &_distanceToHomeFact; } Fact* distanceToHome (void) { return &_distanceToHomeFact; }
Fact* headingToHome (void) { return &_headingToHomeFact; }
Fact* distanceToGCS (void) { return &_distanceToGCSFact; } Fact* distanceToGCS (void) { return &_distanceToGCSFact; }
Fact* hobbs (void) { return &_hobbsFact; } Fact* hobbs (void) { return &_hobbsFact; }
...@@ -1191,7 +1193,7 @@ private slots: ...@@ -1191,7 +1193,7 @@ private slots:
void _sendMavCommandAgain(void); void _sendMavCommandAgain(void);
void _clearTrajectoryPoints(void); void _clearTrajectoryPoints(void);
void _clearCameraTriggerPoints(void); void _clearCameraTriggerPoints(void);
void _updateDistanceToHome(void); void _updateDistanceHeadingToHome(void);
void _updateDistanceToGCS(void); void _updateDistanceToGCS(void);
void _updateHobbsMeter(void); void _updateHobbsMeter(void);
void _vehicleParamLoaded(bool ready); void _vehicleParamLoaded(bool ready);
...@@ -1456,6 +1458,7 @@ private: ...@@ -1456,6 +1458,7 @@ private:
Fact _flightDistanceFact; Fact _flightDistanceFact;
Fact _flightTimeFact; Fact _flightTimeFact;
Fact _distanceToHomeFact; Fact _distanceToHomeFact;
Fact _headingToHomeFact;
Fact _distanceToGCSFact; Fact _distanceToGCSFact;
Fact _hobbsFact; Fact _hobbsFact;
...@@ -1484,6 +1487,7 @@ private: ...@@ -1484,6 +1487,7 @@ private:
static const char* _flightDistanceFactName; static const char* _flightDistanceFactName;
static const char* _flightTimeFactName; static const char* _flightTimeFactName;
static const char* _distanceToHomeFactName; static const char* _distanceToHomeFactName;
static const char* _headingToHomeFactName;
static const char* _distanceToGCSFactName; static const char* _distanceToGCSFactName;
static const char* _hobbsFactName; static const char* _hobbsFactName;
......
...@@ -90,6 +90,13 @@ ...@@ -90,6 +90,13 @@
"decimalPlaces": 1, "decimalPlaces": 1,
"units": "m" "units": "m"
}, },
{
"name": "headingToHome",
"shortDescription": "Heading to Home",
"type": "double",
"decimalPlaces": 0,
"units": "deg"
},
{ {
"name": "distanceToGCS", "name": "distanceToGCS",
"shortDescription": "Distance to GCS", "shortDescription": "Distance to GCS",
......
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