commander prearm_check limit simultaneous error messages

This commit is contained in:
Daniel Agar
2018-04-16 20:43:33 -04:00
parent 55596fad20
commit a2bc0bd947
+22 -22
View File
@@ -940,11 +940,11 @@ bool prearm_check(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &s
// USB not connected // USB not connected
if (!status_flags.circuit_breaker_engaged_usb_check && status_flags.usb_connected) { if (!status_flags.circuit_breaker_engaged_usb_check && status_flags.usb_connected) {
prearm_ok = false;
if (reportFailures) { if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: Flying with USB is not safe"); mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: Flying with USB is not safe");
} }
prearm_ok = false;
} }
// battery and system power status // battery and system power status
@@ -952,50 +952,50 @@ bool prearm_check(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &s
// Fail transition if power is not good // Fail transition if power is not good
if (!status_flags.condition_power_input_valid) { if (!status_flags.condition_power_input_valid) {
prearm_ok = false;
if (reportFailures) { if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: Connect power module"); mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: Connect power module");
} }
prearm_ok = false;
} }
// main battery level // main battery level
if (battery.warning >= battery_status_s::BATTERY_WARNING_LOW) { if (battery.warning >= battery_status_s::BATTERY_WARNING_LOW) {
prearm_ok = false; if (prearm_ok && reportFailures) {
if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: LOW BATTERY"); mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: LOW BATTERY");
} }
prearm_ok = false;
} }
} }
// Arm Requirements: mission // Arm Requirements: mission
if (arm_requirements & ARM_REQ_MISSION_BIT) { if (prearm_ok && (arm_requirements & ARM_REQ_MISSION_BIT)) {
if (!status_flags.condition_auto_mission_available) { if (!status_flags.condition_auto_mission_available) {
prearm_ok = false; if (prearm_ok && reportFailures) {
if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: valid mission required"); mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: valid mission required");
} }
prearm_ok = false;
} }
if (!status_flags.condition_global_position_valid) { if (!status_flags.condition_global_position_valid) {
prearm_ok = false; if (prearm_ok && reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: mission requires global position");
if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: global position required");
} }
prearm_ok = false;
} }
} }
// Arm Requirements: global position // Arm Requirements: global position
if ((arm_requirements & ARM_REQ_GPS_BIT) && (!status_flags.condition_global_position_valid)) { if ((arm_requirements & ARM_REQ_GPS_BIT) && (!status_flags.condition_global_position_valid)) {
prearm_ok = false; if (prearm_ok && reportFailures) {
if (reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: global position required"); mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: global position required");
} }
prearm_ok = false;
} }
// Arm Requirements: authorization // Arm Requirements: authorization
@@ -1007,13 +1007,13 @@ bool prearm_check(orb_advert_t *mavlink_log_pub, const vehicle_status_flags_s &s
} }
// safety button (check last) // safety button (check last)
if (safety.safety_switch_available && !safety.safety_off) { if (prearm_ok && safety.safety_switch_available && !safety.safety_off) {
prearm_ok = false;
// Fail transition if we need safety switch press // Fail transition if we need safety switch press
if (reportFailures) { if (prearm_ok && reportFailures) {
mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: Press safety switch first"); mavlink_log_critical(mavlink_log_pub, "ARMING DENIED: Press safety switch first");
} }
prearm_ok = false;
} }
return prearm_ok; return prearm_ok;