diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index b4ee95a6c25a4bc3d92287ae673249df47b98a54..63a0c5e8f4b63c5d13b7f8dde656d962d35fa032 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -52,6 +52,7 @@ const char* Vehicle::_climbRateFactName = "climbRate"; const char* Vehicle::_altitudeRelativeFactName = "altitudeRelative"; const char* Vehicle::_altitudeAMSLFactName = "altitudeAMSL"; const char* Vehicle::_flightDistanceFactName = "flightDistance"; +const char* Vehicle::_flightTimeFactName = "flightTime"; const char* Vehicle::_gpsFactGroupName = "gps"; const char* Vehicle::_batteryFactGroupName = "battery"; @@ -150,6 +151,7 @@ Vehicle::Vehicle(LinkInterface* link, , _altitudeRelativeFact (0, _altitudeRelativeFactName, FactMetaData::valueTypeDouble) , _altitudeAMSLFact (0, _altitudeAMSLFactName, FactMetaData::valueTypeDouble) , _flightDistanceFact (0, _flightDistanceFactName, FactMetaData::valueTypeDouble) + , _flightTimeFact (0, _flightTimeFactName, FactMetaData::valueTypeElapsedTimeInSeconds) , _gpsFactGroup(this) , _batteryFactGroup(this) , _windFactGroup(this) @@ -303,6 +305,8 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType, , _climbRateFact (0, _climbRateFactName, FactMetaData::valueTypeDouble) , _altitudeRelativeFact (0, _altitudeRelativeFactName, FactMetaData::valueTypeDouble) , _altitudeAMSLFact (0, _altitudeAMSLFactName, FactMetaData::valueTypeDouble) + , _flightDistanceFact (0, _flightDistanceFactName, FactMetaData::valueTypeDouble) + , _flightTimeFact (0, _flightTimeFactName, FactMetaData::valueTypeElapsedTimeInSeconds) , _gpsFactGroup(this) , _batteryFactGroup(this) , _windFactGroup(this) @@ -353,6 +357,7 @@ void Vehicle::_commonInit(void) _addFact(&_altitudeRelativeFact, _altitudeRelativeFactName); _addFact(&_altitudeAMSLFact, _altitudeAMSLFactName); _addFact(&_flightDistanceFact, _flightDistanceFactName); + _addFact(&_flightTimeFact, _flightTimeFactName); _addFactGroup(&_gpsFactGroup, _gpsFactGroupName); _addFactGroup(&_batteryFactGroup, _batteryFactGroupName); @@ -361,6 +366,7 @@ void Vehicle::_commonInit(void) _addFactGroup(&_temperatureFactGroup, _temperatureFactGroupName); _flightDistanceFact.setRawValue(0); + _flightTimeFact.setRawValue(0); } Vehicle::~Vehicle() @@ -1674,6 +1680,7 @@ void Vehicle::_addNewMapTrajectoryPoint(void) } _mapTrajectoryHaveFirstCoordinate = true; _mapTrajectoryLastCoordinate = _coordinate; + _flightTimeFact.setRawValue((double)_flightTimer.elapsed() / 1000.0); } void Vehicle::_clearTrajectoryPoints(void) @@ -1691,7 +1698,9 @@ void Vehicle::_mapTrajectoryStart(void) _mapTrajectoryHaveFirstCoordinate = false; _clearTrajectoryPoints(); _mapTrajectoryTimer.start(); + _flightTimer.start(); _flightDistanceFact.setRawValue(0); + _flightTimeFact.setRawValue(0); } void Vehicle::_mapTrajectoryStop() diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index c2fe67819ec4422f96b05c6fb2191bd2c37782d2..937732780f8fff5c0a647ca6298e141c9fbc60d7 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -959,6 +959,7 @@ private: QTimer _sendMultipleTimer; int _nextSendMessageMultipleIndex; + QTime _flightTimer; QTimer _mapTrajectoryTimer; QmlObjectListModel _mapTrajectoryList; QGeoCoordinate _mapTrajectoryLastCoordinate; @@ -1004,6 +1005,7 @@ private: Fact _altitudeRelativeFact; Fact _altitudeAMSLFact; Fact _flightDistanceFact; + Fact _flightTimeFact; VehicleGPSFactGroup _gpsFactGroup; VehicleBatteryFactGroup _batteryFactGroup; @@ -1020,6 +1022,7 @@ private: static const char* _altitudeRelativeFactName; static const char* _altitudeAMSLFactName; static const char* _flightDistanceFactName; + static const char* _flightTimeFactName; static const char* _gpsFactGroupName; static const char* _batteryFactGroupName; diff --git a/src/Vehicle/VehicleFact.json b/src/Vehicle/VehicleFact.json index abef3dcd07df15639f551ebdc824b89b98db4408..400fec14a34e6c0382928a290cb574548c04900a 100644 --- a/src/Vehicle/VehicleFact.json +++ b/src/Vehicle/VehicleFact.json @@ -61,5 +61,11 @@ "type": "double", "decimalPlaces": 1, "units": "m" +}, +{ + "name": "flightTime", + "shortDescription": "Flight Time", + "type": "elapsedSeconds", + "decimalPlaces": 1 } ]