					Readme.txt
					----------
________________________________________________________________________________

Cherry JPOS Package for LINUX (i386) V5.2.0.1

11/06/2013
________________________________________________________________________________

Java support   - This package supports Sun JDK 1.4 and later. It was also tested
                 with IBMJava2-142.
                 
Kernel support - Drivers compile with kernel.org kernels 2.6.27.56 thru 3.12.2.

Additional docs- See CherryJavaPOS-Linux/usb/readme.usb for detailed instructions
                 on setting up JPOS for Linux with a USB POS keyboard.
               - See CherryJavaPOS-Linux/ps2/readme.ps2 for detailed instructions
                 on setting up JPOS for Linux with a PS2 POS keyboard.



This readme.txt is organised into the following sections

1. Components in this package
2. Configuring the parameters in the XML file
3. Configuring the JAVA environment to use the Device Service
4. Installation of Cherry PS/2 Keyboard Driver for Linux
5. Configuration of Cherry PS/2 MSR reader (Header and Terminator)
6. Installation of Cherry USB Keyboard Driver for Linux
7. Configuration of Cherry USB MSR reader


=================================================================================

1. This package has the following components

   a) Device Service consisting of 

	   1. ChySOAPKeyb.jar - Cherry Device Service 
	      (MSR, POS Keyboard, Smart Card Reader/Writer)
	   2. libchyjpos.so	(Java Native Interface for Linux)
	   3. jpos.xml
	   4. chypos.ini

   b) Demo application consisting of
   	   1. POStest.jar 	- Demo application
   	   2. jcl.jar 		- Standard package to run demo application
	   3. xerces.jar 	- Standard package to run demo application
           4. jpcsc.jar		- PC/SC Native Interface
           5. libjpcsc.so	- PC/SC Native Interface
	   6. jposXYY.jar 	- Device Controls up to V1.10
	   7. postest.sh 	- Shell script to run demo
	   8. README		- Readme file for JPOS installation
	   

   c) USB Driver Components (only USB package) consisting of
	   1. Sources for Cherry USB Keyboard Driver "chyposusbkbd"
	   2. Sources for Cherry USB MSR Driver "chyposusbmsr"
	   3. Documentation for "How to install USB Keyboard Driver on LINUX"

   and readme.txt - this file



=================================================================================

2. Configuring the JAVA environment to use the Cherry Device Service

- Add the Cherry Device Service "ChySOAPKeyb.jar" to your CLASSPATH
- Add the path where the libchyjpos.so resides to JPOS.XML (see property "LibPath")

- To use the Cherry MSR services, you have to copy the chypos.ini file
  into /etc/cherry/pos/

  This step is necessary if you would use another application than the 
  offered test application. (POSTest)


=================================================================================

3.  Configuring the parameters in the JPOS.XML file

   a) POS Keyboard: 

   
   ------------------------------------------------------------------------------
   LibPath: This property indicates the path where the libchyjpos.so resides

   property Name = LibPath
   property Type = String
   property value = path where the libchyjpos.so resides

   Example:
   <prop name="LibPath" type="String" value="/usr/src/jpos/libchyjpos.so"/>

   ------------------------------------------------------------------------------



   ------------------------------------------------------------------------------
   Property entries for keys
   ------------------------------------------------------------------------------
   Example:

   <prop name="ChyPosKey001" type="String" value="00,79,00,02,00,00,00,107c"/>
   <prop name="StdKeyF12" type="String" value="00,00,00,58,00,00,00,100d"/>

   "StdKeyF12"
    |      | 
    |      |-> Description of key => F12 key
    | 
    |-> "StdKey" Identifier for POS-Key konfiguration


   value="00,00,00,58,00,00,00,100d"
                                 |        
                                 |   -> Value for Property "POSKeyData" which will be sent to the application


   The first 7 values (in this example "00,00,00,58,00,00,00") configure the scancode, but normally
   there's no need to change it.
   With the 8th value you can assign a value to the POS-Key, i.e. for binding "4109" to
   the POS-Key, you would set value="00,00,00,58,00,00,00,100d" (100d is the hexadecimal value of 4109).

   All possible POS-Keys are preconfigured in the file jpos.xml, however most of them are commented
   out, i.e. <!--<prop name="StdKeyF12" type="String" value="00,00,00,58,00,00,00,100d"/>-->
   To activate it, you have to change it to <prop name="StdKeyF12" type="String" value="00,00,00,58,00,00,00,100d"/>



   b) MSR: 

   ------------------------------------------------------------------------------
   LibPath: This property indicates the path where the libchyjpos.so resides.

   property Name = LibPath
   property Type = String
   property value = path where the libchyjpos.so resides

   Example:
   <prop name="LibPath" type="String" value="/usr/src/jpos/libchyjpos.so"/>

   ------------------------------------------------------------------------------
   BuzzerGoodRead: This property indicates the beep time in milliseconds for good card swipes
                   Range: 0 to 255
   		   This entry applies only to USB MSR reader.	                   			
   		   
   property Name = BuzzerGoodRead
   property Type = String
   property value = time in milliseconds

   Example:
   <prop name="BuzzerGoodRead" type="String" value="100"/>


   c) Keylock: 

   ------------------------------------------------------------------------------
   LibPath: This property indicates the path where the libchyjpos.so resides

   property Name = LibPath
   property Type = String
   property value = path where the libchyjpos.so resides

   Example:
   <prop name="LibPath" type="String" value="/usr/src/jpos/libchyjpos.so"/>


   ------------------------------------------------------------------------------
   PositionCount: Number of keylock positions

   property Name = PositionCount
   property Type = String
   property value = Number of keylock positions

   <prop name="PositionCount" type="String" value="3"/>

   PositionCount: Number of keylock positions

   property Name = PositionCount
   property Type = String
   property value = Number of keylock positions

   <prop name="PositionCount" type="String" value="3"/>

   ------------------------------------------------------------------------------
   KeylockPosition1: Value for Property "KeyPosition" which will be sent to the application

   property Name = KeylockPosition1
   property Type = String
   property value = Value for "KeyPosition"

   These entries are commented out. You don't need these entries unless you want to 
   map a position to another position. The example below turns the position number round.

   <!--<prop name="KeylockPosition1" type="String" value="5"/>-->
   <!--<prop name="KeylockPosition2" type="String" value="4"/>-->
   <!--<prop name="KeylockPosition3" type="String" value="3"/>-->
   <!--<prop name="KeylockPosition4" type="String" value="2"/>-->
   <!--<prop name="KeylockPosition5" type="String" value="1"/>-->



=================================================================================

4. Installation of Cherry PS/2 Keyboard Driver for Linux
  
  
You can find additional information on how to install the Cherry PS/2 Keyboard driver in ./ps2/readme.ps2



=================================================================================

5. Configuration of Cherry PS/2 MSR reader (Header and Terminator)


The MSR must be correct configured with headers and terminators. You can configure header and
terminator with the help of the Cherry Tools for Windows or manually.

Please consult your keyboards's manual for further instructions on how to configure the headers
and terminators for the particular tracks.

Header 1: 	RCTRL_dn, RSHIFT_dn, LCTRL_dn, LSHIFT_dn, 1_dn, 1_up, LSHIFT_up, LCTRL_up, RSHIFT_up, RCTRL_up
Header 2: 	RCTRL_dn, RSHIFT_dn, LCTRL_dn, LSHIFT_dn, 2_dn, 2_up, LSHIFT_up, LCTRL_up, RSHIFT_up, RCTRL_up
Header 3: 	RCTRL_dn, RSHIFT_dn, LCTRL_dn, LSHIFT_dn, 3_dn, 3_up, LSHIFT_up, LCTRL_up, RSHIFT_up, RCTRL_up
Terminator 1:	RCTRL_dn, RSHIFT_dn, LCTRL_dn, LSHIFT_dn, 8_dn, 8_up, LSHIFT_up, LCTRL_up, RSHIFT_up, RCTRL_up
Terminator 2:	RCTRL_dn, RSHIFT_dn, LCTRL_dn, LSHIFT_dn, 9_dn, 9_up, LSHIFT_up, LCTRL_up, RSHIFT_up, RCTRL_up
Terminator 3:	RCTRL_dn, RSHIFT_dn, LCTRL_dn, LSHIFT_dn, 0_dn, 0_up, LSHIFT_up, LCTRL_up, RSHIFT_up, RCTRL_up

Please pay attention to press key after key, not simultaneously!

Explanation of the abbreviations used for definition of header and terminator:

RCTRL_dn => Right Control-Key down 
RCTRL_up => Right Control-Key up 
LCTRL_dn => Left Control-Key down 
LCTRL_up => Left Control-Key up 
RSHIFT_dn => Right Shift-Key down 
RSHIFT_up => Right Shift-Key up 
LSHIFT_dn => Left Shift-Key down 
LSHIFT_up => Left Shift-Key up 
LALT_dn => Left Alt-Key down
LALT_up => Left Alt-Key up
RALT_dn => Right Alt-Key down
RALT_up => Right Alt-Key up
1_dn => 1-key down (Alphanumeric key) 
1_up => 1-key up (Alphanumeric key) 
2_dn => 2-key down (Alphanumeric key) 
2_up => 2-key up (Alphanumeric key) 
3_dn => 3-key down (Alphanumeric key) 
3_up => 3-key up (Alphanumeric key) 
8_dn => 8-key down (Alphanumeric key) 
8_up => 8-key up (Alphanumeric key) 
9_dn => 9-key down (Alphanumeric key) 
9_up => 9-key up (Alphanumeric key) 
0_dn => 0-key down (Alphanumeric key) 
0_up => 0-key up (Alphanumeric key)




=================================================================================

6. Installation of Cherry USB Keyboard Driver for Linux

You can find additional information on how to install the Cherry USB Keyboard driver in ./usb/readme.usb



=================================================================================

7. Configuration of Cherry USB MSR reader 

=> Multiboard USB:
No configuration is necessary.


=> SPOS:

The MSR must be preconfigured to use it with this package. You can configure the MSR either with help of 
the Activator (Windows) or with help of the software package Cherry Tools (Windows).

Activator (Windows): 
--------------------
1. Install "JPOS for Windows" 
2. Connect the keyboard 
3. Open a command console 
4. Change to the installation directory of this package 
5. Start the Activator with the following command: activator -wp (wp= write POS-settings into keyboard) 

Cherry Tools (Windows): 
-----------------------
You have to activate the "Enable OPOS/JavaPOS settings" within the MSR configuration. 


ATTENTION:
----------
The correct output of characters is language dependend.
The configuration in this archive is set to the US keyboard layout. The symbolic link scancode.h points to scancodes_us.h.
IF you are using a keyboard layout different from "EU US-English (International)" you have to create 
a new symbolic link scancode.h which points to the suitable file:
	
    scancodes_us.h	=> EU US-English (International) and RG US-English (Cyrillic)
    scancodes_de.h	=> DE Germany 
    scancodes_cd.h	=> CD Canadian (French)
    scancodes_gb.h	=> GB Great Britain 


