From 5b3311a312759a6942746bcef7afde0d18ca3e71 Mon Sep 17 00:00:00 2001 From: Gus Grubba Date: Thu, 13 Jun 2019 15:55:03 -0400 Subject: [PATCH] Instead of trying to keep a vehicle type within the FirmwarePlugin instance, pass the vehicle to the function so it can query the type that way. --- src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc | 2 +- src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h | 2 +- src/FirmwarePlugin/FirmwarePlugin.cc | 7 +------ src/FirmwarePlugin/FirmwarePlugin.h | 7 +------ src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc | 9 ++++----- src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h | 4 ++-- src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc | 4 ++-- src/Vehicle/Vehicle.cc | 4 ++-- src/Vehicle/Vehicle.h | 2 +- 9 files changed, 15 insertions(+), 26 deletions(-) diff --git a/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc index cc52a2ae8..be6b63730 100644 --- a/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc @@ -74,7 +74,7 @@ void ArduRoverFirmwarePlugin::guidedModeChangeAltitude(Vehicle* vehicle, double qgcApp()->showMessage(QStringLiteral("Change altitude not supported.")); } -bool ArduRoverFirmwarePlugin::supportsNegativeThrust(void) +bool ArduRoverFirmwarePlugin::supportsNegativeThrust(Vehicle* /*vehicle*/) { return true; } diff --git a/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h b/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h index 0e2d452bd..6dd788256 100644 --- a/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h +++ b/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.h @@ -50,7 +50,7 @@ public: void guidedModeChangeAltitude (Vehicle* vehicle, double altitudeChange) final; int remapParamNameHigestMinorVersionNumber (int majorVersionNumber) const final; const FirmwarePlugin::remapParamNameMajorVersionMap_t& paramNameRemapMajorVersionMap(void) const final { return _remapParamName; } - bool supportsNegativeThrust (void) final; + bool supportsNegativeThrust (Vehicle *) final; bool supportsSmartRTL (void) const override { return true; } QString offlineEditingParamFile (Vehicle* vehicle) override { Q_UNUSED(vehicle); return QStringLiteral(":/FirmwarePlugin/APM/Rover.OfflineEditing.params"); } diff --git a/src/FirmwarePlugin/FirmwarePlugin.cc b/src/FirmwarePlugin/FirmwarePlugin.cc index f34e5c351..db82052bf 100644 --- a/src/FirmwarePlugin/FirmwarePlugin.cc +++ b/src/FirmwarePlugin/FirmwarePlugin.cc @@ -50,11 +50,6 @@ FirmwarePluginFactoryRegister* FirmwarePluginFactoryRegister::instance(void) return _instance; } -FirmwarePlugin::FirmwarePlugin(MAV_TYPE vehicleType) -{ - _vehicleType = vehicleType; -} - AutoPilotPlugin* FirmwarePlugin::autopilotPlugin(Vehicle* vehicle) { return new GenericAutoPilotPlugin(vehicle, vehicle); @@ -132,7 +127,7 @@ bool FirmwarePlugin::supportsThrottleModeCenterZero(void) return true; } -bool FirmwarePlugin::supportsNegativeThrust(void) +bool FirmwarePlugin::supportsNegativeThrust(Vehicle* /*vehicle*/) { // By default, this is not supported return false; diff --git a/src/FirmwarePlugin/FirmwarePlugin.h b/src/FirmwarePlugin/FirmwarePlugin.h index 26fc3a86a..51739d46e 100644 --- a/src/FirmwarePlugin/FirmwarePlugin.h +++ b/src/FirmwarePlugin/FirmwarePlugin.h @@ -49,8 +49,6 @@ public: TakeoffVehicleCapability = 1 << 4, ///< Vehicle supports guided takeoff } FirmwareCapabilities; - FirmwarePlugin(MAV_TYPE vehicleType = MAV_TYPE_GENERIC); - /// Maps from on parameter name to another /// key: parameter name to translate from /// value: mapped parameter name @@ -164,7 +162,7 @@ public: /// Returns true if the vehicle and firmware supports the use of negative thrust /// Typically supported rover. - virtual bool supportsNegativeThrust(void); + virtual bool supportsNegativeThrust(Vehicle *); /// Returns true if the firmware supports the use of the RC radio and requires the RC radio /// setup page. Returns true by default. @@ -346,9 +344,6 @@ protected: // Returns regex QString to extract version information from text virtual QString _versionRegex() { return QString(); } -protected: - MAV_TYPE _vehicleType = MAV_TYPE_GENERIC; - private: QVariantList _toolBarIndicatorList; static QVariantList _cameraList; ///< Standard QGC camera list diff --git a/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc b/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc index a151439f2..d6a70cd5d 100644 --- a/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc +++ b/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc @@ -35,9 +35,8 @@ PX4FirmwarePluginInstanceData::PX4FirmwarePluginInstanceData(QObject* parent) } -PX4FirmwarePlugin::PX4FirmwarePlugin(MAV_TYPE vehicleType) - : FirmwarePlugin(vehicleType) - , _manualFlightMode (tr("Manual")) +PX4FirmwarePlugin::PX4FirmwarePlugin() + : _manualFlightMode (tr("Manual")) , _acroFlightMode (tr("Acro")) , _stabilizedFlightMode (tr("Stabilized")) , _rattitudeFlightMode (tr("Rattitude")) @@ -591,7 +590,7 @@ QString PX4FirmwarePlugin::_versionRegex() { return QStringLiteral("v([0-9,\\.]*) Stable"); } -bool PX4FirmwarePlugin::supportsNegativeThrust(void) +bool PX4FirmwarePlugin::supportsNegativeThrust(Vehicle* vehicle) { - return _vehicleType == MAV_TYPE_GROUND_ROVER; + return vehicle->vehicleType() == MAV_TYPE_GROUND_ROVER; } diff --git a/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h b/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h index 072933c67..f1aeba0e1 100644 --- a/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h +++ b/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.h @@ -23,7 +23,7 @@ class PX4FirmwarePlugin : public FirmwarePlugin Q_OBJECT public: - PX4FirmwarePlugin (MAV_TYPE vehicleType); + PX4FirmwarePlugin (); ~PX4FirmwarePlugin () override; // Overrides from FirmwarePlugin @@ -69,7 +69,7 @@ public: QString autoDisarmParameter (Vehicle* vehicle) override { Q_UNUSED(vehicle); return QStringLiteral("COM_DISARM_LAND"); } uint32_t highLatencyCustomModeTo32Bits (uint16_t hlCustomMode) override; bool supportsTerrainFrame (void) const override { return false; } - bool supportsNegativeThrust (void) override; + bool supportsNegativeThrust (Vehicle *vehicle) override; protected: typedef struct { diff --git a/src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc b/src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc index 3e714cee3..7241bada4 100644 --- a/src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc +++ b/src/FirmwarePlugin/PX4/PX4FirmwarePluginFactory.cc @@ -29,11 +29,11 @@ QList PX4FirmwarePluginFactory::supportedFirmwareTypes(void) cons return list; } -FirmwarePlugin* PX4FirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) +FirmwarePlugin* PX4FirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE /*vehicleType*/) { if (autopilotType == MAV_AUTOPILOT_PX4) { if (!_pluginInstance) { - _pluginInstance = new PX4FirmwarePlugin(vehicleType); + _pluginInstance = new PX4FirmwarePlugin(); } return _pluginInstance; } diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 8ff3632ad..916c282ee 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -2871,9 +2871,9 @@ bool Vehicle::supportsThrottleModeCenterZero(void) const return _firmwarePlugin->supportsThrottleModeCenterZero(); } -bool Vehicle::supportsNegativeThrust(void) const +bool Vehicle::supportsNegativeThrust(void) { - return _firmwarePlugin->supportsNegativeThrust(); + return _firmwarePlugin->supportsNegativeThrust(this); } bool Vehicle::supportsRadio(void) const diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 6c02c4ccf..83bb46fe6 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -854,7 +854,7 @@ public: bool sub(void) const; bool supportsThrottleModeCenterZero (void) const; - bool supportsNegativeThrust (void) const; + bool supportsNegativeThrust (void); bool supportsRadio (void) const; bool supportsJSButton (void) const; bool supportsMotorInterference (void) const; -- 2.22.0