A Python library that implements a cashless MDB peripheral over UART. This is for integrating an external payment system with an MDB enabled vending machine. This library will not talk to an MDB enabled credit card reader - it pretends to be one.
This library is not production ready, and is a continual work in progress. Contributions are welcome, but we will not be accepting feature requests at this time.
This library should be compatible with most Linux Python environments that support the pyserial
library, and any
serial hardware that supports setting a sticky parity bit.
However, this library is currently only developed for and supported on a Raspberry Pi.
Install the required Python dependencies by running the following command:
pip3 install -r requirements.txt
Please note that a multicore raspberry pi with an entire core dedicated to your MDB application is highly recommended. Linux is not a realtime operating system, and the MDB protocol has strict timing requirements which occasionally causes issues. If your use case is not public facing or doesn't need high reliability, you may not need to worry about this.
Read more about dedicating one of your cores to a single process here, here and here.
Please check the example.py
script for an example of how to use this library. Below is some documentation on each
event that this library raises and the format of the associated data objects.