/xmodem

A pure XMODEM implementation in Ruby for sender and receiver. Compatible with Ruby 1.9.3+

Primary LanguageRubyOtherNOASSERTION

Synopsis

Build Status Coverage Status Dependency Status Code Climate

A pure XMODEM implementation in Ruby for sender and receiver. Compatible with Ruby 1.9.3+

Code Example

To send a file within an IO socket:

myFile = File.new("file_to_send.txt","rb")
XMODEM::send(IOsocket, myFile);
myFile.close

Receive a file:

myFile = File.new("file_to_write.txt","wb+")
XMODEM::receive(IOsocket, myFile)
myFile.close

Please also see test/test_xmodem.rb for basic file transfers executed via local socket.

Motivation

XMODEM is still widely used in embedded systems due to ease of implementation and requirements from the target system. The motivation grew out from ruby-xbee project where non-standard 64 byte payload XMODEM protocol is needed for Over-The-Air application firmware updates in Programmable XBee modules by Digi. This project is forked from modem_protocols as it seemed to be forgotten by time and fixed to work with modern Ruby. The naming change was motivated by scoping this gem to only include XMODEM implementation with possible variants in use.

Installation

Get started by installing the gem: gem install xmodem or cloning this repo.

API Reference

For now, see the code example and read the source.

Tests

Run the tests suite by rake test

Contributors

Please feel free to fork and send pull requests or just file an issue.

License

Mozilla Public License 1.1