Odpowiedzi:
najlepszym sposobem na przekazanie pliku przez xmodem jest użycie sx
. W debianie ta aplikacja jest częścią pakietu „lrzsz”.
W debian:
apt-get install screen lrzsz screen / dev / ttyUSB0 115200
Następnie naciśnij, Ctrl-Aa następnie :i wpisz:
exec !! sx yourbinary.bin
Spowoduje to wysłanie pliku do ttyUSB0 przez protokół xmodem
sx binary.bin | socat FILE:/dev/ttyUSB0,b115200,raw -
Give your local XMODEM receive command now
Jeśli chcesz użyć zmodem, musisz ustawić zmodem
opcję pass
, jeśli sesja ekranowa jest już uruchomiona, naciśnij CTRL+A :i po prostu wprowadź zmodem pass
. Aby wysłać dane, po prostu użyj sz
polecenia z lrzsz
pakietu.
Jeśli chcesz odbierać dane przez ekran, musisz ustawić wartość na catch
.
zmodem catch
to opcja, której szukałem od wieków! Dobra gra, minicom.
Potrzebowałem zautomatyzować szeregowe przesyłanie pliku .bin do xbee za pomocą xmodem, więc użyłem tego niechlujnego kodu 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
Trzeci wiersz wysyła polecenie na drugą stronę (xbee), aby rozpocząć nasłuchiwanie transferu plików. Więc prawdopodobnie jesteś dobry z:
screen -d -m -S uart_con /dev/ttyUSB0 115200
screen -S uart_con -X exec \!\! sz -X /path_to_file/example.file
Jeśli próbujesz to zrobić za pomocą ekranu w OSX, możesz wykonać procedurę opisaną przez user32704 z niewielkimi modyfikacjami. Najpierw musisz zbudować Lrzsza ze źródła, które znajdziesz tutaj:
https://ohse.de/uwe/releases/lrzsz-0.12.20.tar.gz
Zamiast tego exec !! sx yourbinary.bin
powinieneś użyć:
exec !! lsz -X yourbinary.bin
sudo port install lrzsz
screen
cu
pakietem lub dowolnym innym pakietem?