GNU screen
を介してRS-232デバイスで作業します。
$ screen /dev/ttyUSB0 115200
ある時点で、xmodem
またはKermit
プロトコルを使用してローカルファイルをデバイスに送信する必要があります。 Windowsでは、対応するメニュー項目があるTeraTermを使用します。 GNU画面でこれをどのように達成できますか?
xmodemを介してファイルを渡す最良の方法は、sx
を使用することです。 debianでは、このアプリケーションは「lrzsz」パッケージの一部です。
Debianの場合:
apt-get install screen lrzsz screen/dev/ttyUSB0 115200
次に押す Ctrl-A に続く : そしてタイプ:
exec !! sx yourbinary.bin
これは、xmodemプロトコルを介してttyUSB0にファイルを送信します
Zmodemを使用する場合は、 zmodem
オプションをpass
に設定する必要があります。スクリーンセッションがすでに実行されている場合は、 CTRL+A :zmodem pass
。データを送信するには、sz
パッケージのlrzsz
コマンドを使用します。
画面でデータを受信したい場合は、値をcatch
に設定する必要があります。
Xmodemを使用して.binファイルからxbeeへのシリアル転送を自動化する必要があったため、次のずさんな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
3行目は、ファイル転送の待機を開始するコマンドを反対側(xbee)に送信します。だからあなたはおそらく次のことでうまくいくでしょう:
screen -d -m -S uart_con /dev/ttyUSB0 115200
screen -S uart_con -X exec \!\! sz -X /path_to_file/example.file
OSXの画面でこれを実行しようとしている場合は、いくつかの小さな変更を加えて、user32704によって示された手順に従うことができます。まず、ソースからlrzszをビルドする必要があります。ソースは次の場所にあります。
https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
次に、exec !! sx yourbinary.bin
の代わりに次を使用する必要があります。
exec !! lsz -X yourbinary.bin