# Code des ersten Buttons mit der Funktion "stellen" def stellen (): #Verbindung zur DB conn = sqlite3.connect('medis.db') curs = conn.cursor() # erzeugen eines Objekts um Datensaetze aus einer DB auszulesen # sende SQL-Befehl an DB um alle Zeilen der Spalte "gestellt" auf Null zu setzen curs.execute("UPDATE stellliste SET gestellt= 0") conn.commit() # Änderung in der DB speichern curs.close # schliesst den Cursor conn.close # Verbindung zur DB schliessen print(" Bitte Medikament einscannen") # Startet den VideoStream und warm laufen der Kamera vs = VideoStream(usePiCamera=True).start() time.sleep(2.0) while True: # Liest das Muster des QR-Codes ein und setzt ein Maximum der Breite von 400 Pixel frame = vs.read() frame = imutils.resize(frame, width=400) # Dekodieren des eingescannten QR-Code barcodes = pyzbar.decode(frame) for barcode in barcodes: # wandelt die QR-Code Daten in einen utf-8 string barcodeData = barcode.data.decode("utf-8") a,b,c,d,e,f,g,h = barcodeData.split(",") #splittet den qr-code print(barcodeData) # Zuweisung der Variablen neumed = b gestellt = 0 #Verbindung zur DB conn = sqlite3.connect('medis.db') cur = conn.cursor() curv = conn.cursor() # Abfrage an die DB ob das eingescannte Medikament schon gestellt wurde cur.execute("select * from stellliste WHERE medikament= ? AND gestellt=?",(neumed, gestellt,)) # Abfrage an die DB ob das eingescannte Medikament in der DB ist curv.execute("select * from stellliste WHERE medikament= ?",(neumed,)) # wenn Medikament nicht in der DB ist, gibt es eine Meldung aus if len(list(curv)) == 0: print("Medikament nicht gefunden") # falls ja, pruefe ob Medikament schon gestellt wurde else: if len(list(cur)) == 0: # wenn ja, gebe Meldung/Hinweis print("Medikament wurde schon gestellt.") # wenn nicht,setze den Wert fuer gestellt auf 1 in der DB else: cur.execute(" UPDATE stellliste SET gestellt=1 WHERE medikament=?",(neumed,)) conn.commit() cur.close conn.close time.sleep(3.0) vs.stop()