Initialize jump-tracking in AP_Mission::init() #21769
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The jump tracking array in AP_Mission only initializes when the mission is restarted, for example when disarming or when the waypoint is set to zero. This means it is possible for that array to never initialize, e.g. if you use Set WP to set the waypoint to anything other than zero after boot but before switching to Auto mode the first time.
It seems like AP_Mission::init() is an appropriate place to call init_jump_tracking.
I encountered this on a quadplane that uses RTL_AUTOLAND. It usually takes more than 30s after boot for me to connect, so it switches to auto mode and sets the waypoint to the landing sequence. Before takeoff, I set the waypoint to 1. In flight, my DO_JUMP commands were not working.
It's really easy to work around: I just set waypoint to 0 now instead of 1, but this should still be fixed.