Browse Source

Allow FirmwarePlugin to adjust fact meta data

QGC4.4
Willian Galvani 6 years ago
parent
commit
d4ac61cb05
  1. 14
      src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc
  2. 2
      src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h
  3. 5
      src/FirmwarePlugin/FirmwarePlugin.h
  4. 3
      src/Vehicle/Vehicle.cc

14
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc

@ -124,6 +124,9 @@ ArduSubFirmwarePlugin::ArduSubFirmwarePlugin(void): @@ -124,6 +124,9 @@ ArduSubFirmwarePlugin::ArduSubFirmwarePlugin(void):
}
_nameToFactGroupMap.insert("APMSubInfo", &_infoFactGroup);
_factRenameMap[QStringLiteral("altitudeRelative")] = QStringLiteral("Depth");
_factRenameMap[QStringLiteral("flightTime")] = QStringLiteral("Dive Time");
}
QList<MAV_CMD> ArduSubFirmwarePlugin::supportedMissionCommands(void)
@ -310,3 +313,14 @@ QString ArduSubFirmwarePlugin::vehicleImageOutline(const Vehicle* vehicle) const @@ -310,3 +313,14 @@ QString ArduSubFirmwarePlugin::vehicleImageOutline(const Vehicle* vehicle) const
{
return vehicleImageOpaque(vehicle);
}
void ArduSubFirmwarePlugin::adjustMetaData(MAV_TYPE vehicleType, FactMetaData* metaData)
{
Q_UNUSED(vehicleType);
if (!metaData) {
return;
}
if (_factRenameMap.contains(metaData->name())) {
metaData->setShortDescription(QString(_factRenameMap[metaData->name()]));
}
}

2
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h

@ -137,11 +137,13 @@ public: @@ -137,11 +137,13 @@ public:
const QVariantList& toolBarIndicators(const Vehicle* vehicle) final;
bool adjustIncomingMavlinkMessage(Vehicle* vehicle, mavlink_message_t* message) final;
virtual QMap<QString, FactGroup*>* factGroups(void) final;
void adjustMetaData(MAV_TYPE vehicleType, FactMetaData* metaData) override final;
private:
QVariantList _toolBarIndicators;
static bool _remapParamNameIntialized;
QMap<QString, QString> _factRenameMap;
static FirmwarePlugin::remapParamNameMajorVersionMap_t _remapParamName;
void _handleNamedValueFloat(mavlink_message_t* message);
void _handleMavlinkMessage(mavlink_message_t* message);

5
src/FirmwarePlugin/FirmwarePlugin.h

@ -309,6 +309,11 @@ public: @@ -309,6 +309,11 @@ public:
int versionCompare(Vehicle* vehicle, QString& compare);
int versionCompare(Vehicle* vehicle, int major, int minor, int patch);
/// Allows the Firmware plugin to override the facts meta data.
/// @param vehicleType - Type of current vehicle
/// @param metaData - MetaData for fact
virtual void adjustMetaData(MAV_TYPE vehicleType, FactMetaData* metaData) {Q_UNUSED(vehicleType); Q_UNUSED(metaData);};
// FIXME: Hack workaround for non pluginize FollowMe support
static const QString px4FollowMeFlightMode;

3
src/Vehicle/Vehicle.cc

@ -278,6 +278,9 @@ Vehicle::Vehicle(LinkInterface* link, @@ -278,6 +278,9 @@ Vehicle::Vehicle(LinkInterface* link,
}
_firmwarePlugin->initializeVehicle(this);
for(auto& factName: factNames()) {
_firmwarePlugin->adjustMetaData(vehicleType, getFact(factName)->metaData());
}
_sendMultipleTimer.start(_sendMessageMultipleIntraMessageDelay);
connect(&_sendMultipleTimer, &QTimer::timeout, this, &Vehicle::_sendMessageMultipleNext);

Loading…
Cancel
Save