Bonjour Pierre,
Le 22/02/06, launay<pierre dot launay at ac-rennes dot fr> a écrit :
Pour les spécialistes de python :
la documentation http://pyserial.sourceforge.net/
m'indique qu'avec ser.inWaiting() j'ai le nombres d'octets reçus en
attente (j'ai testé).
Je voudrais l'utiliser dans une boucle mainloop() de tkinter ou autre,
pour une interface graphique.
Comment faire pour associer un évenement (event ou bind) si
ser.inWaiting() est différent de 0 ?
Cela me semble plus une question relative à tkinter que pyserial.
D'après ce que j'ai pu lire sur le web[1], le plus simple serait que
tu enregistres un callback qui se déclenche sur timeout (après qu'un
certain temps ce soit écoulé). Quelque chose du style (en partant de
l'exemple du web) :
class App:
def __init__(self, master):
self.master = master
self.poll() # start polling
def poll(self):
if ser.inWaiting () >= 5:
# at least one xx yy LF
# do serial port processing
self.master.after(100, self.poll)
Après, il faut faire un polling suffisament régulier pour traiter tes
événements.
L'objectif on reçoit 5 caractères ASCII xx yy LF (fin de ligne) et on
trace une courbe en X Y
La courbe se fait au fur et à mesure de la réception.
En espérant que ça aide,
Amicalement,
d.
[1] http://www.pythonware.com/library/tkinter/introduction/x9507-alarm-handlers-and-other.htm
---- Liste gulliver ----
Se désinscrire, mailto:gulliver-unsubscribe at listes dot gulliver dot eu dot org
GULLIVER, http://gulliver.eu.org/