직렬 연결을 통해 캐리지 리턴 (Enter를 누르지 않고 표시됨)을 포함하는 메시지를 보내려고합니다. 직렬 연결이 열린 상태에서 Enter 키를 누르면 작동하지만 메시지 본문 내에서 캐리지 리턴 문자를 성공적으로 나타내는 방법을 찾지 못했습니다.
예를 들어 다음은 USB (screen /dev/tty.usbmodemFA1331 9600)를 통해 Arduino에 대한 직렬 연결을 열거 나 Arduino 직렬 모니터를 사용하여 작동합니다.
SIOP v1.0 출력
ContentType : 텍스트 / UTF-8
값 : "Hello World!"
/종료
(한 번에 한 줄씩 입력하고 각 줄 끝에서 키보드의 Enter 키를 누릅니다.)
그러나 다음 시도는 그렇지 않습니다.
감사합니다!
직렬 연결이 열린 상태에서 Enter 키를 누르면 작동하지만 메시지 본문 내에서 캐리지 리턴 문자를 성공적으로 나타내는 방법을 찾지 못했습니다.
"\ r"과 같은 특수 텍스트 표기법은 입력 또는 출력 프로그램 (예 : printf () 문자열 에 대한 컴파일러에 의해)에 의해 단일 제어 문자 (예 : 바이트 값)로 변환되어야 합니다.
이것은 자동 또는 자동으로 발생하지 않습니다.
확실히 화면 과 같은 터미널 에뮬레이션 프로그램 은 입력 텍스트에서 이러한 변환을 인식하거나 수행하지 않습니다.
당신이하려는 것 같은 것은 잘못된 것입니다. minicom
과 같은 일반적인 터미널 에뮬레이션 프로그램 (아마도 화면 이지만 사용하지 않았기 때문에 긍정적이지 않음)는 입력 된 문자를 그대로 전송합니다. 터미널 프로그램은 로컬 라인 편집이 가능한 라인 (또는 블록) 모드를 가질 수 있으며, 텍스트의 (버퍼링 된) 라인 (또는 블록)은 또는 일부 키를 누른 후에 만 전송 됩니다. 그러나 그것은 아마도 당신이 사용하고있는 작동 모드가 아닐 것입니다.Enter
SEND
일반적인 터미널 에뮬레이션 프로그램은 라인 / 블록 모드가 아닌 문자 모드에서 작동합니다. (이는 termios 또는 표준 모드와 원시 모드와는 다릅니다.)
따라서 "메시지 본문 내에서 캐리지 리턴 문자를 나타냅니다" (키보드로 입력 할 때)는 단순히 수행되는 로컬 커서 의 가시적 이동 . 문자의 전송이 (현재 작동 모드에서) 지연되지 않기 때문에 목표는 다른 것을 달성하지 못합니다.
오실로스코프 또는 다른 터미널을 연결하여 수행하려는 작업의 무익함을 확인할 수 있습니다. "메시지"가 "줄"또는 메시지 블록이 아니라 입력 된대로 한 번에 출력 문자 / 바이트인지 확인할 수 있어야합니다.
여전히 메시지를 하나의 텍스트 블록으로 보내야한다고 주장하는 경우 minicom 은 일반 텍스트 파일을 보낼 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다