xmodem协议实现。

xmodem的Python项目详细描述


https://travis-ci.org/tehmaze/xmodem.png?branch=masterhttps://coveralls.io/repos/tehmaze/xmodem/badge.png

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
  • 增强:对python 3的支持 PR #8
  • 错误修复:未正确重新协商xmodem.recv()中的CRC失败 PR #11

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java NIO选择器最多只能选择50个SelectionKeys?   java阻止ImageButton创建新活动   为什么Java方法“Arrays.copyOf”处理中的整数数组与处理对象数组时的行为不同   java将安卓 1.6日历字段提取到vcal   将字符串转换为双精度后的java问题   java使用Webflux,是否可以使用AOP获取用于日志记录的ServerHttpRequest   java与jTextArea的基本区别是什么。setText()和jTextArea。append()方法?   java程序执行时间|将值保存到文件或数据结构?   java如何将表示字符的整数转换为字符串?   Java LWJGL新的渲染问题windows   java GUI提供异常   java创建第二个对象使类的函数不再工作   如何在java中将000验证为3位数字?   java bigO算法的时间复杂度,可以在不重复的情况下找到最长的子串   在30像素内点击按钮后,java在两个图像之间转换   java eclipse maven nexus不可解父pom   当存在其他SecurityConstraint时,java TransportGuary机密将被忽略   重新连接后激发的java Red5客户端流断开事件   javafx聊天应用程序中连接客户端的java问题