feat(ev): add charging priorities and reservations #3632
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.
This PR makes three modifications to the
ev
contrib:Testing
public
as we need them to construct comprehensive unit tests for theev
contrib in later PRs.Charging priorities
ChargingPriority
is introduced: it is used for managing the charging queue, which, currently, is a simple FIFO. WithChargingPriority
we now traverse the queuing vehicles and let them pass on to charging if theChargingPriority
returnstrue
. This means that we can retain certain vehicles if others should get plugged with a higher priority than them.Reservations
ChargingPriority
is provided, which isReservationBasedChargingPriority
ChargingPriority
tries to make a reservation ad-hoc. If this succeeds, the vehicle is also allowed to plug.ReservationManager
. Likewise, any external logic can check in advance if a charger is already fully booked at a future time.