diff --git a/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc index 996551e100d4825816fdc56e95b3c2f8630c9631..c621be81a451c65b14756055fab9246f69621e9c 100644 --- a/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.cc @@ -86,3 +86,12 @@ int ArduPlaneFirmwarePlugin::remapParamNameHigestMinorVersionNumber(int majorVer // Remapping supports up to 3.8 return majorVersionNumber == 3 ? 8 : Vehicle::versionNotSetValue; } + +bool ArduPlaneFirmwarePlugin::isCapable(const Vehicle* vehicle, FirmwareCapabilities capabilities) +{ + Q_UNUSED(vehicle); + + uint32_t vehicleCapabilities = SetFlightModeCapability | GuidedModeCapability | PauseVehicleCapability; + + return (capabilities & vehicleCapabilities) == capabilities; +} diff --git a/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h b/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h index dfa43408138df5e7c12adbfaeba699f55cdaf4f6..ab038b804c1f5fa74618567ac24250b13f717164 100644 --- a/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h +++ b/src/FirmwarePlugin/APM/ArduPlaneFirmwarePlugin.h @@ -59,6 +59,7 @@ public: QString offlineEditingParamFile(Vehicle* vehicle) final { Q_UNUSED(vehicle); return QStringLiteral(":/FirmwarePlugin/APM/Plane.OfflineEditing.params"); } const FirmwarePlugin::remapParamNameMajorVersionMap_t& paramNameRemapMajorVersionMap(void) const final { return _remapParamName; } int remapParamNameHigestMinorVersionNumber(int majorVersionNumber) const final; + bool isCapable(const Vehicle *vehicle, FirmwareCapabilities capabilities) final; private: static bool _remapParamNameIntialized;