Browse Source

Plumbing Hobbs Meter through Vehicle FactGroup

QGC4.4
Gus Grubba 8 years ago
parent
commit
9cb1a89da5
  1. 21
      src/Vehicle/Vehicle.cc
  2. 6
      src/Vehicle/Vehicle.h
  3. 5
      src/Vehicle/VehicleFact.json

21
src/Vehicle/Vehicle.cc

@ -57,6 +57,7 @@ const char* Vehicle::_altitudeAMSLFactName = "altitudeAMSL"; @@ -57,6 +57,7 @@ const char* Vehicle::_altitudeAMSLFactName = "altitudeAMSL";
const char* Vehicle::_flightDistanceFactName = "flightDistance";
const char* Vehicle::_flightTimeFactName = "flightTime";
const char* Vehicle::_distanceToHomeFactName = "distanceToHome";
const char* Vehicle::_hobbsFactName = "hobbs";
const char* Vehicle::_gpsFactGroupName = "gps";
const char* Vehicle::_batteryFactGroupName = "battery";
@ -165,6 +166,7 @@ Vehicle::Vehicle(LinkInterface* link, @@ -165,6 +166,7 @@ Vehicle::Vehicle(LinkInterface* link,
, _flightDistanceFact (0, _flightDistanceFactName, FactMetaData::valueTypeDouble)
, _flightTimeFact (0, _flightTimeFactName, FactMetaData::valueTypeElapsedTimeInSeconds)
, _distanceToHomeFact (0, _distanceToHomeFactName, FactMetaData::valueTypeDouble)
, _hobbsFact (0, _hobbsFactName, FactMetaData::valueTypeString)
, _gpsFactGroup(this)
, _batteryFactGroup(this)
, _windFactGroup(this)
@ -183,6 +185,8 @@ Vehicle::Vehicle(LinkInterface* link, @@ -183,6 +185,8 @@ Vehicle::Vehicle(LinkInterface* link,
connect(this, &Vehicle::flightModeChanged, this, &Vehicle::_handleFlightModeChanged);
connect(this, &Vehicle::armedChanged, this, &Vehicle::_announceArmedChanged);
connect(_toolbox->multiVehicleManager(), &MultiVehicleManager::parameterReadyVehicleAvailableChanged, this, &Vehicle::_vehicleParamLoaded);
_uas = new UAS(_mavlink, this, _firmwarePluginManager);
connect(_uas, &UAS::imageReady, this, &Vehicle::_imageReady);
@ -337,6 +341,7 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType, @@ -337,6 +341,7 @@ Vehicle::Vehicle(MAV_AUTOPILOT firmwareType,
, _flightDistanceFact (0, _flightDistanceFactName, FactMetaData::valueTypeDouble)
, _flightTimeFact (0, _flightTimeFactName, FactMetaData::valueTypeElapsedTimeInSeconds)
, _distanceToHomeFact (0, _distanceToHomeFactName, FactMetaData::valueTypeDouble)
, _hobbsFact (0, _hobbsFactName, FactMetaData::valueTypeString)
, _gpsFactGroup(this)
, _batteryFactGroup(this)
, _windFactGroup(this)
@ -352,6 +357,7 @@ void Vehicle::_commonInit(void) @@ -352,6 +357,7 @@ void Vehicle::_commonInit(void)
connect(this, &Vehicle::coordinateChanged, this, &Vehicle::_updateDistanceToHome);
connect(this, &Vehicle::homePositionChanged, this, &Vehicle::_updateDistanceToHome);
connect(this, &Vehicle::hobbsMeterChanged, this, &Vehicle::_updateHobbsMeter);
_missionManager = new MissionManager(this);
connect(_missionManager, &MissionManager::error, this, &Vehicle::_missionManagerError);
@ -392,6 +398,7 @@ void Vehicle::_commonInit(void) @@ -392,6 +398,7 @@ void Vehicle::_commonInit(void)
_addFact(&_flightDistanceFact, _flightDistanceFactName);
_addFact(&_flightTimeFact, _flightTimeFactName);
_addFact(&_distanceToHomeFact, _distanceToHomeFactName);
_addFact(&_hobbsFact, _hobbsFactName);
_addFactGroup(&_gpsFactGroup, _gpsFactGroupName);
_addFactGroup(&_batteryFactGroup, _batteryFactGroupName);
@ -2862,6 +2869,11 @@ void Vehicle::_updateDistanceToHome(void) @@ -2862,6 +2869,11 @@ void Vehicle::_updateDistanceToHome(void)
}
}
void Vehicle::_updateHobbsMeter(void)
{
_hobbsFact.setRawValue(hobbsMeter());
}
void Vehicle::forceInitialPlanRequestComplete(void)
{
_initialPlanRequestComplete = true;
@ -2894,6 +2906,15 @@ QString Vehicle::hobbsMeter() @@ -2894,6 +2906,15 @@ QString Vehicle::hobbsMeter()
return QString("0000:00:00");
}
void Vehicle::_vehicleParamLoaded(bool ready)
{
//-- TODO: This seems silly but can you think of a better
// way to update this?
if(ready) {
emit hobbsMeterChanged();
}
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------

6
src/Vehicle/Vehicle.h

@ -344,6 +344,7 @@ public: @@ -344,6 +344,7 @@ public:
Q_PROPERTY(Fact* altitudeAMSL READ altitudeAMSL CONSTANT)
Q_PROPERTY(Fact* flightDistance READ flightDistance CONSTANT)
Q_PROPERTY(Fact* distanceToHome READ distanceToHome CONSTANT)
Q_PROPERTY(Fact* hobbs READ hobbs CONSTANT)
Q_PROPERTY(FactGroup* gps READ gpsFactGroup CONSTANT)
Q_PROPERTY(FactGroup* battery READ batteryFactGroup CONSTANT)
@ -614,6 +615,7 @@ public: @@ -614,6 +615,7 @@ public:
Fact* altitudeAMSL (void) { return &_altitudeAMSLFact; }
Fact* flightDistance (void) { return &_flightDistanceFact; }
Fact* distanceToHome (void) { return &_distanceToHomeFact; }
Fact* hobbs (void) { return &_hobbsFact; }
FactGroup* gpsFactGroup (void) { return &_gpsFactGroup; }
FactGroup* batteryFactGroup (void) { return &_batteryFactGroup; }
@ -838,6 +840,8 @@ private slots: @@ -838,6 +840,8 @@ private slots:
void _clearTrajectoryPoints(void);
void _clearCameraTriggerPoints(void);
void _updateDistanceToHome(void);
void _updateHobbsMeter(void);
void _vehicleParamLoaded(bool ready);
private:
bool _containsLink(LinkInterface* link);
@ -1059,6 +1063,7 @@ private: @@ -1059,6 +1063,7 @@ private:
Fact _flightDistanceFact;
Fact _flightTimeFact;
Fact _distanceToHomeFact;
Fact _hobbsFact;
VehicleGPSFactGroup _gpsFactGroup;
VehicleBatteryFactGroup _batteryFactGroup;
@ -1077,6 +1082,7 @@ private: @@ -1077,6 +1082,7 @@ private:
static const char* _flightDistanceFactName;
static const char* _flightTimeFactName;
static const char* _distanceToHomeFactName;
static const char* _hobbsFactName;
static const char* _gpsFactGroupName;
static const char* _batteryFactGroupName;

5
src/Vehicle/VehicleFact.json

@ -74,5 +74,10 @@ @@ -74,5 +74,10 @@
"shortDescription": "Flight Time",
"type": "elapsedSeconds",
"decimalPlaces": 1
},
{
"name": "hobbs",
"shortDescription": "Hobbs Meter",
"type": "string"
}
]

Loading…
Cancel
Save