我需要在我的程序中包含基本的文件发送和文件接收例程,它需要通过ZMODEM协议.问题是我无法理解规范.
作为参考,这是规范.
规范没有定义各种常量,所以这里是来自Google的头文件.
在我看来,在该文档中有许多重要的事情未定义:
我环顾四周寻找参考代码,但我能找到的是从90年代早期开始的无法读取的无证件C文件.我也从MSDN中找到了这组文件,但它与我运行的测试有点模糊和矛盾:http://msdn.microsoft.com/en-us/library/ms817878.aspx(你可能需要通过谷歌的缓存查看)
为了说明我的困难,这是一个简单的例子.我在服务器上创建了一个包含"Hello world!"的纯文本文件,它名为helloworld.txt.
我使用以下命令从服务器启动传输:
sx --zmodem helloworld.txt
Run Code Online (Sandbox Code Playgroud)
这会提示服务器发送以下ZRQINIT帧:
2A 2A 18 42 30 30 30 30 30 30 30 30 30 30 30 30 **.B000000000000
30 30 0D 8A 11 00.Š.
Run Code Online (Sandbox Code Playgroud)
这有三个问题:
在此之后,客户端需要发送ZRINIT帧.我从MSDN文章中得到了这个:
2A 2A 18 42 30 31 30 30 30 30 30 30 32 33 62 65 **.B0100000023be
35 30 0D …Run Code Online (Sandbox Code Playgroud) 我们正在尝试使用 minicom(在主机 pc 中)和 picocom(在基于 arm 的评估板中)组合传输文件。在评估板方面,我们有/dev/ttygserial,在主机 PC 方面,我们有/dev/ttyUSB0。
主机端minicom设置如下,
/dev/ttyUSB0将 minicom 设置为接收模式的步骤。
ctrl+a R,选择zmodem。在评估板方面,我们使用 picocom 发送文件如下。
picocom -b 115200 -s "sz -vv" /dev/ttygserialCtrl+A and Ctrl+S。**file所有这些步骤都有效,我们能够将不同类型的文件从评估板传输到 PC,但现在我们想将此过程放入 C 代码中。为此,我有以下疑问,
minicom使用单个命令设置为文件接收模式?(意思是非交互)?