XMODEM协议实现。
项目描述
XMODEM协议实现
文档可在http://packages.python.org/xmodem/找到
Python包索引(PyPI)页面可在https://pypi.python.org/pypi/xmodem找到
用法
创建一个函数来获取和发送字符数据(例如,到一个串行线)
>>> import serial >>> from xmodem import XMODEM >>> ser = serial.Serial('/dev/ttyUSB0', timeout=0) # or whatever port you need >>> def getc(size, timeout=1): ... return ser.read(size) or None ... >>> def putc(data, timeout=1): ... return ser.write(data) # note that this ignores the timeout ... >>> modem = XMODEM(getc, putc)
现在,要上传文件,请使用send方法
>>> stream = open('/etc/fstab', 'rb') >>> modem.send(stream)
要下载文件,请使用recv方法
>>> stream = open('output', 'wb') >>> modem.recv(stream)
有关更多信息,请参阅文档。
变更
- 0.4.7:
- 0.4.6:
修复bug:在启动序列中接收到EOT时终止发送。问题 #34。
增强:在源分布中包含LICENSE文件。
- 0.4.5:
修复bug:在recv()中删除了无效的assert False代码,这导致了在版本0.4.0的commit-id 9b03fc20中引入的AssertionError,PR #29。
- 0.4.4:
修复bug:在send()中的大文件传输,当重试次数较小时更可能失败:此值应该是每个块传输的最大失败次数,但错误地实现为整个传输过程中允许的失败次数,PR #21。
修复bug:send(retry=n)和recv(retry=n)应按文档所述重试n次,实际上重试了n - 1次。
- 0.4.3:
修复bug:putc()回调依次调用,在块传输期间,对于xmodem块头、数据和校验和,每个部分调用3次。现在所有三个数据块都通过单个putc()调用发送。这解决了在集成到微控制器或对流边界时间敏感的设备时的问题,PR #19。
- 0.4.2:
修复bug:发布压缩包中缺少文档文件。问题 #16。
- 0.4.1
修复bug:在send()中接收到NAK或超时时重新传输,之前只在垃圾字节上发生错误的重传(错误地)。PR #12。
- 0.4.0
项目详情
下载文件
下载适合您平台文件。如果您不确定要选择哪一个,请了解有关安装包的更多信息。
源分布
xmodem-0.4.7.tar.gz (34.1 kB 查看哈希值)
构建分布
xmodem-0.4.7-py3-none-any.whl (35.7 kB 查看哈希值)
xmodem-0.4.7-py2.py3-none-any.whl (35.6 kB 查看哈希值)
关闭
xmodem-0.4.7.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2f1068aa8676f0d1d112498b5786c4f8ea4f89d8f25d07d3a0f293cd21db1c35 |
|
MD5 | 0a21c269cb4d3995d13a2615c24fed0a |
|
BLAKE2b-256 | 3d17fd6668a09afdc46c22990172b6f65e07dfb5bcf38960d063a7a887ca926d |