데비안 박스에서 pySerial과 python 2.7을 사용하고 있습니다. USRobotics USB USR5637 모뎀을 제어하는 파이썬 코드를 작성하고 있습니다. 문제/오류에 대한 모뎀의 응답을 확인하려고하지만 코드에서 비정상적인 결과가 나타납니다. 테스트를위한 기본 코드를 작성했습니다. 전화선이 끊어져서 "NO CARRIER"라는 결과 코드를 볼 수 있습니다. 누구든지 pySerial 및 모뎀에 액세스 할 수 있다면 제공 할 수있는 모든 도움에 감사드립니다.pySerial modem 결과 코드
import serial
ser = serial.Serial('/dev/ttyACM0', 9600, timeout=5)
ser.write("ATE0\r") # Attention - Echo disable
response = ser.read(4)
print "ATE0 %s" % response
ser.write("ATX0\r") # Attention - Echo disable
response2 = ser.read(8)
print "ATX0 %s" % response2
ser.write("ATDT411\r") # Attention - Dail - Tone - 411
response3 = ser.read(32)
print "ATDT %s" % response3
ser.write("ATH\r") # Attention - Hang up line
response4 = ser.read(16)
print "ATH %s" % response4
ser.write("ATZ\r") # Reset
response5 = ser.read(16)
print "ATZ %s" % response5
print "================================================="
print "%s %s %s %s %s" % (response, response2, response3, response4, response5)
ser.close()
내가 얻을 응답은 다음과 같습니다 :
ATE0
OK
ATX0
OK
ATDT
ATH
NO CARRIER
ATZ
OK
=================================================
OK
OK
NO CARRIER
OK
내 질문
은 다음과 같습니다- 가 ser.read의 숫자 무엇 내가 테스트를 위해 다음 코드를 생성 (4) 또는 ser.read (8). 시간 초과 되었습니까?
- 나는 코드의 ATH 섹션 이후까지 "NO CARRIER"를 얻는 것 같지 않습니다. 나는 ATDT 섹션 바로 뒤에 그것을 기대할 것이다.
- 왜 결과가 4 개인 경우에만 끝나나요?
- 인쇄 된 결과의 변칙적 인 간격은 왜 까닭입니까?
모든 도움을 주시면 감사하겠습니다. 감사.
질문 1과 4를 해결합니다. 감사합니다. 모뎀이 자세한 텍스트 대신 단일 값 코드를 반환하도록 지시 할 수 있으며 위의 코드는 멋지게 수행됩니다. – user72055
답변이 업데이트되었습니다. 당신이 그것의 무엇이든을 찾아내는 경우에 유용한 upvote는 평가 될 것입니다. – ErikR
이제 이해합니다. 감사. – user72055