starke Performanceprobleme nach längeren ausführen des Codes
Verfasst: Dienstag 15. April 2014, 19:57
Einen wunderschönen Abend wünsche ich euch
ein paar Worte vorneweg
ich habe vor etwa 2- 3 Wochen damit angefangen mich mit Python zu beschäftigen, für den Einstig nutze ich das Buch „Einstieg in Python“ von Thomas Theis bin recht zufrieden mit diesem Buch.
Komme jetzt aber an Probleme die in diesem Buch nicht beschrieben sind bzw. deren Lösung für mich in diesem Buch nicht erkennbar sind.
Explizit arbeite ich gerade an einem Programm zum steuern von Signalen einer Modelleisenbahn, das Programm nutzte ich um eine GUI zur Verfügung zustellen und meine Daten an einen Arduino zu senden. Das Programm ist meiner Meinung soweit fertig, sendet seine „Befehle“ auch ordnungsgemäß an mein Arduino. Jedoch habe ich nach kurzer Zeit ein extremes Performanceproblem . Gelingt, wenn man ca. 10 mal den Button "alle Signale auf Rot setzten" verwendet. Laut Taskmanager hat das Programm eine CPU Last von 1-2%, auch der verbrauchte Arbeitsspeicher mit nicht einmal 7 MB erachte ich als normal.
Zuerst hatte ich die Vermutung, dass in den Funktionen signal01 bis signal16 das Problem liegt, da ich dort meine Button ständig mit einer neuen Farbe erstelle. Diese habe ich einmal auskommentiert, jedoch trat das Problem immer noch auf. Aus mangelnder Erfahrung kann ich mir bei diesem Problem nicht mehr selber helfen, da für mich das Problem in keinster Weise ersichtlich ist.
Ich würde mich freuen, wenn sich jemand mal meinen Quellcode angucken könnte und mir konstruktive Rückmeldung geben würde.
Des Weiteren ist mir bewusst, dass dieser Code extrem weit von einem optimalen Code ist. Ich habe so viele Funktionen geschrieben, da ich immer einen Fehler bekommen habe, als ich die Funktionen mit Parametern und deren Aufruf bei den Buttons hinterlegt habe. Aus diesem Grund habe ich für jedes Signal eine eigene Funktion geschrieben. Ein kleines Codebeispiel für dieses Problem würde mir schon ausreichen.
Ich bedanke mich schon mal im voraus für eure Hilfe
ps: ist es in Ordnung, wenn ich den ganzen Quellcode so wie hier anhenge??
ein paar Worte vorneweg
ich habe vor etwa 2- 3 Wochen damit angefangen mich mit Python zu beschäftigen, für den Einstig nutze ich das Buch „Einstieg in Python“ von Thomas Theis bin recht zufrieden mit diesem Buch.
Komme jetzt aber an Probleme die in diesem Buch nicht beschrieben sind bzw. deren Lösung für mich in diesem Buch nicht erkennbar sind.
Explizit arbeite ich gerade an einem Programm zum steuern von Signalen einer Modelleisenbahn, das Programm nutzte ich um eine GUI zur Verfügung zustellen und meine Daten an einen Arduino zu senden. Das Programm ist meiner Meinung soweit fertig, sendet seine „Befehle“ auch ordnungsgemäß an mein Arduino. Jedoch habe ich nach kurzer Zeit ein extremes Performanceproblem . Gelingt, wenn man ca. 10 mal den Button "alle Signale auf Rot setzten" verwendet. Laut Taskmanager hat das Programm eine CPU Last von 1-2%, auch der verbrauchte Arbeitsspeicher mit nicht einmal 7 MB erachte ich als normal.
Zuerst hatte ich die Vermutung, dass in den Funktionen signal01 bis signal16 das Problem liegt, da ich dort meine Button ständig mit einer neuen Farbe erstelle. Diese habe ich einmal auskommentiert, jedoch trat das Problem immer noch auf. Aus mangelnder Erfahrung kann ich mir bei diesem Problem nicht mehr selber helfen, da für mich das Problem in keinster Weise ersichtlich ist.
Ich würde mich freuen, wenn sich jemand mal meinen Quellcode angucken könnte und mir konstruktive Rückmeldung geben würde.
Des Weiteren ist mir bewusst, dass dieser Code extrem weit von einem optimalen Code ist. Ich habe so viele Funktionen geschrieben, da ich immer einen Fehler bekommen habe, als ich die Funktionen mit Parametern und deren Aufruf bei den Buttons hinterlegt habe. Aus diesem Grund habe ich für jedes Signal eine eigene Funktion geschrieben. Ein kleines Codebeispiel für dieses Problem würde mir schon ausreichen.
Ich bedanke mich schon mal im voraus für eure Hilfe
ps: ist es in Ordnung, wenn ich den ganzen Quellcode so wie hier anhenge??
Code: Alles auswählen
# Signal = True -> Grün
# Signal = False -> Rot
import tkinter
import time
import serial
boolSignal01 = False
boolSignal02 = False
boolSignal03 = False
boolSignal04 = False
boolSignal05 = False
boolSignal06 = False
boolSignal07 = False
boolSignal08 = False
boolSignal09 = False
boolSignal10 = False
boolSignal11 = False
boolSignal12 = False
boolSignal13 = False
boolSignal14 = False
boolSignal15 = False
boolSignal16 = False
print("alle Signale auf Rot gestellt")
main = tkinter.Tk()
def ende():
main.destroy()
def signal01():
global boolSignal01
if boolSignal01 == False:
boolSignal01 = True
else:
boolSignal01 = False
if boolSignal01 == True:
buttonSignal01 = tkinter.Button(main, text = "Signal1", fg="Green", command = signal01)
buttonSignal01.place(x=60, y=20)
print("Signal 1 auf Grün gestellt")
else:
buttonSignal01 = tkinter.Button(main, text = "Signal1", fg="Red", command = signal01)
buttonSignal01.place(x=60, y=20)
print("Signal 1 auf Rot gestellt")
sentInformation()
def signal02():
global boolSignal02
if boolSignal02 == False:
boolSignal02 = True
else:
boolSignal02 = False
if boolSignal02 == True:
buttonSignal02 = tkinter.Button(main, text = "Signal2", fg="Green", command = signal02)
buttonSignal02.place(x=120, y=20)
print("Signal 2 auf Grün gestellt")
else:
buttonSignal02 = tkinter.Button(main, text = "Signal2", fg="Red", command = signal02)
buttonSignal02.place(x=120, y=20)
print("Signal 2 auf Rot gestellt")
sentInformation()
def signal03():
global boolSignal03
if boolSignal03 == False:
boolSignal03 = True
else:
boolSignal03 = False
if boolSignal03 == True:
buttonSignal03 = tkinter.Button(main, text = "Signal3", fg="Green", command = signal03)
buttonSignal03.place(x=60, y=50)
print("Signal 3 auf Grün gestellt")
else:
buttonSignal03 = tkinter.Button(main, text = "Signal3", fg="Red", command = signal03)
buttonSignal03.place(x=60, y=50)
print("Signal 3 auf Rot gestellt")
sentInformation()
def signal04():
global boolSignal04
if boolSignal04 == False:
boolSignal04 = True
else:
boolSignal04 = False
if boolSignal04 == True:
buttonSignal04 = tkinter.Button(main, text = "Signal4", fg="Green", command = signal04)
buttonSignal04.place(x=120, y=50)
print("Signal 4 auf Grün gestellt")
else:
buttonSignal04 = tkinter.Button(main, text = "Signal4", fg="Red", command = signal04)
buttonSignal04.place(x=120, y=50)
print("Signal 4 auf Rot gestellt")
sentInformation()
def signal05():
global boolSignal05
if boolSignal05 == False:
boolSignal05 = True
else:
boolSignal05 = False
if boolSignal05 == True:
buttonSignal05 = tkinter.Button(main, text = "Signal5", fg="Green", command = signal05)
buttonSignal05.place(x=60, y=80)
print("Signal 5 auf Grün gestellt")
else:
buttonSignal05 = tkinter.Button(main, text = "Signal5", fg="Red", command = signal05)
buttonSignal05.place(x=60, y=80)
print("Signal 5 auf Rot gestellt")
sentInformation()
def signal06():
global boolSignal06
if boolSignal06 == False:
boolSignal06 = True
else:
boolSignal06 = False
if boolSignal06 == True:
buttonSignal06 = tkinter.Button(main, text = "Signal6", fg="Green", command = signal06)
buttonSignal06.place(x=120, y=80)
print("Signal 6 auf Grün gestellt")
else:
buttonSignal06 = tkinter.Button(main, text = "Signal6", fg="Red", command = signal06)
buttonSignal06.place(x=120, y=80)
print("Signal 6 auf Rot gestellt")
sentInformation()
def signal07():
global boolSignal07
if boolSignal07 == False:
boolSignal07 = True
else:
boolSignal07 = False
if boolSignal07 == True:
buttonSignal07 = tkinter.Button(main, text = "Signal7", fg="Green", command = signal07)
buttonSignal07.place(x=60, y=110)
print("Signal 7 auf Grün gestellt")
else:
buttonSignal07 = tkinter.Button(main, text = "Signal7", fg="Red", command = signal07)
buttonSignal07.place(x=60, y=110)
print("Signal 7 auf Rot gestellt")
sentInformation()
def signal08():
global boolSignal08
if boolSignal08 == False:
boolSignal08 = True
else:
boolSignal08 = False
if boolSignal08 == True:
buttonSignal08 = tkinter.Button(main, text = "Signal8", fg="Green", command = signal08)
buttonSignal08.place(x=120, y=110)
print("Signal 8 auf Grün gestellt")
else:
buttonSignal08 = tkinter.Button(main, text = "Signal8", fg="Red", command = signal08)
buttonSignal08.place(x=120, y=110)
print("Signal 8 auf Rot gestellt")
sentInformation()
def signal09():
global boolSignal09
if boolSignal09 == False:
boolSignal09 = True
else:
boolSignal09 = False
if boolSignal09 == True:
buttonSignal09 = tkinter.Button(main, text = "Signal9 ", fg="Green", command = signal09)
buttonSignal09.place(x=390, y=20)
print("Signal 9 auf Grün gestellt")
else:
buttonSignal09 = tkinter.Button(main, text = "Signal9 ", fg="Red", command = signal09)
buttonSignal09.place(x=390, y=20)
print("Signal 9 auf Rot gestellt")
sentInformation()
def signal10():
global boolSignal10
if boolSignal10 == False:
boolSignal10 = True
else:
boolSignal10 = False
if boolSignal10 == True:
buttonSignal10 = tkinter.Button(main, text = "Signal10", fg="Green", command = signal10)
buttonSignal10.place(x=450, y=20)
print("Signal 10 auf Grün gestellt")
else:
buttonSignal10 = tkinter.Button(main, text = "Signal10", fg="Red", command = signal10)
buttonSignal10.place(x=450, y=20)
print("Signal 10 auf Rot gestellt")
sentInformation()
def signal11():
global boolSignal11
if boolSignal11 == False:
boolSignal11 = True
else:
boolSignal11 = False
if boolSignal11 == True:
buttonSignal11 = tkinter.Button(main, text = "Signal11", fg="Green", command = signal11)
buttonSignal11.place(x=390, y=50)
print("Signal 11 auf Grün gestellt")
else:
buttonSignal11 = tkinter.Button(main, text = "Signal11", fg="Red", command = signal11)
buttonSignal11.place(x=390, y=50)
print("Signal 11 auf Rot gestellt")
sentInformation()
def signal12():
global boolSignal12
if boolSignal12 == False:
boolSignal12 = True
else:
boolSignal12 = False
if boolSignal12 == True:
buttonSignal12 = tkinter.Button(main, text = "Signal12", fg="Green", command = signal12)
buttonSignal12.place(x=450, y=50)
print("Signal 12 auf Grün gestellt")
else:
buttonSignal12 = tkinter.Button(main, text = "Signal12", fg="Red", command = signal12)
buttonSignal12.place(x=450, y=50)
print("Signal 12 auf Rot gestellt")
sentInformation()
def signal13():
global boolSignal13
if boolSignal13 == False:
boolSignal13 = True
else:
boolSignal13 = False
if boolSignal13 == True:
buttonSignal13 = tkinter.Button(main, text = "Signal13", fg="Green", command = signal13)
buttonSignal13.place(x=390, y=80)
print("Signal 13 auf Grün gestellt")
else:
buttonSignal13 = tkinter.Button(main, text = "Signal13", fg="Red", command = signal13)
buttonSignal13.place(x=390, y=80)
print("Signal 13 auf Rot gestellt")
sentInformation()
def signal14():
global boolSignal14
if boolSignal14 == False:
boolSignal14 = True
else:
boolSignal14 = False
if boolSignal14 == True:
buttonSignal14 = tkinter.Button(main, text = "Signal14", fg="Green", command = signal14)
buttonSignal14.place(x=450, y=80)
print("Signal 14 auf Grün gestellt")
else:
buttonSignal14 = tkinter.Button(main, text = "Signal14", fg="Red", command = signal14)
buttonSignal14.place(x=450, y=80)
print("Signal 14 auf Rot gestellt")
sentInformation()
def signal15():
global boolSignal15
if boolSignal15 == False:
boolSignal15 = True
else:
boolSignal15 = False
if boolSignal15 == True:
buttonSignal15 = tkinter.Button(main, text = "Signal15", fg="Green", command = signal15)
buttonSignal15.place(x=390, y=110)
print("Signal 15 auf Grün gestellt")
else:
buttonSignal15 = tkinter.Button(main, text = "Signal15", fg="Red", command = signal15)
buttonSignal15.place(x=390, y=110)
print("Signal 15 auf Rot gestellt")
sentInformation()
def signal16():
global boolSignal16
if boolSignal16 == False:
boolSignal16 = True
else:
boolSignal16 = False
if boolSignal16 == True:
buttonSignal16 = tkinter.Button(main, text = "Signal16", fg="Green", command = signal16)
buttonSignal16.place(x=450, y=110)
print("Signal 16 auf Grün gestellt")
else:
buttonSignal16 = tkinter.Button(main, text = "Signal16", fg="Red", command = signal16)
buttonSignal16.place(x=450, y=110)
print("Signal 16 auf Rot gestellt")
sentInformation()
def allSignalRed():
global boolSignal01
global boolSignal02
global boolSignal03
global boolSignal04
global boolSignal05
global boolSignal06
global boolSignal07
global boolSignal08
global boolSignal09
global boolSignal10
global boolSignal11
global boolSignal12
global boolSignal13
global boolSignal14
global boolSignal15
global boolSignal16
boolSignal01 = True
boolSignal02 = True
boolSignal03 = True
boolSignal04 = True
boolSignal05 = True
boolSignal06 = True
boolSignal07 = True
boolSignal08 = True
boolSignal09 = True
boolSignal10 = True
boolSignal11 = True
boolSignal12 = True
boolSignal13 = True
boolSignal14 = True
boolSignal15 = True
boolSignal16 = True
signal01()
signal02()
signal03()
signal04()
signal05()
signal06()
signal07()
signal08()
signal09()
signal10()
signal11()
signal12()
signal13()
signal14()
signal15()
signal16()
sentInformation()
def toggleSignal01a02():
global boolSignal01
global boolSignal02
if boolSignal01 != boolSignal02:
signal01()
signal02()
sentInformation()
def toggleSignal03a04():
global boolSignal03
global boolSignal04
if boolSignal03 != boolSignal04:
signal03()
signal04()
sentInformation()
def toggleSignal05a06():
global boolSignal05
global boolSignal06
if boolSignal05 != boolSignal06:
signal05()
signal06()
sentInformation()
def toggleSignal07a08():
global boolSignal07
global boolSignal08
if boolSignal07 != boolSignal08:
signal07()
signal08()
sentInformation()
def toggleSignal09a10():
global boolSignal09
global boolSignal10
if boolSignal09 != boolSignal10:
signal09()
signal10()
sentInformation()
def toggleSignal11a12():
global boolSignal11
global boolSignal12
if boolSignal11 != boolSignal12:
signal11()
signal12()
sentInformation()
def toggleSignal13a14():
global boolSignal13
global boolSignal14
if boolSignal13 != boolSignal14:
signal13()
signal14()
sentInformation()
def toggleSignal15a16():
global boolSignal15
global boolSignal16
if boolSignal15 != boolSignal16:
signal15()
signal16()
sentInformation()
def sentInformation():
# ersten 4 Bit geben Information über Weiche(Adresse)
# 0000 = Weiche 1
# 0001 = Weiche 2
# 0010 = Weiche 3
# 0011 = Weiche 4
# 0100 = Weiche 5
# 0101 = Weiche 6
# 0111 = Weiche 7
# 1111 = Weiche 8
#zweiten 4 Bit geben Information über die Schaltung der Signale
# wenn Rot leuchten soll muss Grün aus sein und umgedreht
# (Signal1 rot) (Signal1 grün) (Signal2 rot) (Signal2 grün)
# 1010 alle Signale auf Rot und alle Grünen Signale aus
# 0110 Signal 1 auf Grün Signal 2 auf Rot
# 1001 Signal 1 auf Rot Signal 2 auf Grün
# 0101 beide Signale auf Grün und Rote Signale aus
global boolSignal01
global boolSignal02
global boolSignal03
global boolSignal04
global boolSignal05
global boolSignal06
global boolSignal07
global boolSignal08
global boolSignal09
global boolSignal10
global boolSignal11
global boolSignal12
global boolSignal13
global boolSignal14
global boolSignal15
global boolSignal16
print("Sent")
#Signale für Weiche 1(Signal1 und 2)
# Signal 1 Rot / Siganl 2 Rot
if boolSignal01 == False and boolSignal02 == False:
print("0000 1010")
arduino.write(str(0b00001010).encode())
time.sleep(0.01)
# Signal 1 Grün / Siganl 2 Rot
if boolSignal01 == True and boolSignal02 == False:
print("0000 0110")
arduino.write(str(0b00000110).encode())
time.sleep(0.01)
# Signal 1 Rot / Siganl 2 Grün
if boolSignal01 == False and boolSignal02 == True:
print("0000 1001")
arduino.write(str(0b00001001).encode())
time.sleep(0.01)
# Signal 1 Grün / Siganl 2 Grün
if boolSignal01 == True and boolSignal02 == True:
print("0000 0101")
arduino.write(str(0b00000101).encode())
time.sleep(0.01)
#Signale für Weiche 2(Signal3 und 4)
# Signal 3 Rot / Siganl 4 Rot
if boolSignal03 == False and boolSignal04 == False:
print("0001 1010")
arduino.write(str(0b00011010).encode())
time.sleep(0.01)
# Signal 3 Grün / Siganl 4 Rot
if boolSignal03 == True and boolSignal04 == False:
print("0001 0110")
arduino.write(str(0b00010110).encode())
time.sleep(0.01)
# Signal 3 Rot / Siganl 4 Grün
if boolSignal03 == False and boolSignal04 == True:
print("0001 1001")
arduino.write(str(0b00011001).encode())
time.sleep(0.01)
# Signal 3 Grün / Siganl 4 Grün
if boolSignal03 == True and boolSignal04 == True:
print("0001 0101")
arduino.write(str(0b00010101).encode())
time.sleep(0.01)
#Signale für Weiche 3(Signal5 und 6)
# Signal 5 Rot / Siganl 6 Rot
if boolSignal05 == False and boolSignal06 == False:
print("0010 1010")
arduino.write(str(0b00101010).encode())
time.sleep(0.01)
# Signal 5 Grün / Siganl 6 Rot
if boolSignal05 == True and boolSignal06 == False:
print("0010 0110")
arduino.write(str(0b00100110).encode())
time.sleep(0.01)
# Signal 5 Rot / Siganl 6 Grün
if boolSignal05 == False and boolSignal06 == True:
print("0010 1001")
arduino.write(str(0b00101001).encode())
time.sleep(0.01)
# Signal 5 Grün / Siganl 6 Grün
if boolSignal05 == True and boolSignal06 == True:
print("0010 0101")
arduino.write(str(0b00100101).encode())
time.sleep(0.01)
#Signale für Weiche 4(Signal7 und 8)
# Signal 7 Rot / Siganl 8 Rot
if boolSignal07 == False and boolSignal08 == False:
print("0011 1010")
arduino.write(str(0b00111010).encode())
time.sleep(0.01)
# Signal 7 Grün / Siganl 8 Rot
if boolSignal07 == True and boolSignal08 == False:
print("0011 0110")
arduino.write(str(0b00110110).encode())
time.sleep(0.01)
# Signal 7 Rot / Siganl 8 Grün
if boolSignal07 == False and boolSignal08 == True:
print("0011 1001")
arduino.write(str(0b00111001).encode())
time.sleep(0.01)
# Signal 7 Grün / Siganl 8 Grün
if boolSignal07 == True and boolSignal08 == True:
print("0011 0101")
arduino.write(str(0b00110101).encode())
time.sleep(0.01)
#Signale für Weiche 5(Signal9 und 10)
# Signal 9 Rot / Siganl 10 Rot
if boolSignal09 == False and boolSignal10 == False:
print("0100 1010")
arduino.write(str(0b01001010).encode())
time.sleep(0.01)
# Signal 9 Grün / Siganl 10 Rot
if boolSignal09 == True and boolSignal10 == False:
print("0100 0110")
arduino.write(str(0b01000110).encode())
time.sleep(0.01)
# Signal 9 Rot / Siganl 10 Grün
if boolSignal09 == False and boolSignal10 == True:
print("0100 1001")
arduino.write(str(0b01001001).encode())
time.sleep(0.01)
# Signal 9 Grün / Siganl 10 Grün
if boolSignal09 == True and boolSignal10 == True:
print("0100 0101")
arduino.write(str(0b01000101).encode())
time.sleep(0.01)
#Signale für Weiche 6(Signal11 und 12)
# Signal 11 Rot / Siganl 12 Rot
if boolSignal11 == False and boolSignal12 == False:
print("0101 1010")
arduino.write(str(0b01011010).encode())
time.sleep(0.01)
# Signal 11 Grün / Siganl 12 Rot
if boolSignal11 == True and boolSignal12 == False:
print("0101 0110")
arduino.write(str(0b01010110).encode())
time.sleep(0.01)
# Signal 11 Rot / Siganl 12 Grün
if boolSignal11 == False and boolSignal12 == True:
print("0101 1001")
arduino.write(str(0b01011001).encode())
time.sleep(0.01)
# Signal 11 Grün / Siganl 12 Grün
if boolSignal11 == True and boolSignal12 == True:
print("0101 0101")
arduino.write(str(0b01010101).encode())
time.sleep(0.01)
#Signale für Weiche 7(Signal13 und 14)
# Signal 13 Rot / Siganl 14 Rot
if boolSignal13 == False and boolSignal14 == False:
print("0111 1010")
arduino.write(str(0b01111010).encode())
time.sleep(0.01)
# Signal 13 Grün / Siganl 14 Rot
if boolSignal13 == True and boolSignal14 == False:
print("0111 0110")
arduino.write(str(0b01110110).encode())
time.sleep(0.01)
# Signal 13 Rot / Siganl 14 Grün
if boolSignal13 == False and boolSignal14 == True:
print("0111 1001")
arduino.write(str(0b01111001).encode())
time.sleep(0.01)
# Signal 13 Grün / Siganl 14 Grün
if boolSignal13 == True and boolSignal14 == True:
print("0111 0101")
arduino.write(str(0b01110101).encode())
time.sleep(0.01)
#Signale für Weiche 8(Signal15 und 16)
# Signal 15 Rot / Siganl 16 Rot
if boolSignal15 == False and boolSignal16 == False:
print("1111 1010")
arduino.write(str(0b11111010).encode())
time.sleep(0.01)
# Signal 15 Grün / Siganl 16 Rot
if boolSignal15 == True and boolSignal16 == False:
print("1111 0110")
arduino.write(str(0b11110110).encode())
time.sleep(0.01)
# Signal 15 Rot / Siganl 16 Grün
if boolSignal15 == False and boolSignal16 == True:
print("1111 1001")
arduino.write(str(0b11111001).encode())
time.sleep(0.01)
# Signal 15 Grün / Siganl 16 Grün
if boolSignal15 == True and boolSignal16 == True:
print("1111 0101")
arduino.write(str(0b11110101).encode())
time.sleep(0.01)
print("Verbinde Serial port")
arduino = serial.Serial(2, 9600, timeout = None)
time.sleep(1)
print("Verbunden")
buttonSignal01 = tkinter.Button(main, text = "Signal1", fg="Red", command = signal01)
buttonSignal01.place(x=60, y=20)
buttonSignal02 = tkinter.Button(main, text = "Signal2", fg="Red", command = signal02)
buttonSignal02.place(x=120, y=20)
buttonSignal03 = tkinter.Button(main, text = "Signal3", fg="Red", command = signal03)
buttonSignal03.place(x=60, y=50)
buttonSignal04 = tkinter.Button(main, text = "Signal4", fg="Red", command = signal04)
buttonSignal04.place(x=120, y=50)
buttonSignal05 = tkinter.Button(main, text = "Signal5", fg="Red", command = signal05)
buttonSignal05.place(x=60, y=80)
buttonSignal06 = tkinter.Button(main, text = "Signal6", fg="Red", command = signal06)
buttonSignal06.place(x=120, y=80)
buttonSignal07 = tkinter.Button(main, text = "Signal7", fg="Red", command = signal07)
buttonSignal07.place(x=60, y=110)
buttonSignal08 = tkinter.Button(main, text = "Signal8", fg="Red", command = signal08)
buttonSignal08.place(x=120, y=110)
buttonSignal09 = tkinter.Button(main, text = "Signal9 ", fg="Red", command = signal09)
buttonSignal09.place(x=390, y=20)
buttonSignal10 = tkinter.Button(main, text = "Signal10", fg="Red", command = signal10)
buttonSignal10.place(x=450, y=20)
buttonSignal08 = tkinter.Button(main, text = "Signal11", fg="Red", command = signal11)
buttonSignal08.place(x=390, y=50)
buttonSignal08 = tkinter.Button(main, text = "Signal12", fg="Red", command = signal12)
buttonSignal08.place(x=450, y=50)
buttonSignal08 = tkinter.Button(main, text = "Signal13", fg="Red", command = signal13)
buttonSignal08.place(x=390, y=80)
buttonSignal08 = tkinter.Button(main, text = "Signal14", fg="Red", command = signal14)
buttonSignal08.place(x=450, y=80)
buttonSignal08 = tkinter.Button(main, text = "Signal15", fg="Red", command = signal15)
buttonSignal08.place(x=390, y=110)
buttonSignal08 = tkinter.Button(main, text = "Signal16", fg="Red", command = signal16)
buttonSignal08.place(x=450, y=110)
buttonSignal0102drehen = tkinter.Button(main, text = "Signale 1 und 2 drehen", command = toggleSignal01a02)
buttonSignal0102drehen.place(x=180, y= 20 )
buttonSignal0304drehen = tkinter.Button(main, text = "Signale 3 und 4 drehen", command = toggleSignal03a04)
buttonSignal0304drehen.place(x=180, y= 50 )
buttonSignal0506drehen = tkinter.Button(main, text = "Signale 5 und 6 drehen", command = toggleSignal05a06)
buttonSignal0506drehen.place(x=180, y= 80 )
buttonSignal0708drehen = tkinter.Button(main, text = "Signale 7 und 8 drehen", command = toggleSignal07a08)
buttonSignal0708drehen.place(x=180, y= 110 )
buttonSignal0910drehen = tkinter.Button(main, text = "Signale 9 und 10 drehen ", command = toggleSignal09a10)
buttonSignal0910drehen.place(x=510, y= 20 )
buttonSignal1112drehen = tkinter.Button(main, text = "Signale 11 und 12 drehen", command = toggleSignal11a12)
buttonSignal1112drehen.place(x=510, y= 50 )
buttonSignal1314drehen = tkinter.Button(main, text = "Signale 13 und 14 drehen", command = toggleSignal13a14)
buttonSignal1314drehen.place(x=510, y= 80 )
buttonSignal1516drehen = tkinter.Button(main, text = "Signale 15 und 16 drehen", command = toggleSignal15a16)
buttonSignal1516drehen.place(x=510, y= 110 )
buttonAllSignalRed = tkinter.Button(main, text = "alle Signale auf Rot setzen", command = allSignalRed)
buttonAllSignalRed.place(x=40, y=140)
label01 = tkinter.Label(main, text = "Weiche1")
label01.place(x=1, y=20)
label02 = tkinter.Label(main, text = "Weiche2")
label02.place(x=1, y=50)
label03 = tkinter.Label(main, text = "Weiche3")
label03.place(x=1, y=80)
label04 = tkinter.Label(main, text = "Weiche4")
label04.place(x=1, y=110)
label01 = tkinter.Label(main, text = "Weiche5")
label01.place(x=330, y=20)
label01 = tkinter.Label(main, text = "Weiche6")
label01.place(x=330, y=50)
label01 = tkinter.Label(main, text = "Weiche7")
label01.place(x=330, y=80)
label01 = tkinter.Label(main, text = "Weiche8")
label01.place(x=330, y=110)
buttonEnde = tkinter.Button(main, text = "Beenden",command = ende)
buttonEnde.place(x=40, y=170)
main.mainloop()

