pyserial - Problem beim anzeigen von Daten
Verfasst: Montag 16. März 2009, 00:28
Guten Tag
Ich arbeite erst seit kurzem mit Python - bin also Anfänger.
Ueber die serielle Schnittstelle will ich Daten empfangen und in einem Windows Fenster sofort anzeigen. Dazu habe ich mir Folgendes kleines Prog. geschrieben.
Die Messungen (Daten) werden im Python Shell jeweils sofort nach 50 Zeichen angezeigt. Im Windows Fenster (textfenster) werden sie aber erst nach beenden der while Schlaufe augegeben.
Was mache ich falch resp. warum wird der String "messung" bei jedem Durchlauf im Python Shell gedruckt nicht aber im Windows Fenster?
Bin für jeden Hinweis dankbar!
Gruss vmax80
PS. Habe mein erster Beitrag ohne Titel gesendet - hoffe der Erste ist gelöscht!
Ich arbeite erst seit kurzem mit Python - bin also Anfänger.
Ueber die serielle Schnittstelle will ich Daten empfangen und in einem Windows Fenster sofort anzeigen. Dazu habe ich mir Folgendes kleines Prog. geschrieben.
Code: Alles auswählen
# empfangen1
import serial
from Tkinter import *
from decimal import *
import time
def empfangen():
root.title('Daten empfangen ')
evClear()
ser = serial.Serial(port = 0, timeout = 1)
ser.baudrate = 38400
a = 0
ab=time.time()
while a<10:
if not ser.isOpen():
break
messung = ser.read(50)
if messung<> "":
ab=time.time()
else:
a=time.time()-ab
print len(messung) # nur zur Kontrolle im normalfall 50
print messung # auch nur zur Kontrolle
textfenster.insert(END, messung)
textfenster.pack()
# print "Verbindung unterbrochen"
ser.close()
def popupMenu(event):
popup.post(event.x_root, event.y_root)
def ende():
root.destroy()
def callback():
print "Spaeter"
def evClear():
textfenster.delete('1.0',END)
root = Tk()
textfenster = Text(root)
textfenster.pack(fill=BOTH,expand=YES)
# popup im textfenster
popup = Menu(textfenster,tearoff=0)
popup.add_command(label='Seite loeschen', command=evClear)
popup.add_separator()
popup.add_command(label='Empfangen', command=empfangen)
popup.add_separator()
popup.add_command(label='Speichern', command=callback)
popup.add_separator()
popup.add_command(label='Beenden', command=ende)
textfenster.bind('<Button-3>',popupMenu)
mainloop()
Was mache ich falch resp. warum wird der String "messung" bei jedem Durchlauf im Python Shell gedruckt nicht aber im Windows Fenster?
Bin für jeden Hinweis dankbar!
Gruss vmax80
PS. Habe mein erster Beitrag ohne Titel gesendet - hoffe der Erste ist gelöscht!