ruby - 自动上传 xmodem 文件

标签 ruby bash serial-port xmodem

我有一个通过 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/

相关文章:

c - 使用 Linux 和 C 通过串口发送文件

ruby-on-rails - Ruby On Rails:NameError:未初始化常量 Timezone::Configure

ruby-on-rails - Docsplit Ruby on Rails

java - 将空 shell 变量传递到 Java 命令行会导致 "Error: Could not find or load main class"

bash - sed 不扩展变量

c# - 无法使用 C# Mono (RaspberryPi) 从串行端口读取

mysql - 使用 Net::SSH::Gateway 时是否需要手动关闭 Sequel gem 连接?

ruby - 如何从 shapefile .prj 中读取 WKT?

linux - 如何在 Bash 中清理用户输入

c - 如何从 C 中的串行(SPI)连接读取数据?