INTERMEC RFID Resource Kit Version 3.42













Ver #



  1. Fixed the serial transport closing issue in the .NET libraries.
  2. Added support for multiple levels of reader event priority in the .NET libraries. The RFID button event has the highest priority followed by the tag event. All other reader events have lower priority than these two events. A higher priority event will precede the lower priority events in the event queue. Events with equal priority will be queued in First-In-First-Out manner.
  3. Adjusted the C# BRIReadSample_FF2.0 and BRIReadSample_FF3.5 to fit the CV41 (WES) screen.
  4. Adjusted the C# PortableReaderSample_CF2.0 and PortableReaderSample_CF3.5 to demonstrate both the center trigger events and the RFID button events.


  1. Added .NET Full Framework 3.5 assemblies to support CV61.
  2. Added a C# sample called SerialReaderSampleCE_CF3.5 which can be run on CV41 (CE 6.0) connected to IV7.
  3. The .NET BasicBRIReader constructors and the BRIReader constructors may throw a BasicReaderException if the log file creation fails.
  4. The range of the .NET ReaderAttributes.UnselectTries property now includes 0. However, not all reader firmware supports the value of 0. In that case, an ArgumentOutOfRangeException is thrown.
  5. The Java methods and the BRIReader constructors may throw a BasicReaderException if the log file creation fails.


  1. (Java, .NET) Added support for the bistatic antennas as specified in BRI version 3.14.

·         (Java, .NET) Added BRIReader.AntennaPair class for defining a pair of antennas for bistatic antenna operation.

·         (Java) Deprecated the ReaderAttributes.getANTS method and replaced it with ReaderAttributes.getAntennas.

·         (.NET) Deprecated the ReaderAttributes.Antennas property and replaced it with ReaderAttributes.AntennaSequence.

  1. (Java, .NET) Added support for the new tag types, ATA and ATAHALF, as specified in BRI version 3.15.
  2. (Java, .NET) Added a new GPITrigger class and new methods in BRIReader class to define and monitor BRI general purpose input trigger.
  3. (.NET) Removed original C# samples and replaced with new Visual Studio 2005 and 2008 samples. One Full Framework sample and one Compact Framework sample were provided.


  1. Updated the component that Intermec uses to notify future updates to this product. No functionality change in this release. See the warning regarding Intermec Update in the Known Issues section.


  1. Web APIs updates:

·         Support for CK61-WM5, CK3-WM6, and CN3-WM6 was added to the RFID Web APIs.

·         Issue where incorrect error code being returned for a successful Write was fixed.

  1. Java and .NET library updates for BRI version 3.13:

·         Support new reader events for antenna fault and NXP alarm.

·         Support new battery event states, charged and operational.

·         Modified the FIELDSTRENGTH reader attribute translation formula from dB to percentage and vice versa to match the implementation on reader module (IM4/IM5).

·         Added methods/properties in the ReaderAttributes class to get the maximum and minimum RF power level supported for each antenna.

·         Allows TAGID and EPCID keywords in the field schema for the read.

  1. .NET specific updates:

·         Several bug fixes. Please see 3.30 fixes for details.

·         New BRIReader.ReaderVersionInfo.ModuleHardwareVersionString property.

·         New StateString property added to Battery_EventArgs and Thermal_EventArgs.

·         Added .NET Compact Framework 3.5 assemblies.

  1. Java specific updates:

·         Added a new JAR file called BRIReaderOSGi.jar to support the OSGi framework.


  1. Added software mechanism to prevent device from suspending when the IPx center trigger is used.


  1. Several enhancements were added to Java and .Net libraries to support BRI version X (3.10).

a.       Support new BRI error codes: MEMOVRN, PVERR, and PWERR.

b.      Support new BRI events: RESET, BATTERY, THERMAL, and TRIGGERACTION.

c.       Add a reader reconnected event.

d.      Add overloaded read methods to support tag type selection for a singleshot or continuous read.

e.       Support dB format of the FIELDSTRENGTH attribute.

f.       Add Java methods and .NET properties to get/set NOTAGRPT and DENSEREADERMODE reader attributes.

g.      Add support for a new continuous read option: EVENTALL.

h.      Add support for a new RFID button: the middle scan button on CN3.

i.        Java Specific Updates

·          Deprecate existing basic event listener interfaces.

·          Deprecate the BasicEPCReader class.

·          Add a new basic event listener interface BasicReaderEventListener.

·          Add new event classes and listener interfaces for GPIO trigger and radio events.

·          Fixed the ReaderAttributes.getFieldStrength method to parse the response data in dB format properly.

j.        .NET Specific Updates

·          Drop support for .NET 1.x.

·          Deprecate the existing .NET basic event delegates.

·          Support getting/setting reader attributes via properties in the ReaderAttributes class.

  1. Support for CN3-WM5 was added to the Basic RFID Web API.


  1. Updated to include Intermec Update capability.


  1. Separate IDL into individual Resource Kit installs.
  2. Added Specialized RFID Web API which supports a subset of the functions exposed by the Basic RFID Web API, and provides functions to get specific types of tag data from read tags.
  3. (Java, .NET) Added trace severity level support to BRI logging.
  4. (Java, .NET) Fixed KC 070305-000035– losing network connection to the reader would cause IDL to throw uncaught exceptions.
  5. .NET Specific Updates

·         Enhanced file logging by rolling over the data to a backup log file once the file size reaches the maximum limit.

·         Reduced the default maximum and minimum log file size limits to 128K and 16K respectively.

·         Fixed the closing logic in the .NET RFID library to allow the internal threads to exit properly when running on IF61 Mono.

·         Prevents the internal threads from exiting due to unexpected errors.

·         Allowed the application to catch certain exceptions occur in the internal read thread such as the read buffer overflow exception.


  1. Java Library Updates

·         Fixed the read buffer overflow issue by allowing the application to catch the exception instead of shutting down the internal read thread that causes the application to misbehave.

  1. .NET Library Updates:

·         Removed direct IrDA connection support.

·         Added CommandFormat and ResponseFormat properties to the BasicBRIReader class to replace the deprecated GetCommandFormat and GetResponseFormat methods.

·         Fixes include a logging fix for direct serial transport and minor User’s Guide updates.


  1. (Java, .NET) Added events to monitor the states of the center trigger, left scan and right scan buttons. Supported on 700/IP4 only.
  2. (Java, .NET) Added events to monitor the connection state between DCE and the reader. Supported on 700/IP4 only.
  3. .NET Specific Updates

·         Changed to use the Data Collection Engine (DCE) to connect to RFID readers that have an IrDA interface (such as IP4) or a serial interface (such as IV7).

·         Added logging support for tracing the data received from and sent to the reader.

·         The basic and advanced classes now permit a ‘null’ owner (Windows.Forms.Control) argument.

·         Removed BRITrigger CAB File dependency for 700 series applications

  1. Added Basic RFID Web API. Use this ActiveX control to open and close reader connections, and to send any BRI command to the reader. This API also supports the following reader events: DCEEvent, TagEvent, RadioEvent, and TriggerEvent.


  1. .NET Library Updates

·         Fixed an unhandled exception caused by the BasicBRIReader.Close and BRIReader.Dispose methods when used in Compact Framework (CF) applications built with Visual Studio 2005.


  1. Added support for the new features introduced in BRI specification version R: continuous read modes, tag event.
  2. Allowed the application to adjust the event queue size. Default queue increased from 20 to 50 (50 is the minimum allowed).
  3. Added support for GPIO trigger management. When enabled, the library will send TRIGGERWAIT to the reader after each GPIO trigger event.
  4. Added continuous read support with two different report options, event reporting or polling.
  5. New methods were added to the ReaderAttributes class to get and set “FIELDSTRENGTH” and “INITIALQ” reader attributes. A new method is added to get the field separator character(s) used in the reader.
  6. The Java and .NET BRIReader.Read methods have been adjusted so that it only returns true if all tag fields are successfully read.
  7. The Java BRIReader.update or .NET BRIReader.Update method only update the tag fields that have been modified so it will return true if all dirty tag fields are successfully written.
  8. Added Java Tag.isError and .NET Tag.IsError methods to check if any tag field in this Tag object contains an error status.
  9. Added Java BRIReader.isTagError and .NET BRIReader.IsTagError methods which will iterate through the current tag collection and returns true if any of the tag fields contains an error status.
  10. New Java and .NET classes were added to support tag event.
  11. Java Specific Updates:

·         Defaults to tcp:// if the reader URI is not specified.

·         Several get/set methods were added to the BasicReaderEvent class to support DCE event.

·         Various JavaDoc improvements including adding @since tags to new APIs.

·         The BasicRFIDSample was updated to display the DCE event type and data, and the tag event data. An instance of BasicTagEventListener was added to listen for tag events.

·         The TriggerReadSample was updated to use the new continuous read methods in BRIReader.

·         Fixed the ReaderAttributes.getTagTypes method to return a proper bitmask value for multiple tag types.

·         Fixed the ReaderAttributes.getTagTypes method to treat UCODE119 the same as ICODE119.

  1. .NET Specific Updates

·         Added support for .NET compact framework.

·         Added direct IrDA support for the IP4 reader. Center-trigger support requires installation of a separate CAB file.

·         Added new .NET delegates to replace the earlier EventListener interface class.

·         Changed the logic of how BRIReader.Read and BRIReader.Update methods return the status value.

·         Added a new sample to demonstrate communicating with the IP4 reader via IrDA connection.

·         Added support for IP4 re-Connect when the 700 computer encounters a suspend/resume cycle.

·         Updated C# sample application for Full Framework platforms, BRIReaderSample, to demonstrate continuous read mode and subscribing to the tag events. A tag-types option has been added to the GUI that allows switching between the following tag types on-the-fly: ISO, EPC Gen2, UCODE119.


  1. Java Library Updates

·         Due to the change of DCE error message format, the execute methods of the BasicBRIReader class will check for DCE TIMEOUT and BUSY messages in both (old and new) formats.

·         The default EPC port number has been changed to 4684. The default port used by the BasicEPCReader class was updated accordingly.

·         In the ReaderAttributes class, added String constants for the new tag types and added new methods for getting/setting multiple tag types. Note: Currently the IM5 firmware does not support multiple tag types environment. Although it will accept multiple tag type values, it only sets the tag type to the first specified value.

·         In the BRIReader class, adjusted the update method to use either TAGID or EPCID depending on the current tag type. Extra logic was added to check for the new BRI error codes such as ADERR and PCERR in the read/update results. It also validates the filter string and the field schema string used in the read methods to ensure they do not contain invalid keywords.

·         In the TagField class, added new status code constants to represent ADERR and PCERR.

·         In the BRIParserException class, added new error code constants for field schema validation errors.

·         A new Java example is provided to demonstrate the classes in BRIReader.jar. Its related files are located in “Developer Library\RFID Resource Kit\Examples\JAVA\BRIReaderSample”.

  1. Added RFID support for .NET full framework.



  1. Added Advanced RFID Java support. A new Java library called BRIReader.jar is provided in the “Developer Library\JavaLib” folder. Key features are:

·         Extends the functionality of BasicBRIReader in BasicRFID.jar.

·         Supports reader configuration through an instance of ReaderAttributes. Get and set methods are provided to access common reader attributes.

·         Supports tag read with filter and field schema, and parses read results into manageable data objects (such as Tag and TagField).

·         Allows to write the updated data in the data objects back to the physical tags.


  1. Added Basic RFID Java support for communicating with the Intermec IM4 and IM5 RFID reader modules. The Java library is called BasicRFID.jar and it is located in the “Developer Library\JavaLib” folder. Key features are:

·         Opens a TCP or serial connection to a RFID reader.

·         Supports BRI reader protocol.

·         Sends commands to the reader and receives responses. Note: It does not interpret the reader responses except for asynchronous event messages.

·         Delivers reader events through a listener interface.


Note: Although the BasicEPCReader class is provided in this release, it requires the fix in IDL 2.2 and the EPC support in the RFID reader module in order for it to function properly.




Version 3.42

·         .NET – Fixed the serial transport closing issue in the .NET libraries. This issue is often manifested on non-Intermec computers connecting to a serial RFID reader via a USB-to-Serial adapter. The BRIReader.Dispose method would not return until the default reader response timeout expires. If the default response timeout is set to a large value, it appears like the application hangs. This issue is fixed. Now the BRIReader.Dispose method only takes a few seconds to release resources regardless of the default response timeout value.

Version 3.41

·         .NET – The BasicBRIReader constructors and the BRIReader constructors now throw a BasicReaderException if the log file creation fails so the application can catch this failure.

·         Java – The methods and the BRIReader constructors now throw a BasicReaderException if the log file creation fails so the application can catch this failure.

Version 3.40

·         .NET – Fixed a bug where the BRIReader constructor throws an exception and the reader connection remains open. If the reader connection is a direct serial connection, the application will not be able to connect to the reader again due to the COM port not being released. This issue has been fixed.

Version 3.30

·         JAVA - If CKERR occurs during a read, it was reported as the tag data instead of error. Now it will throw a BRIParserException with the error code of BRIParserException.CHECKSUM_ERROR.

·         JAVA - Allows the TAGID and EPCID keywords in the field schema for the read.


·         .NET - Several methods containing the sbyte[] parameters were removed in the 3.21 release. These methods are restored and deprecated for backward compatibility.

·         .NET - Several classes such as EVT_DCE_EventArgs, EVTADV_DCE_EventArgs , EVT_Overflow_EventArgs, EVTADV_Overflow_EventArgs, missed some public members that exist prior to release 3.21. These members have been restored in this release.

·         .NET - The BRIParser.IsOK method always returned false in the 3.21 release. As the result of this bug, the BRIReader.StartReadingTags method also always returned false. This has been fixed in this release.

·         .NET - The ReaderAttributes.GetAttribute(String) method returned a string containing the entire reader response for the query in the 3.21 release. The original behavior prior to the 3.21 release returns only the attribute value. The original behavior is restored in this release.

·         .NET - Fixed the BRIReader.ReaderVersionInfo.ModuleRegion method to return proper value.

·         .NET - The BRIReader.ReaderVersionInfo.ModuleHardwareVersion property does not return proper value and is deprecated in this release. The module hardware version is a string and cannot be converted to an integer; therefore, a new property called ModuleHardwareVersionString is added.

·         .NET - Fixed the BRIReader.Read method and BRIReader.StartReadingTags method with the RFIDTagTypes parameter to format the correct BRI command depending on the BRI version.

·         .NET - The EVT_GPIO_EventArgs and EVTADV_GPIO_EventArgs did not report the trigger name and GPIO value correctly if the trigger name contains spaces. This has been fixed in this release.

·         .NET - Fixed the Thermal_EventArgs.Temperature property to return the correct value.

·         .NET - If CKERR occurs during a read, it was reported as the tag data instead of error. Now it will throw a BRIParserException with the error code of BRIParserException.CHECKSUM_ERROR.

·         .NET - Allows the TAGID and EPCID keywords in the field schema for the read.


Version 3.21

·         JAVA - The ReaderAttributes.getFieldStrength method would return null if the reader response data is in dB format. This has been fixed. Now it will translate the dB values into percentages.



Version 3.00


·         Fixed KC 070305-000035, losing network connection crashes the RFID application. The fix will try to reopen the connection until it’s successfully connected or until the application disposes the BRIReader object.


Version 2.5


·         JAVA - Fixed an issue that causes the application to terminate when the internal read buffer overflows. The fix will allow the application to catch this exception. A BasicReaderException will be thrown with an error code of BasicReaderException.BEX_READ_BUFFER_OVERFLOW.


·         .NET - The direct serial transport provided by the BRIReader and BasicBRIReader classes now posts BRI events and associated data to the BRI logger in the same manner that data are logged for other transport options such as TCP and the DCE transport.


Version 2.4


·         .NET - The IP4 resume / reconnect problem has been resolved.
Previous releases of the RFID Resource Kit occasionally demonstrated a problem when a series 700 computer was re-powered (resumed) following the suspend state. The IP4 reader connection was not always successfully re-established. The DCE transport now manages the IP4 / IrDA connection and successfully restores the connection transparently. Since the DCE refreshes this connection every time the host computer resumes from a power-off state (that is, after being suspended), Intermec recommends that your application monitors these connection-state changes so that it waits to send new commands to the reader until after the connection has been fully restored.

·         .NET - Null Owner Reference Permitted:
Version 2.3 provided a convenient way for an application’s event handlers to update GUI objects without having to deal with threading and context restrictions typically associated with code that updated Windows.Forms.Control objects. This, however, created a Windows.Forms dependency for event handlers (through the BasicBRIReader and BRIReader constructors), thereby failing to accommodate applications that do not have a GUI or a Windows.Forms object. This dependency has been removed by allowing both the BasicBRIReader and BRIReader constructors to accept either a Windows.Forms.Control reference as before, or a ‘null’ reference when necessary.

·         .NET - The following problem has been resolved.
If a .NET Compact Framework application opens an IP4 reader connection using the BRIReader constructor with a ‘null’ ReaderURI argument, then calls BRIReader.Dispose to close the connection followed by a new IP4 session using the BRIReader constructor again, the user may experience a long delay followed by session failure during the first re-connect attempt. The second time the application disposes and creates the BRIReader object, the new IP4 connection will succeed.


Version 2.3.1


·         .NET - Fixed an unhandled exception caused by the BasicBRIReader.Close and BRIReader.Dispose methods when used in Compact Framework (CF) applications built with Visual Studio 2005.


Version 2.3


·         JAVA - Fixed the ReaderAttributes.getTagTypes method to return a proper bitmask value for multiple tag types. Without the fix, this method always returns 0 if the TAGTYPE reader attribute contains multiple tag types.

·         JAVA - Fixed the ReaderAttributes.getTagTypes method so that it recognizes both ICODE119 and UCODE119 tag types as the same tag type and returns the bitmask value of ReaderAttributes.TagTypeMask.ICODE119.


Version 2.2

·         JAVA - Fixes in BasicRFID.jar:

o   Fixed a data parsing problem in handling the EPC data stream.

o   Fxied the event parsing logic so that unknown event messages will be discarded.

·         JAVA - Fixes in BRIReader.jar

o   In the Tag class, fixed the "toString" method so the returned string does not include the initial 'H' character in the tag key.

o   In the TagField class, fixed a bug in the setDataHex(long, int) method where the ‘H’ prefix was omitted in certain condition.

·         JAVA - Fixed the Java classpath in the makefile, JavaBasicRFIDSample.mak, to allow it to build the BasicRFIDSample properly.




Version 3.40

·         Java – Deprecated the ReaderAttributes.getANTS method (because it cannot handle the new bistatic antenna attribute values) and replaced it with the ReaderAttributes.getAntennas method.

·         .NET – Deprecated the ReaderAttributes.Antennas property (because it cannot handle the new bistatic antenna attribute values) and replaced it with the ReaderAttributes.AntennaSequence property.


Version 3.20


The following JAVA classes are deprecated:

·         BasicReaderListener – Replaced by the new BasicReaderEventListener interface.

Note: The reason the BasicReaderListener interface is deprecated is because it cannot support new events. It is replaced by the new interface BasicReaderEventListener. If you use the BasicBRIReader class, you will be able to register a BasicReaderEventListener to listen for all reader events. The event object, BasicReaderEvent, may only contain raw event data. It is recommended that you use the BRIReader class for your development which allows you to register different listeners for different reader events.

·         BasicReaderEventAdapter – Replaced by the new BasicReaderEventListener interface.

·         BasicTagEventListener – Replaced by the new BasicReaderEventListener interface.

·         BasicEPCReader


The following JAVA methods are deprecated:

·         BasicBRIReader.addEventListener – Replaced by the BasicBRIReader.addReaderEventListener method.

·         BasicBRIReader.addTagEventListener – Replaced by the BasicBRIReader.addReaderEventListener method.

·         BasicBRIReader.removeEventListener

·         BasicBRIReader.removeTagEventListener

·         BRIReader.addBasicReaderListener – Replaced by BRIReader.addRadioEventListener and BRIReader.addTriggerEventListener for listening radio events and GPIO trigger events respectively.

·         BRIReader.removeBasicReaderListener



The following .NET classes are deprecated:

·         TagTypeMask - replaced by RFIDTagType property

·         BasicEPCReader – Is not replaced


The following .NET methods are deprecated:

·         SetANTS – Replaced by Property Antennas

·         SetANTTRIES – Replaced by AntennaTries property

·         SetIDTRIES - Replaced by IdentifyTries property

·         SetINITTRIES - Replaced by InitializationTries property

·         SetLOCKTRIES- Replaced by LockTries property

·         SetRDTRIES- Replaced by ReadTries property

·         SetSELTRIES - Replaced by SelectTries property

·         SetUNSELTRIES - replaced by UnselectTries property

·         SetWRTRIES - replaced by WriteTries property

·         SetTAGTYPE – replaced by RFIDTagType property

·         SetTagTypes - replaced by RFIDTagType property

·         SetAutoPollTriggerEvents - replaced by AutoPollTriggerEvents property


The following .NET properties are deprecated:

·         ANTS – Replaced by Antennas

·         ANTTRIES – Replaced by AntennaTries property

·         IDTRIES - Replaced by IdentifyTries property

·         INITTRIES - Replaced by InitializationTries property

·         LOCKTRIES - Replaced by LockTries property

·         RDTRIES - Replaced by ReadTries property

·         SELTRIES - Replaced by SelectTries property

·         UNSELTRIES – replaced by UnselectTries property

·         WRTRIES - replaced by WriteTries property

·         TAGTYPE - replaced by RFIDTagType property

·         TagTypes - replaced by RFIDTagType property


The following .NET events are deprecated:

·         EventHandlerOverflow – is not replaced. This event will be be raised anymore.

·         EventHandlerDCE – replaced by ReaderEvent

·         EventHandlerCenterTrigger – replaced by ReaderEvent

·         EventHandlerRadio – replaced by ReaderEvent

·         EventHandlerGPIO – replaced by ReaderEvent

·         EventHandlerTag – replaced by ReaderEvent




·         An error can occur when you try to install Intermec software (such as IDL Resource Kits) using an invalid version of agent.exe. Agent.exe is part of Intermec's 3rd-party software update system called FLEXnet Connect – more commonly known as Intermec Update. Several Intermec Software components utilize FLEXnet Connect, such as SmartSystems, All IDL Resource Kits and Toolkits, DEX Toolkit and Verdex. This error may also occur if any 3rd party software utilizing version newer than v6 of FLEXnet Connect has been installed on your system.  If you encounter an error similar to: "The file 'agent.exe.4747EFCD_A8CE_4016_80F6_BCAD9FE72' is not marked for installation." please contact Product Support or Developer Support.

·         The resource kit .NET and Java API allows you configure the RFID reader with multiple tag types. If you mixed ISO 6B G1 or G2 tag type with EPC Gen2 tag type, the Java BRIReader.update or .NET BRIReader.Update method may not update the mixed population of tags correctly due to the different BRI keywords required to identify the tag key in different tag types. It is recommended you use the tag types with similar tag key format such as UCODE119 and EPC Gen2.

·         .NET Direct Serial Known Limitations (applies to all IDL versions):
The BasicBRIReader and BRIReader classes both support the ability to bypass the DCE and communicate directly with a serial-interfaced RFID reader. This is known as the direct serial transport option, and can be chosen within your application code by specifying a ReaderURI string-value of “SERIAL://COMn” (where ‘n’ is a single digit that specifies a physical COM port available on the computer hosting your application). However, the direct serial option is not available on WindowsCE or Windows Mobile (WM) computers; it is only available on Intermec’s XP- and XPe-based computer products.

If the direct serial transport is attempted on a CE or WM based computer, the BRIReader object (advanced model) or the BasicBRIReader object (basic model) will raise an exception to the application layer every time an attempt is made to send a command to the RFID reader from your application code.


·         To open a reader connection from your device to the IP30 reader, use the Wireless Readers wizard from Start->Settings->System.  Follow the wizard’s instructions to search for and to add the reader.  After the search step, select your device from the result list and choose Data Collection as the connection method.


After the IP30 is added, it needs to be enabled. The configuration path in the Intermec Settings is “RFID->Reader 1->Enable Reader”.




1) You need these hardware components to use the Intermec RFID Resource Kit:


          Pentium PC, 400 MHz or higher


          128MB RAM (196MB recommended)


          50MB Hard drive space for installation


2) Windows 2000 (Service Pack 2 or later) or Windows XP (Home, Professional, or Server) operating system is recommended.


3) Visual Studio 2005 or Visual Studio 2008 is required for developing .NET applications.


4) ActiveSync 4.1 or later is needed to download the applications to the devices.