Lendo dados de série com Python

0

Estou tentando ler uma linha de dados seriais de um sensor de sonar MaxBotix com Python. O sensor cospe R0300 Os inteiros após o "R" são a distância lida em milímetros. Eu estou tentando escrever um script que remove o "R" e converte a seqüência de caracteres em um inteiro. Eu removi com sucesso o "R", mas quando eu tento converter a string em um int eu recebo este erro: ValueError: invalid literal for int() with base 10: '1187\r1187\r1188\r1188\r1188\r1188\r1188\r1188\r1188\r1188\r1188\r1189\r1189\r1189\r1189\r1189\r118'

Sou novo no Python, aqui está o código:

import serial
from time import sleep

mmtoinch = 25.4

#print ser.isOpen() #to check port is open
ser = serial.Serial('/dev/ttyAMA0', 9600)
try:
   while True:
      rawdata = ser.readline(100)
      #Removing the "R" from the Range Finder output
      intconversion = rawdata.replace("R","")
      #print(rawdata)
      intconversion.replace(" ","")
      print(intconversion)
      intrange = int(intconversion)
      sleep(1)

except KeyboardInterrupt:
     print ' end'

A indentação pode estar errada. Qualquer ajuda é muito apreciada! Obrigado antecipadamente:)

    
por Yllier123 03.12.2015 / 18:29

0 respostas