Ver Mensaje Individual
  #7 (permalink)  
Antiguo 06/10/2012, 13:52
dlandsk
 
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Leer Puerto serial RS232

Cita:
Iniciado por razpeitia Ver Mensaje
Probablemente no le estas dando suficiente tiempo para que haga la lectura, ademas que el buffer de lectura que le das es muy grande, para que se llene en una sola lectura. Prueba con lo siguiente.

Código Python:
Ver original
  1. import serial
  2.  
  3. port = "/dev/ttyS0"
  4. ser = serial.Serial(port, 19200, timeout=1, bytesize=8, stopbits=1) #Time out 1 segundo
  5. ser.parity=serial.PARITY_NONE
  6. try:
  7.     data = ser.read(1)
  8. except serial.SerialTimeoutException:
  9.     data = ""
  10. if len(data) > 0:
  11.     print 'Datos Recibidos:', data
  12. else:
  13.     print 'Datos no recibidos'
  14. ser.close()

Ademas te recomiendo usar popen en php para que puedas leer la salida del script de python.
[URL="http://stackoverflow.com/a/167200/371342"]Fuente: Stackoverflow[/URL]
Muchas gracias nuevamente por tu tiempo, te cuento que justo antes de que me dieras este codigo habia probado lo mismo, pero de la siguiente manera:

Código Python:
Ver original
  1. import serial
  2. import time
  3.  
  4. port = "/dev/ttyS0"
  5. ser = serial.Serial(port, 19200, timeout=0, bytesize=8, stopbits=1)
  6. ser.parity=serial.PARITY_NONE
  7.  
  8. time.sleep(1)
  9. data = ser.readline(9999)
  10. if len(data) > 0:
  11.     print 'Datos Recibidos:', data
  12. else:
  13.     print 'Datos no recibidos'
  14. ser.close()

Dandole un time.sleep de 1 segundo, el problema es que ademas del numero me agrega unos caracteres raros, te muestro:



Y con el codigo que tu me indicas, me lo muestra de esta manera:



Con el time.sleep me he acercado mas a lo que busco, pero sin embargo no me da el valor solo, sino con simbolos extraños.

Alguna idea de lo que pueda ser?

Saludos y muchas gracias.