Browse Source

Merge pull request #7184 from Williangalvani/depth

Allow custom fact json files for different vehicles
QGC4.4
Don Gagne 6 years ago committed by GitHub
parent
commit
b7f19233a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 17
      src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc
  2. 2
      src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.h
  3. 5
      src/FirmwarePlugin/FirmwarePlugin.h
  4. 1
      src/FlightMap/Widgets/ValuePageWidget.qml
  5. 3
      src/Vehicle/Vehicle.cc

17
src/FirmwarePlugin/APM/ArduSubFirmwarePlugin.cc

@ -124,6 +124,12 @@ ArduSubFirmwarePlugin::ArduSubFirmwarePlugin(void): @@ -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<MAV_CMD> ArduSubFirmwarePlugin::supportedMissionCommands(void)
@ -310,3 +316,14 @@ QString ArduSubFirmwarePlugin::vehicleImageOutline(const Vehicle* vehicle) const @@ -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()]));
}
}

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;

1
src/FlightMap/Widgets/ValuePageWidget.qml

@ -222,6 +222,7 @@ Column { @@ -222,6 +222,7 @@ Column {
RowLayout {
spacing: _margins
visible: factGroup.getFact(modelData).shortDescription !== ""
property string propertyName: factGroupName + "." + modelData

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