Youba - Youpi back-end
======================

Author: AlphaK - http://www.alphak.net/
Version: 1.2 build 20110810
License : GNU GPL v3, see license.txt


Hardware prerequisites
======================

* Youpi Robot
* Youpi parallel cable (see youpi-official-documentation.pdf about how to build one)


Software prerequisites
======================

Install the following products:

* [Python 2.6.x][1]
* [portio][2] (Linux only, also needs package python-dev)
* [Inpout32.dll][3] (Windows only)

[1]: http://www.python.org/getit/
[2]: http://portio.inrim.it/
[3]: http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html

Ensure your parallel port is active in your BIOS, and your OS has correctly loaded drivers for it.

Ensure python is in your path.

Ensure the user has privileges to open and write to the parallel port (which i.e. under Linux using portio means you must be root).

Modify settings.py to suit your needs.


How to start and stop
=====================

* GUI: Double click on youba.py
* Console: python youba.py
* Press Ctrl+C to stop


Usage
=====

The back-end opens a TCP socket and waits for instructions provided on this socket.
See instruction manual and other documents in the 'doc' folder for instruction detailed explanations.

I.E: to make base motor turn 5 degrees, one would send the following basic instruction:
0,R,D,5,1

So, suppose you have the backend installed on host 192.168.0.8 and listening to port 12080, you may use netcat, or any other program to send the previous instruction. Using a standard shell and netcat, it would look like the following:
echo '0,R,D,5,1' | nc 192.168.0.8 12080


Troubleshooting
===============

See log file content.
Please adjust log level to 'debug' if asking for support.


Changelog
=========

* 1.2 - 20110810
	* Rotation bytes are now computed once for each instructionSet (unless Merge command is sent)
	* No rotation byte is sent during initialization phase
	* Added a specialAction to disable parallel port output
	* Improved regression test directory structure
	
* 1.1 - 20110808
	* Split logging of bytes sent to the robot in a separate file
	* Added regression test possibility
	
* 1.0 - 20110802
	* First release


Future improvements
===================

NB: those improvements may or may not be included in future releases.
* Implementation of several Save/Restore position slots (instead of one counter count/counter reset).
* Implementation of a new command to input absolute halfsteps coordinates instead of deltas
* Web socket support

**Note:** This document is written using Markdown syntax