diff --git a/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc b/src/FirmwarePlugin/APM/ArduRoverFirmwarePlugin.cc index cc52a2ae822ca453111b4cd85e4043d77bf68a3f..be6b6373099ccf73c7b5ec79b7166a8b0dfbaac0 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 0e2d452bd06dc8ce6436b28905048971e88122cb..6dd7882562f9ccc694842fb76cbcf784923a8614 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 f34e5c351bec9686d34431097fe7a7ad1688648d..db82052bf84574848407c5ccb2ecfd76d93efb45 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 26fc3a86a32f4062e3a653a56084f023763d214b..51739d46e459a1e8190b2cb2789df3ba0c78d973 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 a151439f252f3f3e4db27cc8c8bad3c066fdc94c..d6a70cd5d52e09ad458fc258f01c07bc0df631d2 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 072933c67df8cda0c1141606b5e040b0b43b1719..f1aeba0e1c21843e197164ea170af9bff2bf70b3 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 3e714cee32ae736413bafe894d584d22e3f05117..7241bada4e991b562a85a8ca5f490368b940a73e 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 8ff3632addad201ce29df2603d507625d00b1289..916c282ee3b971ca355dd75c791df70c0f3198e4 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 6c02c4ccf4555daf43d27e1d63702d712f4d33e2..83bb46fe697a089659e81d84d09fbf91004283fa 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;