Tuesday, May 12, 2015

Google Summer of Code 2015 : FOSSASIA

I've got selected to Google Summer of Code 2015. This time I'm developing a library to support knitting machines. It's great to work with FOSSASIA team under awesome mentors Mario Behling Eddie von Altenberga , Christian Obersteiner and Aruna Herath

This is the Initial suggestions for the project.

Library to support knitting machines

Basic abstraction of the library

I would like to create library as separate layers

  • Serial communication : open, configure, read and write to serial port
  • Machine definitions : machine initialization, load to machine, save from machine
  • Image handling functions : memory allocation, read image file, setter and getter for image pixels
  • File handling functions : read / write access
  • Common utility functions

Add dependencies for the library

There are several dependency libraries which ayab has such as pillow, pyserial, wsgiref, fysom and yapsy with relevant versions. These dependencies should be added to the library. 

Functions for the library

For access hardware directly
       * Identify existing libraries to interface with hardware
       * Use libraries to deal with serial ports
       * Ability to get all the functions via library (for an example functions in ayabControl.py and add more functions to support in more machines)
       * Ability to send QT signals

Emulate file formats

       * Create functions to emulate file format

Add Arduino support


Installation should be well documented in step by step. Additionally I suggest to add GUI based installation with usability improvements with standard installation procedures. 

* Installation on Linux (32bit, 64bit)
       * Prerequisites
       * Setup
* Installation on Windows (32bit, 64bit)
       * Prerequisites
       * Setup

Tests on the library

Use a python test framework like unittest to test the python library. It supports test automation and aggregation of the tests into collection.

Documentation of the library 

Documenting Class definitions, methods definitions and links to the given source codes. 


Source Code

No comments:

Post a Comment