AT 명령을 모뎀 인터페이스( /dev/ttyUSB3
)에 에코하고 있으며 명령이 성공적으로 실행됩니다.
예를 들어 다음 명령이 작동하고 출력은 다음과 같습니다 OK
.
echo -e "ATZ\r" > /dev/ttyUSB3
cat /dev/ttyUSB3
다른 활성 터미널을 통해 이것을 볼 수 있습니다 .
모뎀에서 돌아오는 데이터를 처리할 수 있도록 어떻게 사용하지 않고 cat
(예: 명령을 보내고 출력을 가져오는 데 사용) 출력을 변수나 파일로 리디렉션할 수 있습니까?OK
답변1
일반 파일과 마찬가지로 직렬 장치를 사용해야 합니다. 유일한 차이점은 속도와 제어 라인 설정을 위해 일부 ioctl()이 필요하다는 것입니다.
os.system("echo
그러니 ...를 사용하지 마세요 . 그러나 f = open('/dev/ttyUSB3', 'rw')
그리고 그리고 f.write()
그리고 f.read()
.
이론적으로는 이를 사용 ioctl()
하여 속도 등을 설정할 수 있지만 그 단계에서는 모든 매개변수를 직접 마샬링하는 것보다 pySerial을 사용하는 것이 더 쉽습니다. ser = serial.Serial(port='/dev/ttyUSB3', baudrate=9600, timeout=1, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS)
그리고 ser.write()
그리고 ser.read()
.
직렬 포트의 고유 이름을 설정하려면 /dev/ttyUSB3을 하드코딩하는 대신 udev를 사용해야 합니다. 수행 방법은 다음과 같습니다.단일 USB/RS-232 어댑터수행 방법은 다음과 같습니다.멀티포트 USB/RS-232 어댑터.
답변2
read modem_output < /dev/ttyUSB3