From 7bbfca75b6f3a04f9e9ea6f6c4a513a89062cc05 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sun, 1 Sep 2019 11:32:55 -0700 Subject: [PATCH 1/2] Use firmware version type, not vehicle type --- .../APM/APMFlightModesComponentController.cc | 5 +++-- src/FirmwarePlugin/APM/APMFirmwarePlugin.cc | 22 +++++++++++++--------- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc b/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc index 8eb4fea..4f5d596 100644 --- a/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc +++ b/src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc @@ -31,8 +31,9 @@ APMFlightModesComponentController::APMFlightModesComponentController(void) qmlRegisterUncreatableType("QGroundControl.Controllers", 1, 0, "APMFlightModesComponentController", "Reference only"); } - _modeParamPrefix = _vehicle->rover() ? QStringLiteral("MODE") : QStringLiteral("FLTMODE"); - _modeChannelParam = _vehicle->rover() ? QStringLiteral("MODE_CH") : QStringLiteral("FLTMODE_CH"); + bool arduRoverFirmware = parameterExists(-1, QStringLiteral("MODE1")); + _modeParamPrefix = arduRoverFirmware ? QStringLiteral("MODE") : QStringLiteral("FLTMODE"); + _modeChannelParam = arduRoverFirmware ? QStringLiteral("MODE_CH") : QStringLiteral("FLTMODE_CH"); _simpleModeNames << tr("Off") << tr("Simple") << tr("Super-Simple") << tr("Custom"); for (int i=0; i<_cFltModes; i++) { diff --git a/src/FirmwarePlugin/APM/APMFirmwarePlugin.cc b/src/FirmwarePlugin/APM/APMFirmwarePlugin.cc index 3594b5f..64a4962 100644 --- a/src/FirmwarePlugin/APM/APMFirmwarePlugin.cc +++ b/src/FirmwarePlugin/APM/APMFirmwarePlugin.cc @@ -20,6 +20,10 @@ #include "SettingsManager.h" #include "AppSettings.h" #include "APMMavlinkStreamRateSettings.h" +#include "ArduPlaneFirmwarePlugin.h" +#include "ArduCopterFirmwarePlugin.h" +#include "ArduRoverFirmwarePlugin.h" +#include "ArduSubFirmwarePlugin.h" #include @@ -1029,19 +1033,19 @@ void APMFirmwarePlugin::startMission(Vehicle* vehicle) QString APMFirmwarePlugin::_getLatestVersionFileUrl(Vehicle* vehicle) { const static QString baseUrl("http://firmware.ardupilot.org/%1/stable/PX4/git-version.txt"); - if (vehicle->fixedWing()) { - return baseUrl.arg("Plane"); - } - if (vehicle->vtol()) { + + if (qobject_cast(vehicle->firmwarePlugin())) { return baseUrl.arg("Plane"); - } - if (vehicle->rover()) { + } else if (qobject_cast(vehicle->firmwarePlugin())) { return baseUrl.arg("Rover"); - } - if (vehicle->sub()) { + } else if (qobject_cast(vehicle->firmwarePlugin())) { return baseUrl.arg("Sub"); + } else if (qobject_cast(vehicle->firmwarePlugin())) { + return baseUrl.arg("Copter"); + } else { + qWarning() << "APMFirmwarePlugin::_getLatestVersionFileUrl Unknown vehicle firmware type" << vehicle->vehicleType(); + return QString(); } - return baseUrl.arg("Copter"); } QString APMFirmwarePlugin::_versionRegex() { From e29851070ae3553d6761568ad522f3536f87fe8e Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sun, 1 Sep 2019 11:33:16 -0700 Subject: [PATCH 2/2] Remove firmware version type since official always --- src/FirmwarePlugin/FirmwarePlugin.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/FirmwarePlugin/FirmwarePlugin.cc b/src/FirmwarePlugin/FirmwarePlugin.cc index bece1ad..0b48c76 100644 --- a/src/FirmwarePlugin/FirmwarePlugin.cc +++ b/src/FirmwarePlugin/FirmwarePlugin.cc @@ -866,11 +866,10 @@ void FirmwarePlugin::_versionFileDownloadFinished(QString& remoteFile, QString& // Check if lower version than stable or same version but different type if (currType == FIRMWARE_VERSION_TYPE_OFFICIAL && vehicle->versionCompare(version) < 0) { - const static QString currentVersion = QString("%1.%2.%3").arg(vehicle->firmwareMajorVersion()) - .arg(vehicle->firmwareMinorVersion()) - .arg(vehicle->firmwarePatchVersion()); - const static QString message = tr("Vehicle is not running latest stable firmware! Running %2-%1, latest stable is %3."); - qgcApp()->showMessage(message.arg(vehicle->firmwareVersionTypeString(), currentVersion, version)); + QString currentVersionNumber = QString("%1.%2.%3").arg(vehicle->firmwareMajorVersion()) + .arg(vehicle->firmwareMinorVersion()) + .arg(vehicle->firmwarePatchVersion()); + qgcApp()->showMessage(tr("Vehicle is not running latest stable firmware! Running %1, latest stable is %2.").arg(currentVersionNumber, version)); } }