2013-07-19 7 views
1

직렬 포트에서받은 ASCII 문자를 문자열과 비교하려고합니다. 입력을 성공적으로 변환 한 것처럼 보이지만 그렇게 할 수는 없습니다.ASCII 문자를 Python에서 문자열로 변환하는 방법

while True: 
    inputsp=serialArduion.readline() 
    for letter in inputsp: 
     inputs=inputs+ chr(letter) 
    print inputs 
    if inputs.lower() =="down": 
     print "APPLES" 
    elif inputs.lower() =="up": 
     print "Bannana" 

그냥 변경 'STR을 : 여기

import serial 
import time 
port="/dev/ttyUSB0" 
serialArduino= serial.Serial(port,9600) 
serialArduino.flushInput() 
inputs="" 
while True: 
    inputsp=serialArduion.readline() 
    for letter in inputsp: 
     inputs=inputs+ str(letter) 
    print inputs 
    if inputs=="DOWN": 
     print "APPLES" 
    elif inputs=="UP" 
     print "Bannana" 

확인 너무도 입력이 때때로 UP 동일 또는 DOWN 여전히 사과 인쇄하지 않거나 Bannana하지만

답변

2

반환 값 readline()에는 개행이 있습니다. 줄 바꿈을 제거해야합니다.

import serial 
import time 
port="/dev/ttyUSB0" 
serialArduino= serial.Serial(port,9600) 
serialArduino.flushInput() 

while True: 
    inputs = serialArduion.readline().rstrip() 
    if inputs == "DOWN": 
     print "APPLES" 
    elif inputs == "UP" 
     print "Bannana" 
+0

작동합니다. 너는 네가 얼마나 도왔는지 모르겠다. – jped

0

이 시도 내 코드입니다 'to'chr '은 ASCII를 문자로 변환합니다. 이 수정 이외에는 입력 스트림에서 오는 다른 문자를 제거하십시오.

관련 문제