diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 1ee46725703cfc8c77f4b26ee013aaa8ffde2d9e..19db8e2e2477c16f047d33b05b9acd7ce526ecab 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -2957,6 +2957,11 @@ void Vehicle::_handleFlightModeChanged(const QString& flightMode) void Vehicle::_announceArmedChanged(bool armed) { _say(QString("%1 %2").arg(_vehicleIdSpeech()).arg(armed ? tr("armed") : tr("disarmed"))); + if(armed) { + //-- Keep track of armed coordinates + _armedPosition = _coordinate; + emit armedPositionChanged(); + } } void Vehicle::_setFlying(bool flying) diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index e222f42c9e661d9114b962395104b225a434324a..10595d92534e9b1f8b7454d2d0387cc0efe25b39 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -538,6 +538,7 @@ public: Q_PROPERTY(AutoPilotPlugin* autopilot MEMBER _autopilotPlugin CONSTANT) Q_PROPERTY(QGeoCoordinate coordinate READ coordinate NOTIFY coordinateChanged) Q_PROPERTY(QGeoCoordinate homePosition READ homePosition NOTIFY homePositionChanged) + Q_PROPERTY(QGeoCoordinate armedPosition READ armedPosition NOTIFY armedPositionChanged) Q_PROPERTY(bool armed READ armed WRITE setArmed NOTIFY armedChanged) Q_PROPERTY(bool autoDisarm READ autoDisarm NOTIFY autoDisarmChanged) Q_PROPERTY(bool flightModeSetAvailable READ flightModeSetAvailable CONSTANT) @@ -792,7 +793,8 @@ public: // Property accessors - QGeoCoordinate coordinate(void) { return _coordinate; } + QGeoCoordinate coordinate (void) { return _coordinate; } + QGeoCoordinate armedPosition (void) { return _armedPosition; } typedef enum { JoystickModeRC, ///< Joystick emulates an RC Transmitter @@ -1123,6 +1125,7 @@ signals: void activeChanged(bool active); void mavlinkMessageReceived(const mavlink_message_t& message); void homePositionChanged(const QGeoCoordinate& homePosition); + void armedPositionChanged(); void armedChanged(bool armed); void flightModeChanged(const QString& flightMode); void hilModeChanged(bool hilMode); @@ -1367,6 +1370,7 @@ private: QGeoCoordinate _coordinate; QGeoCoordinate _homePosition; + QGeoCoordinate _armedPosition; UASInterface* _mav; int _currentMessageCount;