                               LabJackJava v4.0
                               ----------------
OVERVIEW
   LabJackJava is a Java interface to the LabJack (www.labjack.com) data
   acquisition and control device and associated hardware.

LICENSE/COPYRIGHT
   LabJackJava is a copyrighted work of Teravation.  It is released under the
   GNU Public License (GPL), which is specified in the included license.txt 
   file.
   
INSTALLATION INSTRUCTIONS
   WINDOWS
      1) Ensure that you have a working Java JVM.
      2) Unzip the entire file to a directory.
      3) Ensure that ljackj.dll is in your libpath.  The easiest way to do this
         is to copy the ljackj.dll file to your system DLL folder, typically
            (XP)      C:\WINDOWS\SYSTEM32\
            (NT/2000) C:\WINNT\SYSTEM32\

   MAC OS X 
      1) Ensure that you have a working Java JVM.
      2) Unzip the entire file to a folder.
      3) Download and install the LabJack Mac OSX driver package (look in 
         http://www.labjack.com/forums/index.php?showtopic=67).  LabJackJava
         requires the installed kext in order to ensure that the LabJack is not
         hijacked by the standard USB driver.
      4) Compile/link the driver to a dylib, or download the pre-compiled dylib
         (look in http://www.labjack.com/forums/index.php?showtopic=67), into 
         the LabJackJava folder.
      5) Ensure that the LabJackJava directory is in the DYLD_LIBRARY_PATH.  
         The easiest way to do this depends on your shell.  If you're using the
         C shell (csh), indicated by a $ at the end of your prompt, execute:
            setenv DYLD_LIBRARY_PATH . 
         while in the LabJackJava directory.  If you're using the Bourne shell,
         bash, indicated by a % at the end of your prompt, execute:
            export DYLD_LIBRARY_PATH=.
         while in the LabJackJava directory.
         NOTE:  DO NOT OMIT THE PERIOD (.) AT THE END OF THOSE STATEMENTS!
         
   
   LINUX 
      1) Ensure that you have kernel 2.4.22 or later.  We have been unable to 
         get the Linux drivers to work consistently with earlier kernels.  
         This includes application hangs, system hangs, and kernel panics.
      2) If it is loaded, remove the hid driver from the modlist (typically via 
         rmmod).  The hid driver will hijack the LabJack device before the 
         LabJack Linux driver can access it.
         Alternatively, you can blacklist the LabJack from the hid driver.
      3) Ensure that you have a working Java JVM.
      4) Unzip the entire file to a folder.
      5) Download and install the LabJack Linux driver package (look in 
         (look in http://www.labjack.com/forums/index.php?showtopic=28).
      6) Compile/link the driver to a so, or download the pre-compiled so (look
         in http://www.labjack.com/forums/index.php?showtopic=28), into the 
         LabJackJava folder.
      7) Insert the LabJack driver so into the modlist (typically via insmod).
      5) Ensure that the LabJackJava directory is in the LD_LIBRARY_PATH.  
         The easiest way to do this depends on your shell.  If you're using the
         C shell (csh), indicated by a $ at the end of your prompt, execute:
            setenv LD_LIBRARY_PATH . 
         while in the LabJackJava directory.  If you're using the Bourne shell,
         bash, indicated by a % at the end of your prompt, execute:
            export LD_LIBRARY_PATH=.
         while in the LabJackJava directory.
         NOTE:  DO NOT OMIT THE PERIOD (.) AT THE END OF THOSE STATEMENTS!
         
   Once installed, you can run the Monitor via      
      java -jar labjack.jar

KNOWN ISSUES/LIMITATIONS
   1) This release supports Windows, Linux, and Mac OS X.  It uses the LabJack
      C drivers via JNI.  It has been tested with the following driver versions:
      WINDOWS: 1.14, but it will also work with the 1.074 DLL 
               (except for the temperature functions).
      MAC OSX: 1.0
      LINUX:   0.2
   2) The Linux driver only supports a single connected LabJack, and does not 
      support ListAll.  Due to this, on Linux LabJackFactory returns a single 
      LabJack containing -1 for the local id, serial number and product id.
      This also prevents the Stream functions from working under Linux (as they
      require the local id to be present).
   3) There is a bug in the existing Linux driver that incorrectly attempts to
      verify the firmware version by using the serial number.  This may prevent
      the Pulse functions from working under Linux (it may return an Invalid
      Firmware Revision).

HISTORY
   v4.0
      - Created factory method to handle retrieving a LabJack by serial number
      - Synchronized all methods that make API calls
      - Added Pulse functionality
      - Added Reset and Re-enumerate functionality
      - Added methods to get the firmware version and the driver version
      - Added methods to change the local id of a device
      - Added Stream functionality
   v3.0
      - Support for Linux and Mac OS X
      - Renamed LabJackWindows class to the more appropriate LabJackDriver
      - Made small changes to sizing of widgets LabJackMonitorFrame to ensure 
        correct display on all platforms
   v2.0
      - Refactored LabJack constants into the LabJackConstants class
      - Refactored LabJackWindows into LabJackImpl and LabJackWindows 
        (to allow easier construction of new LabJack platform implementations)
      - Removed getAll() and getAll(boolean) from LabJack (they were not needed
        in the interface as they're only every called from their concrete class)
      - Created LabJackScan to hold scan information (for Burst and, eventually,
        Stream)
      - Implemented Burst mode
      - Fixed bug where AI0 was not updated
   v1.0
      - Initial release (Windows)
      
      
Copyright 2003-2004, Teravation.  All rights reserved.
www.teravation.com     