[pyar] Pyserial: enviando datos hexadecimales de un byte

Santiago Paleka santiagopaleka en gmail.com
Jue Dic 9 12:42:21 ART 2010


>
> write toma siempre un string, o en python3 un "bytes".
>
> Así que lo que tenés que hacer es:
>
> self.pseriel.write(chr(n))
>

No me funciona con chr, si por ejemplo n=0x11escribo el puerto con
self.pserial.write(chr(n)) no envía nada, en cambio para 0x10 si,
depende el valor que le ponga transmite o no, si podés probalo. te
paso un código de pruebas, cambiá lo que escribe de 0x11 a 0x10 y vas
a ver cuantos bytes escribe cada vez (con 0x11 no escribe, devuelve 0)

#############################################################################

#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import serial
import time
import os
import string

#puerto serie a usar
PUERTO = 1
#timeout para lecturas
PSTOUT = 5

class main():
    def __init__(self):
        self.pserie = serial.Serial(serial.device(PUERTO), 19200,
xonxoff=True,writeTimeout=5)
        print self.pserie.portstr
    def comienzo(self):
        self.pserie.flushInput()
        enviados = self.pserie.write(chr(0x11))
        print enviados
        time.sleep(1)

if __name__ == '__main__':
    principal = main()
    principal.comienzo()
###########################################################################

gracias.



More information about the pyar mailing list