Fosstrak HAL FEIG implementation was designed for and tested on following reader types of the FEIG OBID i-scan series:
The implementations are tested on the reader models mentioned above but may work for other readers with the same interface and protocol: e.g. ID ISC.M02-B, ID ISC.PRH101-A, ID ISC.PR101-A.
The following XML code is an example on how to configure the Fosstrak Reader to use this readers HAL implementation. The name can be chosen arbitrary but must be unique if multiple readers are configured. The class implementing the HardwareAbstraction interface for this reader type is org.fosstrak.hal.impl.feig.FeigTCPIPController. The properties element contains the path to the configuration file. For information about this see the configuration file example below.
<?xml version="1.0" encoding="UTF-8"?> <properties> <!-- ... other configuration elements ... --> <!-- All readers (HardwareAbstractions) used --> <readers> <reader> <name>FeigTCPIPController</name> <class>org.fosstrak.hal.impl.feig.FeigTCPIPController</class> <properties>/props/FeigTCPIPController.xml</properties> <readpoint>Antenna1</readpoint> </reader> </readers> <!-- End --> <!-- ... other configuration elements ... --> </properties>
<?xml version="1.0" encoding="UTF-8"?> <!-- Properties file for Feig i-scan UHF readers using a TCP/IP connection --> <!-- Reader: Feig Long Range Reader OBID i-scan ID ISC.LRU1000 (TCP/IP) --> <properties> <!-- Address of the reader --> <!-- Value: address (string) --> <address>129.132.75.246</address> <!-- The port the reader is listening --> <!-- Value: port number between 0 and 65525 --> <port>10001</port> <!-- The communication timeout in milliseconds --> <!-- Value: timeout (integer value) --> <timeout>5000</timeout> <!-- Configuration file with the transponder model configuration --> <epcTransponderModelsConfig>/props/EPCTransponderModels_default.xml</epcTransponderModelsConfig> <!-- The IdTypes configuration file --> <idTypesConfig>/props/IDTypes_default.xml</idTypesConfig> <!-- List of readpoints that represent specific antennas The name of the readpoint can be chosen arbitrary but it must be unique. The connector of the readpoint is the number of the channel the antenna is connected to. The connector number is an integer in the range 1 to 4. --> <readpoint> <name>Antenna1</name> <connector>1</connector> </readpoint> </properties>
The following XML code is an example on how to configure the Fosstrak Reader to use this readers HAL implementation. The name can be chosen arbitrary but must be unique if multiple readers are configured. The class implementing the HardwareAbstraction interface for this reader type is org.fosstrak.hal.impl.feig.FeigCOMController. The properties element contains the path to the configuration file. For information about this see the configuration file example below.
<?xml version="1.0" encoding="UTF-8"?> <properties> <!-- ... other configuration elements ... --> <!-- All readers (HardwareAbstractions) used --> <readers> <reader> <name>FeigCOMController</name> <class>org.fosstrak.hal.impl.feig.FeigCOMController</class> <properties>/props/FeigCOMController.xml</properties> <readpoint>Antenna1</readpoint> <readpoint>Antenna2</readpoint> </reader> </readers> <!-- End --> <!-- ... other configuration elements ... --> </properties>
<?xml version="1.0" encoding="UTF-8"?> <!-- Properties file for Feig i-scan HF readers using a serial connection (RS232) --> <!-- Reader: Feig Midrange Reader ID ISC.MR/PR/PRH10x (serial version) --> <properties> <!-- Number of the COM port the reader is attached to --> <!-- Value: COM port number (1-16) --> <comPort>1</comPort> <!-- The communication speed (baud rate) of the COM port --> <!-- Value: 115200, 57600, 38400, 19200, 9600, 4800, 2400 or 1200 --> <baudRate>38400</baudRate> <!-- The serial frame format --> <!-- Value format: dps, where d = databits (7, 8), p = parity (N[one], E[ven], O[dd]) and s = stopbit (0, 1, 2) --> <!-- Example: <frame>8E1</frame> --> <frame>8E1</frame> <!-- The COM communication timeout in milliseconds --> <!-- Note: Multiplexers and high number of tags increase the readtime. Use a higher timeout value in this case (~1500ms). --> <!-- Value: timeout (integer value) --> <timeout>1000</timeout> <!-- The Tag / Transponder model that is used in the application --> <!-- Note: It is possible to ommit the transponder model. In this case, the tag type is tried to be determined automatically. This requires additional read cycles for specific operations which may not be appropriate. This is the only possibility if more than one transponder type is used within a single application though. --> <!-- Value: transponder type name. Use getSupportedTransponderTypes() to get a list of supported transponders of the attached reader. (This is reader firmware specific and cannot be determined in advance) --> <!-- Example: <transponderModel>ICODESLI</transponderModel> --> <transponderModel>ICODE1</transponderModel> <!-- The multiplexer configuration file --> <!-- Note: Multiplexer configuration is set up in a separate properties file. For single antenna configuration the multiplexerConfig element can be commented out and a single readpoint name given in this file (see below). --> <!-- Value: multiplexer configuration file name --> <multiplexerConfig>/props/FeigMultiplex.xml</multiplexerConfig> <!-- If no multiplexer configuration file defined, you can declare one single readpoint name here. This parameter is omitted if a multiplexerConfig element exists above. --> <!-- The name of the readpoint can be chosen arbitrary but it must be unique. --> <!--readpoint> <name>Antenna</name> </readpoint--> </properties>
Optional multiplex configuration:
<?xml version="1.0" encoding="UTF-8"?> <!-- Properties file for Feig antenna multiplexers --> <!-- Multiplexer: Feig i-scan ID ISC.ANT.MUX --> <properties> <!-- List of readpoints that represent specific antennas The name of the readpoint can be chosen arbitrary but it must be unique. The map of the readpoint is a vector of channels that represent the path from the reader to the readpoint (antenna). The map vector has dimension 3 where each component defines the output channel (0-8) of a multiplexer at levels 1-3. Multiplexer levels that are unused for a specific readpoint are set to 0. --> <readpoint> <name>Antenna1</name> <map>1,0,0</map> </readpoint> <readpoint> <name>Antenna2</name> <map>2,0,0</map> </readpoint> </properties>
To communicate with the reader over a COM-port, the HAL implementation for ID ISC.MR101-A uses the Java Communications API. It has been desinged and tested with Java Communications 2.0 API on Windows XP (win32).
The current version of the Java Communications API is 3.0 and can be found on the Java Communications product page. There are versions for Solaris and Linux only, support for Windows has been dropped. Java Communication 2.0 API for Windows can be found on the internet.