Split dispenser state from dispenser UI controller #161
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.
This update to the dispenser classes splits state management from the controller UI used for delivery, refilling and resetting dispensers. Functionality is now split across two main operators:
DispenserController
which provides the UI for displaying the current state and generating manual commands, andDispenserAccumulate
which integrates a sequence of dispenser event notifications into the current dispenser state estimate.The dispenser state can be made persistent across runs using a
StateRecoverySubject
to seed the state of the accumulator.