Cache setPosition() value if DeviceStatus is not READY. Fixes #11 #15
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.
Summary
This PR addresses an initialization issue with the goBILDA® Pinpoint Odometry Computer driver. Previously, calls to
setPosition()made before the device was fully initialized ("READY" state) were dropped and never applied. This fix ensures all position updates are deferred and automatically executed as soon as the device becomes ready.Changes
cachedSetPositionValue) that storessetPosition()arguments if the device is not ready.Impact
setPosition()at any time, even before the Pinpoint device is ready.Testing
setPosition()before device initialization and confirming the position is set once the device is ready.setPosition()before readiness result in only the latest position being applied.Related Issues
Notes
If you want to be notified when a deferred position is applied, consider adding a log statement inside the deferred logic.