diff --git a/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc index eb0fe9378efb06a5c22f6313f47ef1df0ac48f73..137e90b63697fa581046cc95a3ea39d01268b5b0 100644 --- a/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc @@ -124,6 +124,9 @@ ArduSubFirmwarePlugin::ArduSubFirmwarePlugin(void): } _nameToFactGroupMap.insert("APMSubInfo", &_infoFactGroup); + + _factRenameMap[QStringLiteral("altitudeRelative")] = QStringLiteral("Depth"); + _factRenameMap[QStringLiteral("flightTime")] = QStringLiteral("Dive Time"); } QList ArduSubFirmwarePlugin::supportedMissionCommands(void) @@ -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()])); + } +} diff --git a/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h b/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h index 6a356059a18728fc12bcbd658f61aa941da127eb..b826c1e0c92bd4bd505f93167962a20fbc9445d6 100644 --- a/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h +++ b/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h @@ -137,11 +137,13 @@ public: const QVariantList& toolBarIndicators(const Vehicle* vehicle) final; bool adjustIncomingMavlinkMessage(Vehicle* vehicle, mavlink_message_t* message) final; virtual QMap* factGroups(void) final; + void adjustMetaData(MAV_TYPE vehicleType, FactMetaData* metaData) override final; private: QVariantList _toolBarIndicators; static bool _remapParamNameIntialized; + QMap _factRenameMap; static FirmwarePlugin::remapParamNameMajorVersionMap_t _remapParamName; void _handleNamedValueFloat(mavlink_message_t* message); void _handleMavlinkMessage(mavlink_message_t* message); diff --git a/src/FirmwarePlugin/FirmwarePlugin.h b/src/FirmwarePlugin/FirmwarePlugin.h index bcae4c08b7d33b688987469028e945fff0ca98bf..57006f56826d286e3e0bb46359e925534748ed96 100644 --- a/src/FirmwarePlugin/FirmwarePlugin.h +++ b/src/FirmwarePlugin/FirmwarePlugin.h @@ -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; diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 48705256514c3f00e36c9bd6de79459d6027dec6..c7c0ce2d1331becdeac246cd5b0d740099fd711a 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -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);