Skip to content

Commit 4b7825c

Browse files
author
rivern yuan
committed
Init Commit
1 parent baba5f7 commit 4b7825c

File tree

2 files changed

+563
-0
lines changed

2 files changed

+563
-0
lines changed

readme.md

+84
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
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 | 传输文件的大小 |

0 commit comments

Comments
 (0)