Fixes to handle unacknowledged command with pod faults correctly #144
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.
Purpose:
Fix the corner case where a pod fault is treated as an unacknowledged command during an interrupted bolus and the undelivered insulin is subtracted twice from the original bolus amount.
This was reported for both Trio and Loop (the two apps use a common set of OmniBLE and OmniKit modules):
Method
Recognize that getting a fault return from a pod, 0x202, should not be treated the same as not getting a podStatus return, 0x1d return. In other words, this is not an unacknowledged command.
Make sure the interrupted bolus is handled in only one place.
Ensure that the delivered insulin can never be negative.
Test
This was tested by @itsmojo who provided the code modification. Once the PR are in place, this will be tested again.