commander: don't allow arming during VTOL transition

This commit is contained in:
David
2019-12-17 12:21:11 -08:00
committed by Daniel Agar
parent 3d56f37606
commit 020215f146
4 changed files with 11 additions and 4 deletions
@@ -82,7 +82,7 @@ public:
const bool checkGNSS, bool reportFailures, const bool prearm, const hrt_abstime &time_since_boot);
static bool preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &status_flags,
const safety_s &safety, const uint8_t arm_requirements);
const safety_s &safety, const uint8_t arm_requirements, const vehicle_status_s &status);
typedef enum {
ARM_REQ_NONE = 0,
@@ -38,7 +38,7 @@
#include <uORB/topics/vehicle_command_ack.h>
bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &status_flags,
const safety_s &safety, const uint8_t arm_requirements)
const safety_s &safety, const uint8_t arm_requirements, const vehicle_status_s &status)
{
bool prearm_ok = true;
@@ -127,6 +127,13 @@ bool PreFlightCheck::preArmCheck(orb_advert_t *mavlink_log_pub, const vehicle_st
}
}
if (status.is_vtol && status.in_transition_mode) {
if (prearm_ok) {
mavlink_log_critical(mavlink_log_pub, "Arming denied! Vehicle is in transition state");
prearm_ok = false;
}
}
// Arm Requirements: authorization
// check last, and only if everything else has passed
if ((arm_requirements & ARM_REQ_ARM_AUTH_BIT) && prearm_ok) {