Problem mit GUI Andwendung: Exception in Tkinter callback

Fragen zu Tkinter.
Antworten
term1n5tor
User
Beiträge: 3
Registriert: Samstag 18. Juni 2011, 19:39

hi ;)
bastel grad an ner Tkinter Gui Anwendung soll die Steuerung für nen Mikrocontroller Projekt werden.
nun zu meinem Problem es soll eine Serielle Verbindung aufgebaut werden mit Pyserial
was auch Funktioniert wenn das Gerät angeschlossen ist,
soweit so gut wenn nun aber das Gerät abgesteckt ist bekomm ich
zu der Fehlermeldung das er den Com Port nicht öffnen kann,
noch ein paar Exceptions... keine Ahnung wie ich die wegbekomm.
is mein erstes Python Projekt hoff ihr könnt mir helfen.

http://www.python-forum.de/pastebin.php?mode=view&s=211

zur info hab python 3.2 und das ganze läuft unter win7

Bild

Uploaded with ImageShack.us
deets

Na, wenn du schon weisst, dass es an daran liegt, dass das Geraet nicht angeschlossen ist, dann gibt's da nur 2 Moeglichkeiten:

1) wenn das Programm startet, versucht es den COM-port zu oeffnen. Wenn das fehlschlaegt, zeigst du einen Fehler an & beendest das Programm

2) du startest das Programm & kapselst alle Kommunikation so, dass auftretende Fehler das Programm nicht beenden, sondern stattdessen ebenfalls einen Fehler melden, aber zB eine Schaltflaeche aktivieren, mit der man sich wieder verbinden kann.

Im Grunde ist 2 die komfortablere Variante von 1 :)

Also, in deiner connect-Funktion faengst du die serial-exception, zeigst einen Fehlerdialog (messagbox usw), und dann beendest du dich. Das waere dann Variante 1.
term1n5tor
User
Beiträge: 3
Registriert: Samstag 18. Juni 2011, 19:39

das Programm läuft trotz fehlermeldung weiter ist auch kein Problem blos müsste ich halt irgendwie ne Fehlermeldung ausgeben können in der GUI
denn der Fehler tritt ja auch auf wenn man den falschen Com Port wählt.
dachte halt wenn ich die Exceptions wegbekomm kann ich die Fehlermeldung weiterverarbeiten.

Bild

Uploaded with ImageShack.us

Erfolgreiche Serielle Verbindung:

Bild

Uploaded with ImageShack.us
BlackJack

@term1n5tor: Du musst die Ausnahme nicht ”webekommen” sondern an entsprechender Stelle im Programm behandeln.
term1n5tor
User
Beiträge: 3
Registriert: Samstag 18. Juni 2011, 19:39

Alles klar hab es hinbekommen!

Exception wird nun behandelt und nen Error ausgegeben.

def connect():
try:
print ("Connect to Port: ", comport.get(), baudrate.get())
ser = serial.Serial(comport.get(), baudrate.get(), timeout=0)
com_status = ser.isOpen()
if com_status == True:
textbox.insert(END, ser.isOpen, "\n")
except:
print ("Error: ", sys.exc_info())
Antworten