Answers:
通过xmodem传递文件的最佳方法是使用sx
。在debian中,此应用程序是'lrzsz'软件包的一部分。
在Debian中:
apt-get安装屏幕lrzsz 屏幕/ dev / ttyUSB0 115200
然后按Ctrl-A,然后按::
高管!sx yourbinary.bin
这将通过xmodem协议将文件发送到ttyUSB0
sx binary.bin | socat FILE:/dev/ttyUSB0,b115200,raw -
Give your local XMODEM receive command now
如果要使用zmodem,则必须将zmodem
选项设置为pass
,如果您的屏幕会话已在运行,请按CTRL+A :并仅输入zmodem pass
。要发送数据,只需使用包中的sz
命令lrzsz
。
如果要通过屏幕接收数据,则必须将值设置为catch
。
zmodem catch
是我多年来寻找的一个选项!很好,minicom。
我需要使用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
第三行向另一侧(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
sudo port install lrzsz
screen
cu
其他程序包非交互地执行此操作吗?