(Google maps, etc.) ▸ Start & end ▸ Charging stops as waypoints ▸ Naive, probably not the best approach ▸ Identify base and recursive cases ▸ Find as many edge cases as possible ▸ Continuous work in progress…
stops ▸ Start - beginning of itinerary, first input as Source ▸ End - end of itinerary, first input as Destination ▸ Source - beginning of a route, input into recursive function ▸ Destination - end of a route, input into recursive function ▸ Route - coordinates, navigable course from Source to Destination ▸ Charging Stop - coordinate
at the start of your trip ▸ Minimum Charge - The charge level before looking for chargers ▸ Maximum Charge - The charge level to charge to before continuing the trip ▸ Arrival Charge - The minimum level remaining when arriving at your destination
miles ▸ Consumption = Capacity / Range ▸ Consumption: 238 Wh/m ▸ More realistic Consumption: 260 Wh/m ▸ More realistic Range: 284 miles ▸ Let’s call this usableRange
Outputs: [Route], [ChargingStop] ▸ Recursive function ▸ Inputs: Accumulator, Source ▸ Outputs: New Accumulator, Next Source ▸ Accumulator holds Routes and ChargingStops taken thus far, along with flags useful for determining whether to continue
average case ▸ Using the wrong usableRange in various cases, such as: ▸ No charging required, but we must maintain arrival charge? ▸ Can reach destination, but still want to maintain arrival charge? ▸ Probably many more…