[pyar] GTK, señales y puerto serie.
Manuel Naranjo
naranjo.manuel en gmail.com
Jue Jul 29 16:14:16 ART 2010
Seba,
> Hola gente, estoy llevando a cabo un proyecto que consiste de una
> interfaz electrónica conectada por RS232 a una computadora que se
> encarga de mostrar en un programa los datos obtenidos por RS232 y
> subir un archivo a Internet con dicha información. Para la parte del
> programa de computadora decidí usar python ya que tengo cierta
> experiencia (aunque muy poca para ser sinceros) y conozco sus
> virtudes. Ya estuve ensayando con el RS232 y gracias a
> pyserial logramos obtener datos con cierta simpleza y facilidad. El
> problema surge cuando yo mi única experiencias con interfaces
> gráficas es con GTK (y glade) y en el solo he hecho ventanas simples,
> manejando un par de widgets y las señales que ellos disparan (botones
> por ejemplo).
Mhh me imagino por que lado debe venir tu problema. El tema es que GTK
requiere un loop de eventos para funcionar, y eso no se lleva del todo
bien en primera instancia con cualquier tipo de comunicaciones.
Te recomiendo que mires la librería PyGobject y en particular el método:
|glib.io_add_watch(/|fd|/, /|condition|/, /|callback|/, /|...|/)
Esta función te va a permitir que tu callback sea llamado cuando cierta
condición sea cumplida. Por ejemplo si vos vas a recibir datos vas a
querer que tu callback sea llamado cuando hayan datos listos para ser
leídos.
|
> El problema es que esto no se como encararlo. ¿Se puede generar
> alguna señal y a partir de la misma definir un método que se encargue
> de lidiar con la transmisión RS232? ¿o definir la señal luego de que
> la transmisión haya sido completada y que dicho método se encargue de
> las transferencias ftp ? ¿que me recomiendan?
Podrías explicar un poquito más como funciona tu sistema? Vos envías un
comando y esperas una respuesta? O el tipo esta todo el tiempo enviando?.
Sea como sea te recomiendo que trabajes de forma asincrónica, sino vas a
necesitas un segundo hilo y vas a tener que sincronizar el hilo de la
GUI con el hilo del acceso a datos lo cual no va a ser sencillo.
> Sinceramente no conozco cual seria la mejor forma de realizar esto
> desde el punto de vista del diseño, y por lo que pude googlear no
> encontré ningún tutorial de GTK que no sea ultra básico y trate temas
> como la generación de señales ajenas a un widget.
De acceso asincrónico podes mirar esto
http://code.google.com/p/proximitymarketing/source/browse/trunk/openproximity2/serverXR/async.py
fijate la parte que hace testSpawnApplication, la idea ahí es arrancar
una aplicación externa y que cuando termine se reciba una señal. Tu caso
es más sensillo.
Acá hay un proyecto que hice hace un par de años para la facu
http://code.google.com/p/avs3a-analyzer/source/browse/trunk/gui/ la idea
era tener una FPGA la cual funcionaba como analizador lógico e imprimía
en un puerto serie el estado de las entradas, la GUI hecha en PyGTK y
Glade graficaba el estado de las variables en el tiempo. En algo
parecido a tiempo real sino me equivoco.
Saludos,
Manuel
pd: A mi sólo me salío el mail de Seba en una cuadrado azul horrible?
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100729/49ab5ddd/attachment.html>
More information about the pyar
mailing list