Browse Source

Sub: rate-limit init_motor_test() calls

zr-v5.1
Willian Galvani 5 years ago committed by Jacob Walser
parent
commit
2e9bd43c49
  1. 15
      ArduSub/motors.cpp

15
ArduSub/motors.cpp

@ -82,10 +82,19 @@ bool Sub::handle_do_motor_test(mavlink_command_long_t command) { @@ -82,10 +82,19 @@ bool Sub::handle_do_motor_test(mavlink_command_long_t command) {
last_do_motor_test_ms = AP_HAL::millis();
// If we are not already testing motors, initialize test
static uint32_t tLastInitializationFailed = 0;
if(!ap.motor_test) {
if (!init_motor_test()) {
gcs().send_text(MAV_SEVERITY_WARNING, "motor test initialization failed!");
return false; // init fail
// Do not allow initializations attempt under 2 seconds
// If one fails, we need to give the user time to fix the issue
// instead of spamming error messages
if (AP_HAL::millis() > (tLastInitializationFailed + 2000)) {
if (!init_motor_test()) {
gcs().send_text(MAV_SEVERITY_WARNING, "motor test initialization failed!");
tLastInitializationFailed = AP_HAL::millis();
return false; // init fail
}
} else {
return false;
}
}

Loading…
Cancel
Save