diff --git a/Rover/AP_Arming.cpp b/Rover/AP_Arming.cpp index e25e3ea7da..b8c7a31b09 100644 --- a/Rover/AP_Arming.cpp +++ b/Rover/AP_Arming.cpp @@ -89,7 +89,8 @@ bool AP_Arming_Rover::pre_arm_checks(bool report) & motor_checks(report) & oa_check(report) & parameter_checks(report) - & mode_checks(report)); + & mode_checks(report) + & pilot_throttle_checks(report)); } bool AP_Arming_Rover::arm_checks(AP_Arming::Method method) @@ -188,6 +189,19 @@ bool AP_Arming_Rover::parameter_checks(bool report) return true; } +// check throttle is above failsafe throttle +bool AP_Arming_Rover::pilot_throttle_checks(bool report) +{ + if ((checks_to_perform == ARMING_CHECK_ALL) || (checks_to_perform & ARMING_CHECK_RC)) { + if (rover.g.fs_throttle_enabled != FS_THR_DISABLED && rover.channel_throttle->get_radio_in() < rover.g.fs_throttle_value) { + check_failed(ARMING_CHECK_RC, report, "Throttle below failsafe"); + return false; + } + } + + return true; +} + // check if arming allowed from this mode bool AP_Arming_Rover::mode_checks(bool report) { diff --git a/Rover/AP_Arming.h b/Rover/AP_Arming.h index 5925f1fdb1..94281ecec0 100644 --- a/Rover/AP_Arming.h +++ b/Rover/AP_Arming.h @@ -32,5 +32,6 @@ protected: bool parameter_checks(bool report); bool mode_checks(bool report); bool motor_checks(bool report); + bool pilot_throttle_checks(bool report); };