Tkinter und pyserial
Verfasst: Dienstag 9. April 2013, 15:13
Hallo Python-Forum
Thema: pyserial und Tkinter XP
Habe ein Tkinter-Programm mit pyserial und threading
welches Mess-Daten von einem mikroProcessor empfängt.
Das geht im Prinzip, aber ist unglaublich langsam.
Baudrate 38400, 8 N 1 COM1 als "richtigen" RS232
Bemerkung:
das bei pyserial-Paket beiliegende miniterm.py
reagiert zeitnah, aber nur in der Py-Shell.
bei miniterm.py unter Idle kommen nur komische
Zeichen und es geht nicht mehr normal zu beenden.
Zu allem Unglück ist die belegte Comx verhunzt und muss umständlich entsperrt werden !
Zum testen habe ich auf dem uP ein Befehl,
welcher 65535 mal die 4stellige Hexzahl mit ; als Trenner sendet.
das von mir benutzt HTerm, welches ich als gut empfand, schaffte diesen Test
auch nicht, es verschluckte am Ende zu Zeichen und blieb hängen.
Nun zum Problem:
Der Messvorgang wird mit einem gesendeten Char vom PC
gestartet und ist vom uP in ca 1 Sekunde erledigt
es sendet ca. 2000 zeichen,
das Py+Tk programm braucht dazu fast 20 sec .
Die einzelnen Zeichen kriechen förmlich auf dem Bildschirm und die Pixel
auf dem Canvas-Fenster kann man fast einzeln beobachten
Das ganze wird mit jedem Messzyklus noch langsamer.
Frage:
Gibt es eine Möglichkeit, in der "TK".mainloop() etwas "unterzubringen"?
So wie die einzelnen Buttons und Entrys und die Maus usw. dauernd abgefragt
werden (eben die mainloop), könnte man doch "pyserial.inWaiting()" auch abfragen und
entsprechend reagieren.
gruss
bastler
Thema: pyserial und Tkinter XP
Habe ein Tkinter-Programm mit pyserial und threading
welches Mess-Daten von einem mikroProcessor empfängt.
Das geht im Prinzip, aber ist unglaublich langsam.
Baudrate 38400, 8 N 1 COM1 als "richtigen" RS232
Bemerkung:
das bei pyserial-Paket beiliegende miniterm.py
reagiert zeitnah, aber nur in der Py-Shell.
bei miniterm.py unter Idle kommen nur komische
Zeichen und es geht nicht mehr normal zu beenden.
Zu allem Unglück ist die belegte Comx verhunzt und muss umständlich entsperrt werden !
Zum testen habe ich auf dem uP ein Befehl,
welcher 65535 mal die 4stellige Hexzahl mit ; als Trenner sendet.
das von mir benutzt HTerm, welches ich als gut empfand, schaffte diesen Test
auch nicht, es verschluckte am Ende zu Zeichen und blieb hängen.
Nun zum Problem:
Der Messvorgang wird mit einem gesendeten Char vom PC
gestartet und ist vom uP in ca 1 Sekunde erledigt
es sendet ca. 2000 zeichen,
das Py+Tk programm braucht dazu fast 20 sec .
Die einzelnen Zeichen kriechen förmlich auf dem Bildschirm und die Pixel
auf dem Canvas-Fenster kann man fast einzeln beobachten
Das ganze wird mit jedem Messzyklus noch langsamer.
Frage:
Gibt es eine Möglichkeit, in der "TK".mainloop() etwas "unterzubringen"?
So wie die einzelnen Buttons und Entrys und die Maus usw. dauernd abgefragt
werden (eben die mainloop), könnte man doch "pyserial.inWaiting()" auch abfragen und
entsprechend reagieren.
gruss
bastler