diff --git a/src/uas/UAS.cc b/src/uas/UAS.cc index 739334d6780d61ca22f9d578ceb8e6b74f7fc01f..e0e74a1b904829cca8c2a997041b2709992bd15c 100644 --- a/src/uas/UAS.cc +++ b/src/uas/UAS.cc @@ -808,6 +808,7 @@ void UAS::receiveMessage(LinkInterface* link, mavlink_message_t message) if ((vel < 1000000) && !isnan(vel) && !isinf(vel)) { emit speedChanged(this, vel, 0.0, 0.0, time); + setGroundSpeed(vel); } else { diff --git a/src/uas/UAS.h b/src/uas/UAS.h index c522bf8af6f3a04c1309d835a715255012ba1bad..0506ac604b6a4ac877edb1230911333899eb3e3c 100644 --- a/src/uas/UAS.h +++ b/src/uas/UAS.h @@ -113,6 +113,18 @@ public: Q_PROPERTY(double pitch READ getPitch WRITE setPitch NOTIFY pitchChanged) Q_PROPERTY(double yaw READ getYaw WRITE setYaw NOTIFY yawChanged) Q_PROPERTY(double distToWaypoint READ getDistToWaypoint WRITE setDistToWaypoint NOTIFY distToWaypointChanged) + Q_PROPERTY(double groundSpeed READ getGroundSpeed WRITE setGroundSpeed NOTIFY groundSpeedChanged) + + void setGroundSpeed(double val) + { + groundSpeed = val; + emit groundSpeedChanged(val,"groundSpeed"); + emit valueChanged(this->uasId,"groundSpeed","m/s",QVariant(val),getUnixTime()); + } + double getGroundSpeed() const + { + return groundSpeed; + } void setLocalX(double val) { @@ -391,6 +403,7 @@ protected: //COMMENTS FOR TEST UNIT double speedY; ///< True speed in Y axis double speedZ; ///< True speed in Z axis double distToWaypoint; ///< Distance to next waypoint + double groundSpeed; ///< GPS Groundspeed double roll; double pitch; double yaw; @@ -816,6 +829,7 @@ signals: void yawChanged(double val,QString name); void satelliteCountChanged(double val,QString name); void distToWaypointChanged(double val,QString name); + void groundSpeedChanged(double val, QString name);