인터페이스의 출력을 리디렉션하시겠습니까?

인터페이스의 출력을 리디렉션하시겠습니까?

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

관련 정보