[pyar] Pyserial: enviando datos hexadecimales de un byte

Ramiro Morales cramm0 en gmail.com
Jue Dic 9 12:02:20 ART 2010


2010/12/9 Santiago Paleka <santiagopaleka en gmail.com>:
> Hola lista, tengo el siguiente inconveniente:
>
> Quiero enviar a través del puerto serie un dato de un byte hexadecimal
> (por ejemplo 0x10 0x11 0xf3 lo que sea)
> si hago n = 0x11
> y después envío por el puerto serie así:
> self.pserie.write(n)
>
> en el receptor me llegan dos caracteres en dos bytes separados, en el
> ejemplo dado recibo 1 1.
> Como puedo hacer para enviar un dato de un byte y recibirlo exactamente igual.
> Los datos que tengo que enviar los tengo en una tupla =
> (0x10,0x11,0x45,0xf4) etc.
>
> Estoy usando pyserial2.5, python2.6.6 en windows xp sp2.

Usa chr():

>>> c = chr(0x11)
>>> pserie.write(c)

O mejor aun, struct:

>>> import struct
>>> tupla = (0x10, 0x11, 0x45, 0xf4)
>>> s = struct.pack(4 * 'B', *tupla)
>>> s
'\x10\x11\x45\xf4'
>>> pserie.write(s)

-- 
Ramiro Morales



More information about the pyar mailing list