3

我有一个通过 xmodem 上传文件来完成软件更新的设备。

我可以使用 lrzsz ( http://ohse.de/uwe/software/lrzsz.html ) 包以两种方式做到这一点。

1) 使用屏幕

screen /dev/tty.myserialdevice 115200

接着

^A:exec !! sz -X file.bin

或者

2)使用铜

cu -l /dev/tty.myserialdevice -s 115200

接着

~+lsz -X file.bin

现在我想编写一个脚本(最好是 ruby​​ 或 bash 脚本)来自动上传文件。

有没有办法将文件通过管道传输到 screen 或 cu 或使用标准输入?当我尝试编写脚本时,我只到了打开连接的地步。但即便如此,我仍然无法再次正确关闭此连接。

4

1 回答 1

4

不确定您是否仍然遇到此问题,但我最近不得不为类似的情况拼凑一些东西。

我使用 screen 来自动化这部分,因为它有一些命令行选项可以在后台运行。首先,我创建一个分离的屏幕会话,如下所示:

    screen -d -m /dev/tty.myserialdevice 115200

然后,我可以使用 -p0 选项引用我创建的会话,并给它一个使用 -X 执行的命令,在这种情况下,它是一个屏蔽自身以启动 xmodem 文件传输的命令。

    screen -p0 -X exec \!\! sz -X filetosend

我在网络上的其他地方注意到 .\!\! 有时也使用过,因此请记住这一点,以便在仍有问题时尝试。

于 2014-06-11T16:58:53.977 回答