From fa461adae7c9a50bd2a97ab26c177502fa87f3af Mon Sep 17 00:00:00 2001 From: Lorenz Meier Date: Sat, 8 Jul 2017 21:42:27 +0200 Subject: [PATCH] PX4 Firmware plugin: First try to switch flight mode, then arm if successful - which is a lot safer than arming and then seeing if we can switch modes. --- src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc b/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc index d04eb8682e..1a7fa10953 100644 --- a/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc +++ b/src/FirmwarePlugin/PX4/PX4FirmwarePlugin.cc @@ -452,12 +452,15 @@ void PX4FirmwarePlugin::guidedModeChangeAltitude(Vehicle* vehicle, double altitu void PX4FirmwarePlugin::startMission(Vehicle* vehicle) { - if (!_armVehicleAndValidate(vehicle)) { - qgcApp()->showMessage(tr("Unable to start mission: Vehicle failed to arm.")); - return; - } - _setFlightModeAndValidate(vehicle, missionFlightMode()); + if (_setFlightModeAndValidate(vehicle, missionFlightMode())) { + if (!_armVehicleAndValidate(vehicle)) { + qgcApp()->showMessage(tr("Unable to start mission: Vehicle rejected arming.")); + return; + } + } else { + qgcApp()->showMessage(tr("Unable to start mission: Vehicle not ready.")); + } } void PX4FirmwarePlugin::setGuidedMode(Vehicle* vehicle, bool guidedMode) -- GitLab