Vending Machine/Cashless Device
The MDB spec already takes into accoutn cashless devices, so we simply have to build a device that conforms to the spec.
The specification defines 3 levels of cashless devices, with more more features the higher the level. The Vending Machine (VMC) also has a level, and a device and VMC can only communicate using the highest commonly supported level. As our VMC is only level 1, we only need to implement a level 1 cashless device.
The cashless device ( is basically a state machine with 5 states (7 for level 2 and 3 machines). These states are:
- Inactive
- Disabled
- Enabled
- Session Idle
- Vend
When turned on, the cashlss device enters state 1. Almost all state transistions are initiated by the VMC, with the exception of 3 -> 4, which is initiated by the cashless device on a valid card read.