xmodem协议实现。
xmodem的Python项目详细描述
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)
有关更多信息,请查看documentation。
变化
- 0.4.5:
- 错误修复:删除recv()中导致 在0.4.0版commit id9b03fc20中引入的断言错误,PR #29。
- 0.4.4:
- 错误修复:send()中的大文件传输更可能失败 小值^ {TT5}$:这个值应该是每一次的最大故障 已记录的块传输,但未正确执行为 传输总持续时间内允许的失败次数,PR #21。
- 错误修复:send(retry=n)和recv(retry=n)应该重试n次 如文档所述,正在重试n - 1。
- 0.4.3:
- 错误修复:putc()回调是按系列调用的,对于 块传输期间的xmodem块头、数据和校验和。现在全部 三个数据块通过单个putc()调用发送。这解决了问题 当与微控制器或对定时敏感的设备集成时 流边界的问题,PR #19。
- 0.4.2:
- 错误修复:发布tarball中缺少文档文件 Issue #16。
- 0.4.1
- 错误修复:在NAK上的send()中重新传输,或之前的超时 重新传输(错误地)仅在垃圾字节上发生。 PR #12。
- 0.4.0