| Jura-Python-BT
    Code for control and payment system of Jura Coffee Machine | 
Main script to run for BlackBetty. More...
| Namespaces | |
| namespace | blue | 
| Functions | |
| def | blue.setupBuzzer (pin) | 
| Setup buzzer. | |
| def | blue.beep (duration) | 
| Make a beep sound. | |
| def | blue.lockUnlockMachine (code, lock_status, unlock_code="77e1") | 
| Lock or unlock the machine. | |
| def | blue.scanCard () | 
| Scan for RFID tag. | |
| def | blue.getAlerts (status) | 
| Get alerts from the decoded machine status and convert it to the corresponding alerts (if any) If the corresponding bit is not set, the alert is not active. | |
| def | blue.end_read (signal, frame) | 
| End the program Runs when Ctrl+C is pressed. | |
| def | blue.read_statistics () | 
| Read the statistics from the machine. | |
| Variables | |
| json | blue.CHARACTERISTICS = json.load(open("/home/pi/Jura-Python-BT/data/uuids_handles.json"))["characteristics"] | 
| Global Constants The dictionary of UUIDs and handles of the bluetooth characteristics. | |
| json | blue.ALERTS = json.load(open("/home/pi/Jura-Python-BT/data/alerts.json"))["alerts"] | 
| The dictionary of alerts from machine status. | |
| json | blue.PRODUCTS = json.load(open("/home/pi/Jura-Python-BT/data/products.json"))["products"] | 
| The dictionary of products the machine can make. | |
| json | blue.PRICECOFFEE = json.load(open("/home/pi/Jura-Python-BT/data/prices.json"))["pricecoffee"] | 
| The dictionary of prices of the products. | |
| int | blue.BUZZER_PIN = 7 | 
| The pin for the buzzer. | |
| os | blue.DEVICE = os.getenv("DEVICE") | 
| Load the environment variables from .env file. | |
| os | blue.MASTERCARD1 = os.getenv("MASTER_CARD_1") | 
| The UID of master card 1 read from .env file. | |
| os | blue.MASTERCARD2 = os.getenv("MASTER_CARD_2") | 
| The UID of master card 2 read from .env file. | |
| db_connect | blue.DB = db_connect() | 
| The open database connection. | |
| BtEncoder | blue.BtEncoder = BtEncoder() | 
| The instance of the BtEncoder class. | |
| JuraEncoder | blue.JuraEncoder = JuraEncoder() | 
| The instance of the JuraEncoder class. | |
| MFRC522 | blue.RFIDREADER = MFRC522.MFRC522() | 
| The instance of the RFID reader class | |
| blue.filename | |
| blue.level | |
| blue.format | |
| blue.datefmt | |
| lcddriver | blue.lcd = lcddriver.lcd() | 
| Initialize LCD. | |
| blue.child = pexpect.spawn("gatttool -b " + DEVICE + " -I -t random") | |
| Get all necessary variables from setup.py -> check file for more information. | |
| blue.keep_alive_code | |
| blue.locking_code | |
| blue.unlock_code | |
| blue.KEY_DEC | |
| blue.all_statistics | |
| blue.initial_time | |
| blue.CURRENT_STATISTICS = decoded | |
| db_connect | blue.c = DB.cursor() | 
| int | blue.emergency_unlock = 0 | 
| blue.else : | |
| str | blue.lock_status = "unlocked" | 
| blue.try : | |
| serial | blue.port = serial.Serial("/dev/serial0", baudrate = 9600, timeout = 1.0) | 
| blue.except : | |
| bool | blue.buttonPress = False | 
| The variables used in the main loop. | |
| bool | blue.continue_reading = True | 
| str | blue.lastSeen = "" | 
| int | blue.counter = 0 | 
| int | blue.disp_init = 1 | 
| int | blue.payment_to_date = 1 | 
| str | blue.client_to_pay = "" | 
| int | blue.admin_locked = 0 | 
| int | blue.admin_prod = 0 | 
| int | blue.total_prod = 0 | 
| int | blue.payed_prod = 0 | 
| int | blue.current_time = int(time.time() - initial_time) | 
| int | blue.hour = int(time.strftime("%H")) | 
| int | blue.minute = int(time.strftime("%M")) | 
| int | blue.second = int(time.strftime("%S")) | 
| child | blue.data = child.readline() | 
| BtEncoder | blue.decoded = BtEncoder.encDecBytes(data, KEY_DEC) | 
| blue.timeout | |
| def | blue.uid_str = scanCard() | 
| def | blue.prod = read_statistics() | 
| bool | blue.product_made = False | 
| get_value | blue.value = get_value(DB, uid_str) | 
| str | blue.value_str = str("Balance: " + str('%.2f' % value) + " EUR") | 
| get_name | blue.lastName = get_name(DB, uid_str) | 
| get_vorname | blue.preName = get_vorname(DB, uid_str) | 
| str | blue.welStr = str("Hello " + preName) | 
| str | blue.msgStr3 = str("Hold for 2s please ") | 
| str | blue.msgStr4 = str("Chip below ") | 
| time | blue.intial_time_2 = time.time() | 
| int | blue.chosen = 0 | 
| int | blue.started = 0 | 
| int | blue.over = 0 | 
| int | blue.time_total = int(time.time() - intial_time_2) | 
| list | blue.data2 = [int(x, 16) for x in data.split()] | 
| list | blue.as_hex = ["%02x" % d for d in decoded] | 
| json | blue.price_product = PRICECOFFEE[product_made] | 
| int | blue.value_new = 0 | 
| str | blue.msgStr1 = str(product_made + " was made!") | 
| str | blue.msgStr2 = str(" Happy betty :) ") |