diff --git a/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc index eb0fe9378efb06a5c22f6313f47ef1df0ac48f73..b66df2fcc3c292e34a7319f1a6ea12b0c7aa8d72 100644 --- a/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc @@ -124,6 +124,12 @@ ArduSubFirmwarePlugin::ArduSubFirmwarePlugin(void): } _nameToFactGroupMap.insert("APMSubInfo", &_infoFactGroup); + + _factRenameMap[QStringLiteral("altitudeRelative")] = QStringLiteral("Depth"); + _factRenameMap[QStringLiteral("flightTime")] = QStringLiteral("Dive Time"); + _factRenameMap[QStringLiteral("altitudeAMSL")] = QStringLiteral(""); + _factRenameMap[QStringLiteral("hobbs")] = QStringLiteral(""); + _factRenameMap[QStringLiteral("airSpeed")] = QStringLiteral(""); } QList ArduSubFirmwarePlugin::supportedMissionCommands(void) @@ -310,3 +316,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/FlightMap/Widgets/ValuePageWidget.qml b/src/FlightMap/Widgets/ValuePageWidget.qml index 3a9b21f8e2dfcb5e74e1265e442f561b6eb50406..703dabac3366f8ee65268af7af3b0a0b3dac1d4d 100644 --- a/src/FlightMap/Widgets/ValuePageWidget.qml +++ b/src/FlightMap/Widgets/ValuePageWidget.qml @@ -222,6 +222,7 @@ Column { RowLayout { spacing: _margins + visible: factGroup.getFact(modelData).shortDescription !== "" property string propertyName: factGroupName + "." + modelData diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 4f75e0291f2e88bb9fbd7b45f4b36054bbf587e1..9f540b7fc56959c81724739fc555a40d91a64ea0 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);