저는 GNU를 통해 RS-232 장치를 사용하고 있습니다 screen
.
$ screen /dev/ttyUSB0 115200
xmodem
때로는 또는 프로토콜을 사용하여 장치에 로컬 파일을 보내야 하는 경우가 있습니다 kermit
. Windows에서는 해당 메뉴 항목이 있는 TeraTerm을 사용합니다. GNU 화면에서 어떻게 이를 달성할 수 있나요?
답변1
xmodem을 통해 파일을 전달하는 가장 좋은 방법은 를 사용하는 것입니다 sx
. Debian에서 이 응용 프로그램은 "lrzsz" 패키지의 일부입니다.
데비안에서는:
apt-get 설치 화면 lrzsz 화면/dev/ttyUSB0 115200
그런 다음 키 Ctrl-A를 누르고 :다음을 입력하세요.
구현하다! ! sx yourbinary.bin
그러면 xmodem 프로토콜을 통해 파일이 ttyUSB0으로 전송됩니다.
답변2
zmodem을 사용하려면 다음을 설정해야 합니다.zmodem
옵션 pass
, 화면 세션이 이미 실행 중인 경우 을 누르고 CTRL+A :Enter를 누르세요 zmodem pass
. 데이터를 보내려면 패키지 sz
에 있는 명령을 사용하면 됩니다 lrzsz
.
화면을 통해 데이터를 수신하려면 이 값을 로 설정해야 합니다 catch
.
답변3
.bin 파일을 xbee로 자동 직렬화하려면 xmodem을 사용해야 하므로 다음과 같은 엉성한 bash 코드를 사용했습니다.
echo "Starting connection..."
screen -d -m -S uart_con /dev/ttyO1 115200
sleep 1
screen -S uart_con -X stuff 'F'$(echo -ne '\015')
sleep 1
screen -S uart_con -X exec \!\! sz -X /home/file_directory/example.abs.bin
echo "now transfering... "
sleep 20
pkill screen
세 번째 줄은 상대방(xbee)에게 명령을 보내 파일 전송 수신을 시작합니다. 따라서 당신은 다음을 잘할 수 있습니다.
screen -d -m -S uart_con /dev/ttyUSB0 115200
screen -S uart_con -X exec \!\! sz -X /path_to_file/example.file
답변4
AltairClone.com 인용 UNIX/LINUX에서 "screen"을 터미널 에뮬레이터로 사용https://altairclone.com/downloads/Using%20SCREEN%20as%20terminal%20emulator.pdf:
"
UNIX/LINUX에서 "screen"을 터미널 에뮬레이터로 사용
세션을 시작하려면 "screen"을 입력하고 그 뒤에 직렬 장치 이름과 전송 속도를 입력하세요.
Unix prompt> screen /dev/ttyUSB0 9600
화면 명령에 액세스하려면 ctrl-a를 입력하고 명령 문자를 입력하세요. 명령 목록을 보려면 ctrl-a ?를 입력하세요(ctrl-a 뒤에 공백이 없으면 ctrl이 유지되지 않나요?).
현재 화면을 종료하려면 ctrl-ak를 입력하세요.
모든 화면을 종료하려면(오류로 인해 여러 화면이 시작된 경우) ctrl-a를 입력하세요.
일부 화면 버전에서는 ctrl-a ctrl-\가 필요할 수 있습니다 .
XMODEM을 사용하여 파일을 보내려면 ctrl-a :(콜론은 명령 문자)를 입력한 다음 프롬프트에서 다음을 입력합니다.
exec !! sx [-a] filename
(단일 개행 문자를 CR/LF 쌍으로 변환하려면 –a를 사용하십시오.)
XMODEM을 사용하여 파일을 받으려면 ctrl-a :(콜론은 명령 문자)를 입력한 다음 프롬프트에서 다음을 입력합니다.
exec !! rx [-a] filename
(참고: 첫 번째 !는 sx/rx에게 화면의 입력 연결을 통해 stdin을 가져오라고 지시합니다. 두 번째 !는 sx/rx에게 화면의 출력 연결을 통해 stdout을 라우팅하도록 지시합니다.)
XMODEM이 전송하기 전에 전송 속도를 변경하려면 ctrl-a :(콜론은 명령 문자임)를 입력한 다음 프롬프트에서 다음을 입력합니다.
exec !! stty new_baud_rate
또는 ctrl-ak를 입력하여 Screen을 종료한 다음 새 전송 속도로 Screen을 다시 시작합니다(예:).
Unix prompt> screen /dev/ttyUSB0 new_baud_rate
단순히 ASCII 또는 바이너리 파일을 보내려면(예: XMODEM을 사용하지 않고) ctrl-a를 입력하세요. (콜론은 명령 문자입니다.) 프롬프트에서 다음을 입력하세요.
exec !! cat filename
"