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