에 있는 장치와 통신하려고 합니다 /dev/ttyACM0
. 다음 명령을 보내기 전에 명령을 작성하고 응답(ACK)을 기다려야 합니다.
나는 다음을 발견했다기사이것을 구현하는 방법에 관해서는 내 사용 사례에 맞게 작동하도록 할 수 없습니다. 내 생각에는 수신되는 데이터에 대한 이해가 부족하고 새 줄로 종료되지 않는 것 같습니다.
터미널을 열고 cat을 사용합니다.
cat -v /dev/ttyACM0
그런 다음 다른 터미널에서 인쇄합니다.
printf 'S0100000FF\x0d' > /dev/ttyACM0
터미널에서 tty를 읽을 때 받는 응답은 입니다 ^F
. 다른 명령을 보내면 같은 줄에 다른 명령이 인쇄됩니다. 이제 해당 줄이 표시되므로 ^F^F
새 줄로 끝나지 않는 것 같습니다.
위에 링크된 기사의 읽기 명령을 사용하는 경우(별도의 터미널에서):
(read -n 60 -t 20 RESP < /dev/ttyACM0; echo $RESP)&
[1] 21028
그런 다음 쓰기 터미널의 후속 쓰기는 읽기 터미널을 트리거하여 다른 것을 표시하지 않습니다.
또한 간단히 인쇄한 다음 tty에서 읽으려고 시도하여 완전히 동기식 쓰기를 시도했습니다.
printf 'S0100000FF\x0d' > /dev/ttyACM0
cat -v /dev/ttyACM0
# Blank, nothing in file
내 문제는 세 가지 질문으로 요약됩니다.
- 그것은 실제로 무엇을 의미하는가
^F
? 나는^M
그것이 캐리지 리턴 문자라는 것을 알고 있지만 이러한 유형의 문자가 무엇인지 모릅니다(예: 접두사 문자^
). - 나는 tty가 단지 파일인 줄 알았는데 이전 예(서로 인쇄하고 읽기)에서 왜 파일이 비어 있습니까?
- 동기식 읽기/쓰기 스크립트의 목적에 맞게 링크된 기사를 어떻게 조정합니까?