ich habe seit meinem letzten Post den Code nochmal überarbeitet und versucht es selber auf die Reihe zu bekommen. Leider verstehe ich nicht, warum mir noch immer Fehler angezeigt werden:
Code: Alles auswählen
from tkinter import *
import time
import serial
import RPi.GPIO as GPIO
ser = serial.Serial(
port='/dev/ttyAMA0',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
counter=0
root = Tk()
root.configure(bg="white")
root.wm_minsize(width=1024,height=600)
Grid.rowconfigure(root, 0, weight=1)
Grid.columnconfigure(root, 0, weight=1)
frame=Frame(root)
frame.grid(row=0, column=0, sticky=N+S+E+W)
class Application:
def KachelO(self,a,Platz):
label = Label(frame,text=Platz,bg="white",bd=1, relief = SUNKEN)
label.grid(row=0, column=a, sticky=N+W+E)
Seriennummer = Label(frame,text="Seriennummer:",anchor=W)
Seriennummer.grid(row=1,column=a,sticky=W+N)
Belegt=Label(frame,text="Belegt?",font = "bold")
Belegt.grid(row=3,column=a,sticky=N)
AntwortaufBelegt=Label(frame,text="JA",bg="green")
AntwortaufBelegt.grid(row=4,column=a,sticky=N)
Bereit=Label(frame,text="Einsatzbereit?",font = "bold")
Bereit.grid(row=6,column=a,sticky=N)
AntwortaufBereit=Label(frame,text="JA",bg="green")
AntwortaufBereit.grid(row=7,column=a,sticky=N)
self.loop()
def loop(self):
self.abfrage()
self.auswertung()
self.after(100,self.loop) #Fehler 1
def abfrage(self):
self.x=ser.readline()
if self.x != b' ':
self.reading = ser.readline().decode()
if self.reading:
if self.reading.endswith('\r\n'):
self.Distanz = float(self.reading.strip())
else:
self.Temperatur = float(self.reading)
def auswertung(self):
if self.Distanz < 20:
self.AntwortaufBelegt['text']="JA" #Fehler 2
else:
self.AntwortaufBelegt['text']="NEIN"
if self.Temperatur < 25:
self.Bereit['text']="JA"
else:
self.Bereit['text']="NEIN"
A=Application()
for row_index in range(32):
Grid.rowconfigure(frame, row_index, weight=1)
for col_index in range(4):
Grid.columnconfigure(frame, col_index, weight=1)or row_index
A.KachelO(0,"Platz 1")
A.KachelO(1,"Platz 2")
A.KachelO(2,"Platz 3")
A.KachelO(3,"Platz 4")
label9=Label(root,text="Anzahle der Endoskope im Schrank:",bg="white",anchor=W, bd=1, relief = SUNKEN)
label9.grid(row=32,column=0,sticky=E+S+N+W)
root.mainloop()
Warum wird mir die .after() Funktion als Fehler angezeigt?
Warum kann ich in der Funktion Auswertung die Label nicht aufrufen?
Ich brauche keine Musterlösung sondern einen Denkanstoß.... Danke