Documentation available at http://packages.python.org/xmodem/
Python Package Index (PyPI) page is available at https://pypi.python.org/pypi/xmodem
Create a function to get and put character data (to a serial line for example):
>>> from xmodem import XMODEM
>>> def getc(size, timeout=1):
... return data or None
...
>>> def putc(data, timeout=1):
... return size or None
...
>>> modem = XMODEM(getc, putc)
Now, to upload a file, use the send
method:
>>> stream = open('/etc/fstab', 'rb')
>>> modem.send(stream)
To download a file, use the recv
method:
>>> stream = open('output', 'wb')
>>> modem.recv(stream)
For more information, take a look at the documentation.
- 0.4.3:
- bugfix:
putc()
callback was called in series, 3 times for each part of xmodem block header, data, and checksum during block transfer. Now all three data blocks are sent by singleputc()
call. This resolves issues when integrating with microcontrollers or equipment sensitive to timing issues at stream boundaries, PR #19.
- bugfix:
- 0.4.2:
- bugfix: documentation files missing from the release tarball Issue #16.
- 0.4.1
- bugfix: re-transmit in send() on NAK or timeout, previously re-transmissions (wrongly) occurred only on garbage bytes. PR #12.
- 0.4.0