0
Arduino에서 값 목록 (예 : 80,539,345,677)을 내 RPi에서 실행되는 Python 앱으로 보냅니다. 나는 값을 추출하고 앱의 각 변수 나 객체에 값을 할당하는 데 성공하지 못했습니다.직렬 arduino에서 Python으로받은 정수 문자열을 읽는 방법
def read_values():
#if DEBUG:
print "reading arduino data"
ser = serial.Serial('/dev/ttyUSB0', 9600)
print "receiving arduino data"
ser_line = ser.readline()
print ser_line
ser.close()
ser_list = [int(x) for x in ser_line.split(',')]
ambientLight = ser_list[1]
print ambientLight
return ambientLight
내가 파이썬에서 받고 있어요 것은 :
여기 내 코드의
reading arduino data
receiving arduino data
80,477,82,2
Traceback (most recent call last):
File "serialXivelyTest4c.py", line 77, in <module>
run()
File "serialXivelyTest4c.py", line 63, in run
ambientLight = read_values()
File "serialXivelyTest4c.py", line 27, in read_values
ser_list = [int(x) for x in ser_line.split(',')]
ValueError: invalid literal for int() with base 10: '8254\r80'
당신은 내가 값을 받고 있어요,하지만 그들은 잘립니다되고있는 것을 볼 수 있습니다. 아무도 내가 여기서 잘못 가고있는 것을 말해 줄 수 있습니까? 정말 고마워.
감사 :
다음은 streamUtils.connectPort()입니다. PySerial을 사용하고 있으므로 예제가 제대로 작동하지 않을 것이라고 생각합니다. 또한,이 값을 구문 분석과 함께 더 많은 문제가 될 것으로 보인다. – RoboArch
@RoboArch - readline이 모든 것을 얻고 있습니까? 나는 비슷한 방식으로 내가 읽었던 방식으로 읽는 이유 중 하나이다. 내가 포맷하기 전에 모든 정보를 가지고 있는지 확인해야했습니다. – Crystal
아니, 내가 다 알아들을 지 모르겠다. 거의 그대로 코드를 사용했지만 streamUtils를 사용할 수 없습니다. 시리얼을 사용하면 try : 문에서 앱을 정지시킬 수 있습니다. – RoboArch