INTERMEC RFID Resource Kit Version 3.42
· (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.
· 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.
· 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.
· 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.
· Added a new JAR file called BRIReaderOSGi.jar to support the OSGi framework.
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.
· 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.
· 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.
· 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.
· 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
· 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.
· Defaults to tcp://127.0.0.1 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.
· 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.
· 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”.
· 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.
· 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.
· .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.
· .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 BasicBRIReader.open methods and the BRIReader constructors now throw a BasicReaderException if the log file creation fails so the application can catch this failure.
· .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.
· 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.
· 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.
· 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.
· 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.
.NET - The IP4 resume / reconnect problem has
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.
· .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.
· 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.
· 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.
· 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.
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.
The following JAVA methods are deprecated:
· BasicBRIReader.addEventListener – Replaced by the BasicBRIReader.addReaderEventListener method.
· BasicBRIReader.addTagEventListener – Replaced by the BasicBRIReader.addReaderEventListener method.
· BRIReader.addBasicReaderListener – Replaced by BRIReader.addRadioEventListener and BRIReader.addTriggerEventListener for listening radio events and GPIO trigger events respectively.
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”.
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.