Coder Social home page Coder Social logo

xmodem's Introduction

Embedded XModem

Build Status Coverage Status

Fork of original library by caseykelso.

Forked by Nikolay Nerovny, BMSTU, 2018.

Latest version of library:

https://github.com/bsail/xmodem

Development

For developers looking to extend, bug fix, build, and test libXMODEM with dependencies and test infrastructure included in the source tree. This version differs from original version by caseykelso: it uses Ceedling build system with Unity tests. This library has several changes in transmitter state machine in order to properly work with rz utility: it did not wait for 'C', it starts transmission from the beginning.

Setup Environment - Ubuntu 16.04/18.04

sudo apt install build-essential git ruby
sudo gem install ceedling

Get Code

mkdir xmodem
git clone https://github.com/bsail/xmodem xmodem
ceedling upgrade xmodem
cd xmodem

Tests

Unit Tests

Build & Run Unit Tests

ceedling test:all

You may use and create additional tasks for Ceedling build system. Please refer to the documentation in the vendor/ceedling/docs.

Transmit State Machine

All transitions are covered via unit tests.

Receive State Machine

All transitions are NOT YET covered via unit tests.

Project Structure

Source Directories

  • /src - libxmodem source directory

    • xmodem.h - common header (transmitter and receiver)
    • xmodem.c - common implementation (transmitter and receiver)
    • xmodem_receiver.h - receiver side header
    • xmodem_receiver.c - receiver side implementation
    • xmodem_transmitter.h - transmitter side header
    • xmodem_transmitter.c - transmitter side implementation
  • /test

    • test_xmodem.c - Unity test file for xmodem.c module (use ceedling test:xmodem to run tests only in this source file)
    • test_xmodem_receiver.c - Unity test file for xmodem_receiver.c module (use ceedling test:xmodem_receiver to run tests only in this source file)
    • test_xmodem_transmitter.c - Unity test file for xmodem_transmitter.c module (use ceedling test:xmodem_transmitter to run tests only in this source file)
  • /

    • README.md - this file
    • project.yml - Ceedling project file including parameters of test compiler and linker
    • .gitignore - definitions of files and directories to be ignored by git

Third Party Source Directories

  • /vendor - Ceedling source with documentation and plugins

Build Directories

  • /build - Ceedling library build directory

Additional Directories

  • /documentation - Source of state machine schematics
  • /reference - Reference documentation about xmodem protocol

xmodem's People

Contributors

caseykelso avatar locutus3009 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.