diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 4150cf5..d2e606c 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -93,6 +93,7 @@ const char* Vehicle::_distanceToHomeFactName = "distanceToHome"; const char* Vehicle::_timeToHomeFactName = "timeToHome"; const char* Vehicle::_missionItemIndexFactName = "missionItemIndex"; const char* Vehicle::_headingToNextWPFactName = "headingToNextWP"; +const char* Vehicle::_distanceToNextWPFactName = "distanceToNextWP"; const char* Vehicle::_headingToHomeFactName = "headingToHome"; const char* Vehicle::_distanceToGCSFactName = "distanceToGCS"; const char* Vehicle::_hobbsFactName = "hobbs"; @@ -160,6 +161,7 @@ Vehicle::Vehicle(LinkInterface* link, , _timeToHomeFact (0, _timeToHomeFactName, FactMetaData::valueTypeDouble) , _missionItemIndexFact (0, _missionItemIndexFactName, FactMetaData::valueTypeUint16) , _headingToNextWPFact (0, _headingToNextWPFactName, FactMetaData::valueTypeDouble) + , _distanceToNextWPFact (0, _distanceToNextWPFactName, FactMetaData::valueTypeDouble) , _headingToHomeFact (0, _headingToHomeFactName, FactMetaData::valueTypeDouble) , _distanceToGCSFact (0, _distanceToGCSFactName, FactMetaData::valueTypeDouble) , _hobbsFact (0, _hobbsFactName, FactMetaData::valueTypeString) @@ -311,6 +313,7 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType, , _distanceToHomeFact (0, _distanceToHomeFactName, FactMetaData::valueTypeDouble) , _missionItemIndexFact (0, _missionItemIndexFactName, FactMetaData::valueTypeUint16) , _headingToNextWPFact (0, _headingToNextWPFactName, FactMetaData::valueTypeDouble) + , _distanceToNextWPFact (0, _distanceToNextWPFactName, FactMetaData::valueTypeDouble) , _headingToHomeFact (0, _headingToHomeFactName, FactMetaData::valueTypeDouble) , _distanceToGCSFact (0, _distanceToGCSFactName, FactMetaData::valueTypeDouble) , _hobbsFact (0, _hobbsFactName, FactMetaData::valueTypeString) @@ -448,6 +451,7 @@ void Vehicle::_commonInit() _addFact(&_timeToHomeFact, _timeToHomeFactName); _addFact(&_missionItemIndexFact, _missionItemIndexFactName); _addFact(&_headingToNextWPFact, _headingToNextWPFactName); + _addFact(&_distanceToNextWPFact, _distanceToNextWPFactName); _addFact(&_headingToHomeFact, _headingToHomeFactName); _addFact(&_distanceToGCSFact, _distanceToGCSFactName); _addFact(&_throttlePctFact, _throttlePctFactName); @@ -1045,6 +1049,7 @@ void Vehicle::_handleNavControllerOutput(mavlink_message_t& message) _altitudeTuningSetpointFact.setRawValue(_altitudeTuningFact.rawValue().toDouble() - navControllerOutput.alt_error); _xTrackErrorFact.setRawValue(navControllerOutput.xtrack_error); _airSpeedSetpointFact.setRawValue(_airSpeedFact.rawValue().toDouble() - navControllerOutput.aspd_error); + _distanceToNextWPFact.setRawValue(navControllerOutput.wp_dist); } // Ignore warnings from mavlink headers for both GCC/Clang and MSVC diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 2fa0b44..1c0b624 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -305,6 +305,7 @@ public: Q_PROPERTY(Fact* timeToHome READ timeToHome CONSTANT) Q_PROPERTY(Fact* missionItemIndex READ missionItemIndex CONSTANT) Q_PROPERTY(Fact* headingToNextWP READ headingToNextWP CONSTANT) + Q_PROPERTY(Fact* distanceToNextWP READ distanceToNextWP CONSTANT) Q_PROPERTY(Fact* headingToHome READ headingToHome CONSTANT) Q_PROPERTY(Fact* distanceToGCS READ distanceToGCS CONSTANT) Q_PROPERTY(Fact* hobbs READ hobbs CONSTANT) @@ -699,6 +700,7 @@ public: Fact* timeToHome () { return &_timeToHomeFact; } Fact* missionItemIndex () { return &_missionItemIndexFact; } Fact* headingToNextWP () { return &_headingToNextWPFact; } + Fact* distanceToNextWP () { return &_distanceToNextWPFact; } Fact* headingToHome () { return &_headingToHomeFact; } Fact* distanceToGCS () { return &_distanceToGCSFact; } Fact* hobbs () { return &_hobbsFact; } @@ -1408,6 +1410,7 @@ private: Fact _timeToHomeFact; Fact _missionItemIndexFact; Fact _headingToNextWPFact; + Fact _distanceToNextWPFact; Fact _headingToHomeFact; Fact _distanceToGCSFact; Fact _hobbsFact; @@ -1468,6 +1471,7 @@ private: static const char* _timeToHomeFactName; static const char* _missionItemIndexFactName; static const char* _headingToNextWPFactName; + static const char* _distanceToNextWPFactName; static const char* _headingToHomeFactName; static const char* _distanceToGCSFactName; static const char* _hobbsFactName; diff --git a/src/Vehicle/VehicleFact.json b/src/Vehicle/VehicleFact.json index 5336b00..4113694 100644 --- a/src/Vehicle/VehicleFact.json +++ b/src/Vehicle/VehicleFact.json @@ -135,6 +135,13 @@ "units": "deg" }, { + "name": "distanceToNextWP", + "shortDesc": "Next WP distance", + "type": "double", + "decimalPlaces": 0, + "units": "m" +}, +{ "name": "flightTime", "shortDesc": "Flight Time", "type": "elapsedSeconds",