diff --git a/libraries/AP_Mission/AP_Mission.cpp b/libraries/AP_Mission/AP_Mission.cpp index d1c5ea50be..fc61fba06d 100644 --- a/libraries/AP_Mission/AP_Mission.cpp +++ b/libraries/AP_Mission/AP_Mission.cpp @@ -113,6 +113,15 @@ bool AP_Mission::clear() return true; } + +/// trucate - trunacte any mission items beyond index +void AP_Mission::truncate(uint16_t index) +{ + if (_cmd_total > index) { + _cmd_total.set_and_save(index); + } +} + /// update - ensures the command queues are loaded with the next command and calls main programs command_init and command_verify functions to progress the mission /// should be called at 10hz or higher void AP_Mission::update() diff --git a/libraries/AP_Mission/AP_Mission.h b/libraries/AP_Mission/AP_Mission.h index e4f1df6498..9b0e11e039 100644 --- a/libraries/AP_Mission/AP_Mission.h +++ b/libraries/AP_Mission/AP_Mission.h @@ -130,6 +130,9 @@ public: /// returns true if mission was running so it could not be cleared bool clear(); + /// truncate - truncate any mission items beyond given index + void truncate(uint16_t index); + /// update - ensures the command queues are loaded with the next command and calls main programs command_init and command_verify functions to progress the mission /// should be called at 10hz or higher void update();