Browse Source

Merge pull request #7745 from DonLakeFlyer/APMFirmwareType

ArduRover Flight Mode setup fixes
QGC4.4
Don Gagne 6 years ago committed by GitHub
parent
commit
0f736124ef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc
  2. 22
      src/FirmwarePlugin/APM/APMFirmwarePlugin.cc
  3. 5
      src/FirmwarePlugin/FirmwarePlugin.cc

5
src/AutoPilotPlugins/APM/APMFlightModesComponentController.cc

@ -31,8 +31,9 @@ APMFlightModesComponentController::APMFlightModesComponentController(void) @@ -31,8 +31,9 @@ APMFlightModesComponentController::APMFlightModesComponentController(void)
qmlRegisterUncreatableType<APMFlightModesComponentController>("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++) {

22
src/FirmwarePlugin/APM/APMFirmwarePlugin.cc

@ -20,6 +20,10 @@ @@ -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 <QTcpSocket>
@ -1029,19 +1033,19 @@ void APMFirmwarePlugin::startMission(Vehicle* vehicle) @@ -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<ArduPlaneFirmwarePlugin*>(vehicle->firmwarePlugin())) {
return baseUrl.arg("Plane");
}
if (vehicle->rover()) {
} else if (qobject_cast<ArduRoverFirmwarePlugin*>(vehicle->firmwarePlugin())) {
return baseUrl.arg("Rover");
}
if (vehicle->sub()) {
} else if (qobject_cast<ArduSubFirmwarePlugin*>(vehicle->firmwarePlugin())) {
return baseUrl.arg("Sub");
}
} else if (qobject_cast<ArduCopterFirmwarePlugin*>(vehicle->firmwarePlugin())) {
return baseUrl.arg("Copter");
} else {
qWarning() << "APMFirmwarePlugin::_getLatestVersionFileUrl Unknown vehicle firmware type" << vehicle->vehicleType();
return QString();
}
}
QString APMFirmwarePlugin::_versionRegex() {

5
src/FirmwarePlugin/FirmwarePlugin.cc

@ -866,11 +866,10 @@ void FirmwarePlugin::_versionFileDownloadFinished(QString& remoteFile, QString& @@ -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())
QString currentVersionNumber = 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));
qgcApp()->showMessage(tr("Vehicle is not running latest stable firmware! Running %1, latest stable is %2.").arg(currentVersionNumber, version));
}
}

Loading…
Cancel
Save