lcds y python

Pepe Aracil pepe en diselpro.com
Vie Abr 22 14:35:18 CEST 2005


El Viernes, 22 de Abril de 2005 14:23, Alejandro Moreno López escribió:
> Hola,
>
> este es el código:
>
>
> ---------
> import serial
> import curse i
>
> ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)
> print ser.write(curses.ascii.STX)
> #ser.write(curses.ascii.unctrl(10))
>
La función ser.write espera una cadena, y seguramente le estás pasando un 
entero con el ascii de STX
Prueba con:
 print ser.write(str(curses.ascii.STX))

Salud.



>
> ser.close()
> ---------
>
> y este el error:
>
> ---------
> howap:~/lcd/dev/src# python test.py
> Traceback (most recent call last):
>   File "test.py", line 6, in ?
>     print ser.write(curses.ascii.STX)
>   File "/usr/lib/python2.3/site-packages/serial/serialposix.py", line
> 281, in write
>     t = len(data)
> TypeError: len() of unsized object
> howap:~/lcd/dev/src#
> ---------
>
>
> el display que uso es el cw12232 (cwlinux.com). Seguramente tengas
> razón, lo que pasa es que no hago más que dar palos de ciego, a ver si
> logro algo.
>
> un saludo.
>
> On 4/22/05, Alberto Curro <acurro en wanadoo.es> wrote:
> > Alejandro Moreno López wrote:
> > >Hola a todos,
> > >
> > >estoy intentando escribir en un display de varias lineas y lo único
> > >que consigo es que me muestre los strings que le mando en una única
> > >linea (la última). Si le mando exceso de strings vuelve al principio y
> > >continua escribiendo en la misma linea. He probado a mandarle
> > >caracteres de control con curses.ascii, pero esto es lo que obtengo:
> >
> >    No sé con el display que estás usando, pero hay algunas pantallas que
> > debes enviarle secuencias numéricas (estilo el Char(10) para CR y
> > Char(13) para LF del VB) en vez de caracteres de control. Mira la
> > documentación... De todos modos, creo que te estás equivocando al usar
> > curses aquí, porque si no me equivoco estás enviando datos a un display
> > via serie o paralelo, de forma similar a una impresora de tickets, y no
> > a una pantalla VGA/XGA, etc.,  que es para lo que curses está pensado.
> > Un display de este tipo (quizás un display indicador de un TPV?) recibe
> > un churro de texto que suele contener el texto y los modificadores
> > (saltos de línea, etc.).
> >
> >     Quizás me equivoque, tengo experiencia con ciertos displays en
> > ingeniería, pero a lo mejor en tu caso estás hablando de una pantalla y
> > no un display.
> >
> >     Respecto al error, si pusieras las líneas en las que te falla,
> > estaría bien. Por el error en sí, parece que está intentando averiguar
> > la longitud de un dato que está vacío o que no puede convertir a string
> > (quizás deberías usar sizeof(), creo que era ese metodo).
> >
> >     Un saludo
> >
> > >>>>ser.write(curses.ascii.STX)
> > >
> > >Traceback (most recent call last):
> > >  File "<stdin>", line 1, in ?
> > >  File "serial/serialposix.py", line 281, in write
> > >    t = len(data)
> > >TypeError: len() of unsized object
> > >
> > >la librería que uso para comunicarme con el lcd es pyserial
> > >(pyserial.sf.net), por si sirve de algo. Quizá alguien pueda ayudarme
> > >con este error...
> > >
> > >un saludo.
> > >_______________________________________________
> > >Python-es mailing list
> > >Python-es en aditel.org
> > >http://listas.aditel.org/listinfo/python-es
> >
> > _______________________________________________
> > Python-es mailing list
> > Python-es en aditel.org
> > http://listas.aditel.org/listinfo/python-es
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es




Más información sobre la lista de distribución Python-es