LabJack U12 for Linux
8/18/2005
support@labjack.com

Most, but not all, U12 functionality is supported by this Linux driver.  Most
notably, stream mode is not supported.  See the 'Function Status' text file
for the status of each function.  Please use the LabJack forum for questions,
comments, or if you have a modification/addition to this open source code which
fixes a problem or adds functionality.

Currently the package contains these components:

	o) Linux Labjack device drivers for the Linux Kernel v2.4 and v2.6.
	o) A port of the Windows API (based upon Eric Sorton modified ljackv112.c 
	and ljackuw.c v1.18).
	o) Test application to read the firmware revision, set analog-outs, and 
	list all the LabJacks connected to your system.

Installation instructions are provided in the INSTALL file.

The Labjack driver is heavily (about 95% code reuse) based upon the device driver 
for the LegoUSB tower provided in leJOS.  The LegoUSB tower, the Labjack U12, and 
several other devices all use Interrupt endpoints (both In and Out) to communicate 
over the USB bus.  The device driver simply maps the two endpoints to the read() 
and write() system calls.  At this time, there is no generic capability within the 
Linux USB subsystem to support generic read/writes using Interrupt endpoints.  
Possibly, in the future, such a capability will be provided by the Linux 
kernel and the device drivers will no longer be necessary.

The Windows API code (v1.12 and v1.18) has been modified to work under Linux.
There are some notes within the code.  
There are a few restrictions:

	o)At this time, there is support for up to 16 LabJacks.  They are accessed 
	the same way as under the Windows API (by their local id).
	o)The state of the discretes are not persistent across applications(in the 
	windows DLL they are).
	o)Feature requests (turbo mode) are now supported, but only work with the AIBurst
	function.  The stream functions have not been ported to Linux.
	o)InitLabjack() must be called at the start of your application (before any of 
	the API functions are called).

The test application, analogs-out, will change the value of the analogs out.  You can 
read these with a voltmeter to verify that everything is working.

Refer to Section 4 of the LabJack U12 User's Guide for a list of the API's functions 
and how to use them.  Note that not all functions have been tested or are working. Refer 
to the 'Function Status' text file for the status of each function.

At this time most of the functions under Linux take 30 ms as opposed to the 20 ms 
that the Windows documentation states.

The programs in this package are distributed under GPL.  A copy of the license can be 
found in the COPYING file.
 
For comments/questions/suggestions use the forums where suitable, otherwise e-mail 
support@labjack.com.  Original package and documentation provided by Eric Sorton, 
erics@cfl.rr.com.
