diff --git a/libraries/APM_OBC/APM_OBC.cpp b/libraries/APM_OBC/APM_OBC.cpp index 046e342497..96841b951f 100644 --- a/libraries/APM_OBC/APM_OBC.cpp +++ b/libraries/APM_OBC/APM_OBC.cpp @@ -130,7 +130,10 @@ APM_OBC::check(APM_OBC::control_mode mode, } else if (gcs_link_ok) { _state = STATE_AUTO; gcs_send_text_fmt(PSTR("GCS OK")); - change_command(_saved_wp); + if (_saved_wp != 0) { + change_command(_saved_wp); + _saved_wp = 0; + } } break; @@ -143,7 +146,10 @@ APM_OBC::check(APM_OBC::control_mode mode, } else if (gps_lock_ok) { gcs_send_text_fmt(PSTR("GPS OK")); _state = STATE_AUTO; - change_command(_saved_wp); + if (_saved_wp != 0) { + change_command(_saved_wp); + _saved_wp = 0; + } } break; } diff --git a/libraries/APM_OBC/APM_OBC.h b/libraries/APM_OBC/APM_OBC.h index 8d72dc3ae7..67c7b664c4 100644 --- a/libraries/APM_OBC/APM_OBC.h +++ b/libraries/APM_OBC/APM_OBC.h @@ -43,6 +43,7 @@ public: // auto mission when a failsafe condition is resolved enum ap_var_type var_type; _command_index = (AP_Int8 *)AP_Param::find("CMD_INDEX", &var_type); + _saved_wp = 0; } void check(enum control_mode control_mode,