File tree 2 files changed +563
-0
lines changed
2 files changed +563
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Ymodem文件传输方法说明
2
+
3
+ 该使用说明主要描述如何使用Ymodem协议通过串口向模组传输文件,需要模组的接收端处于接收模式才可以传输,该协议传输规范符合标准Ymodem 1K的传输规范,整体代码由python实现,接收端为QuecPython模块,模块端代码由QuecPython代码编写
4
+
5
+ 适用系统
6
+
7
+ - ** Windows**
8
+ - ** Linux**
9
+
10
+ 协议传输参考Ymodem协议实现,代码实现参考 Pypi的xmodem模块,在xmodem协议的基础上实现了ymodem协议传输,新增特性支持单次连接传输多个文件,并且基于QuecPython做了众多适配,不再适用于传统的xmodem模式
11
+
12
+ ## 发送端使用方法
13
+
14
+ ### python代码使用方法
15
+
16
+ python代码依赖库(python版本>3.0)
17
+
18
+ - os
19
+ - time
20
+ - serial
21
+
22
+ #### 函数调用
23
+
24
+ 调用方法,在代码中调用如下函数
25
+
26
+ ``` python
27
+ # port为要传输的串口,filepath为文件本地路径,remote_filepath为传输到模组中的路径(绝对路径)
28
+ send_file(port, [filepath, remote_filepath]... )
29
+ # 当需要传多个文件时,参数累加文件列表即可
30
+ ```
31
+
32
+ 如果想调整Ymodem传输模式,参照以下方法修改(推荐使用默认参数,QuecPython环境下只可使用rzsz、rbsb、pram)
33
+
34
+ > KMD/IMP 详见官方文档
35
+
36
+ YMODEM传输模式,默认使用program为rzsz,文件头长度为128字节,文件体长度为1024字节,即 mode为 ymodem1k
37
+
38
+ | Program | Length | Date | Mode | S/N | 1k-Blk | YMODEM-g|
39
+ | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
40
+ | Unix rz/sz | yes | yes | yes | no | yes | sb only |
41
+ | VMS rb/sb | yes | no | no | no | yes | no |
42
+ | Pro-YAM | yes | yes | no | yes | yes | yes |
43
+ | CP/M YAM | no | no | no | no | yes | no |
44
+ | KMD/IMP | ? | no | no | no | yes | no |
45
+
46
+ 若要修改默认program,需要在send_file函数代码中增加初始化参数
47
+
48
+ ``` python
49
+ sender = Modem(sender_read, sender_write," rzsz" ) # 可选参数: rzsz|rbsb|pyam|cyam|kimp
50
+ ```
51
+
52
+ #### 回调函数
53
+
54
+ 回调参数:
55
+
56
+ | 参数(按顺序) | 描述 |
57
+ | --------------- | ------------------ |
58
+ | total packets | 待发送的文件总大小 |
59
+ | success packets | 发送成功的包总大小 |
60
+
61
+ ### 命令行工具使用方法
62
+
63
+ 待补充
64
+
65
+ ## 接收端使用方法
66
+
67
+ ### 进入传输模式
68
+
69
+ 模组端使用只需进入传输模式即可
70
+
71
+ ```
72
+ enter_ymodem(callback=None)
73
+ ```
74
+
75
+ 传输模式会等待10s,10s后没有数据传入就退出传输模式
76
+
77
+ ### 回调函数
78
+
79
+ 回调参数:
80
+
81
+ | 参数(按顺序) | 描述 |
82
+ | -------------- | ---------------- |
83
+ | filename | 传输完成的文件名 |
84
+ | filesize | 传输文件的大小 |
You can’t perform that action at this time.
0 commit comments