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ć zmodemopcję 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 szpolecenia z lrzszpakietu.
Jeśli chcesz odbierać dane przez ekran, musisz ustawić wartość na catch.
zmodem catchto 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.binpowinieneś użyć:
exec !! lsz -X yourbinary.bin
sudo port install lrzsz
screencupakietem lub dowolnym innym pakietem?