我有一个通过 xmodem 上传文件来完成软件更新的设备。
我能够使用 lrzsz ( http://ohse.de/uwe/software/lrzsz.html) 包以两种方式做到这一点。
1) 使用屏幕
screen /dev/tty.myserialdevice 115200
然后
^A:exec !! sz -X file.bin
或
2) 使用 cu
cu -l /dev/tty.myserialdevice -s 115200
然后
~+lsz -X file.bin
现在我想写一个脚本(最好是 ruby 或 bash 脚本)来自动上传文件。
有没有办法将文件通过管道传输到屏幕或 cu 或使用标准输入? 当我尝试编写脚本时,我只是到了打开连接的地步。 但即便如此,我还是无法再次正确关闭此连接。
最佳答案
不确定您是否仍然遇到这个问题,但我最近不得不拼凑一些类似情况的东西。
我使用 screen 来自动化这部分,因为它有一些命令行选项可以在后台运行。首先,我创建一个分离的屏幕 session ,如下所示:
screen -d -m /dev/tty.myserialdevice 115200
然后,我可以使用 -p0 选项引用我创建的 session ,并给它一个使用 -X 执行的命令,在本例中是一个屏蔽自身以启动 xmodem 文件传输的命令。
screen -p0 -X exec \!\! sz -X filetosend
我在网络上的其他地方注意到 .\!\!有时也会使用,所以请记住这一点,如果仍然有问题,请尝试。
关于ruby - 自动上传 xmodem 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17614861/