Commit 7c59a1e2 authored by Jacob Walser's avatar Jacob Walser

Store firmware-factgroup data in derived classes

parent a8ddb30c
......@@ -193,6 +193,10 @@ bool ArduSubFirmwarePlugin::adjustIncomingMavlinkMessage(Vehicle* vehicle, mavli
return APMFirmwarePlugin::adjustIncomingMavlinkMessage(vehicle, message);
}
QMap<QString, FactGroup*>* ArduSubFirmwarePlugin::factGroups(void) {
return &_nameToFactGroupMap;
}
const char* APMSubmarineFactGroup::_camTiltFactName = "camera tilt";
const char* APMSubmarineFactGroup::_tetherTurnsFactName = "tether turns";
const char* APMSubmarineFactGroup::_lightsLevel1FactName = "lights 1";
......
......@@ -123,6 +123,7 @@ public:
int remapParamNameHigestMinorVersionNumber(int majorVersionNumber) const final;
const QVariantList& toolBarIndicators(const Vehicle* vehicle) final;
bool adjustIncomingMavlinkMessage(Vehicle* vehicle, mavlink_message_t* message);
virtual QMap<QString, FactGroup*>* factGroups(void);
private:
......@@ -132,6 +133,7 @@ private:
void _handleNamedValueFloat(mavlink_message_t* message);
void _handleMavlinkMessage(mavlink_message_t* message);
QMap<QString, FactGroup*> _nameToFactGroupMap;
APMSubmarineFactGroup _infoFactGroup;
};
#endif
......@@ -419,8 +419,9 @@ const QVariantList& FirmwarePlugin::cameraList(const Vehicle* vehicle)
return _cameraList;
}
const QMap<QString, FactGroup*>& FirmwarePlugin::factGroups(void) {
return _nameToFactGroupMap;
QMap<QString, FactGroup*>* FirmwarePlugin::factGroups(void) {
// Generic plugin has no FactGroups
return NULL;
}
bool FirmwarePlugin::vehicleYawsToNextWaypointInMission(const Vehicle* vehicle) const
......
......@@ -273,7 +273,8 @@ public:
/// Returns a list of CameraMetaData objects for available cameras on the vehicle.
virtual const QVariantList& cameraList(const Vehicle* vehicle);
virtual const QMap<QString, FactGroup*>& factGroups(void);
/// Returns a pointer to a dictionary of firmware-specific FactGroups
virtual QMap<QString, FactGroup*>* factGroups(void);
/// @true: When flying a mission the vehicle is always facing towards the next waypoint
virtual bool vehicleYawsToNextWaypointInMission(const Vehicle* vehicle) const;
......@@ -301,7 +302,6 @@ protected:
// Arms the vehicle with validation and retries
// @return: true - vehicle armed, false - vehicle failed to arm
bool _armVehicleAndValidate(Vehicle* vehicle);
QMap<QString, FactGroup*> _nameToFactGroupMap;
// Sets the vehicle to the specified flight mode with validation and retries
// @return: true - vehicle in specified flight mode, false - flight mode change failed
......
......@@ -373,11 +373,13 @@ void Vehicle::_commonInit(void)
_addFactGroup(&_temperatureFactGroup, _temperatureFactGroupName);
// Add firmware-specific fact groups, if provided
QMap<QString, FactGroup*> fwFactGroups = _firmwarePlugin->factGroups();
QMapIterator<QString, FactGroup*> i(fwFactGroups);
while(i.hasNext()) {
i.next();
_addFactGroup(i.value(), i.key());
QMap<QString, FactGroup*>* fwFactGroups = _firmwarePlugin->factGroups();
if (fwFactGroups) {
QMapIterator<QString, FactGroup*> i(*fwFactGroups);
while(i.hasNext()) {
i.next();
_addFactGroup(i.value(), i.key());
}
}
_flightDistanceFact.setRawValue(0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment