Python으로 변환하려는 직렬 포트와 상호 작용하기 위해 Java로 작성된 오래된 코드가 있습니다. 데몬 프로세스에서 Java 코드를 실행하기 전에 직렬 포트 개발 장치를 설정하는 bash 파일에서 다음 줄을 찾을 수 있습니다. stty의 매뉴얼 페이지는 이해하기 어렵기 때문에 이러한 옵션이 무엇을 의미하는지 설명할 수 있는 사람이 있습니까?
stty -F /dev/ttyUSB0 1:0:9ad:0:3:1c:7f:15:4:5:1:0:11:13:1a:0:12:f:17:16:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0:0 #9600 7E1
답변1
이는 문서화된 옵션이 아닙니다. 이는 생성된 장치 및 라인 규칙 상태에 대한 기계 판독 가능한 직렬 형식입니다 stty -g
. stty
이런 식으로 (동일한) 프로그램에 다시 전달하지 않으면 이식 가능하지도 않고 의미도 없습니다.
너할 수 있다시스템 C 언어 termios.h
헤더의 특정 인스턴스를 사용하여 16진수를 디코딩합니다.
다행히도 쉘 스크립트 줄에서 최소한 다음을 나타내는 주석을 찾을 수 있습니다.부분작가의 의도:
9600 7E1화이는 물론 회선 속도와 7비트 문자 프레임, 짝수 패리티 및 1 정지 비트입니다.
답변2
그렇지 않다옵션, 하지만데이터, 아마도
stty -g
이것매뉴얼 페이지~로 서술 된
-g, --save
Print all current settings in a form that can be
used as an argument to another stty command to
restore the current settings.
그리고POSIX 설명추가 통찰력은 제공되지 않습니다.
모든 현재 설정을 표준 출력에 기록지정되지 않은 형식동일한 시스템에서 stty 유틸리티에 대한 다른 호출에 대한 인수로 사용될 수 있습니다. 사용된 형식에는 셸에서 단어 확장을 피하기 위해 인용해야 하는 문자가 포함되어서는 안 됩니다. wordexp를 참조하세요.
이 기능은 다양한 스크립트(예: xterm의시험스크립트). 지정되지 않은 형식이므로 시스템에 따라 다릅니다(표준 출력에 기록되는 "사물"이라고만 믿을 수 있습니다).
이 설정을 사용하면다시 덮다호환되는 시스템(즉, 동일한 구현을 사용하는 시스템 stty
)에서 실행하면 stty -a
보다 일반적인 형식으로 설정이 표시됩니다.