Embedded Light RP
Introduction
This section describes the Embedded light RP developed by the POPS team, Inria-Lille. This software can be easily implemented in mobile terminals such like PDA to interact with RFID Reader devices.The implementation is divided into two subsets : RP API definition and core implementation for CAEN and BRI readers.
The targeted RP architecture is the following :
- One Reader Device : singleton representing the RFID reader device.
- One Source : representing the PDA as a mobile source for reading tags.
- One Read Point : representing the unique ANTENNA of each PDA.
- One Data Selector : the default one, with EPCID field selection only.
- No Tag Selector : The filtering is done by software at upper levels.
- No Notification Channel : The inventory is done synchronously with a specified time-out per read cycle.
- No triggers : the only Read Trigger is implicitly fired when calling the method Source.rawReadIDs.

Users & Developers Guide
The executable jar file can be found under the repository ReaderProtocol/dist. All the source can be found under the repository ReaderProtocol/src.
Here is an example of Inventory of tags in reader's field:
// Reader singleton ReaderDevice myReader = ReaderFactory.getReader(ReaderFactory.BRI_READER,"BRIReaderDevice");// Reader's default source and data selector Source mySource; DataSelector myDataSelector;
// Establish Connections ReaderFactory.connectReader(myReader);
// Reader's Data Selector : default singleton for selecting IDs // This is is the default data selector that supports at least the tag ID field // get Default Data Selector and update it myDataSelector = myReader.getCurrentDataSelector();
// Reader's source : Singleton mySource = myReader.getCurrentSource();
// Perform 10 read cycles for( int i = 0; i < 10 ; i++) { System.out.println("Read Cycle " + i + " at " + myReader.getTimeTicks() + " ticks");
// Inventory ReadReport myReadReport = mySource.rawReadIDs(myDataSelector);
if (myReadReport == null) { System.err.println("Error : mySource.rawReadIDs null report "); } else { // Display read Tags (ids in hexadecimal) String[] tagIds = myReadReport.getTagIds(mySource.getName()); if (tagIds == null) { System.err.println("Error : myReadReport.getTagIds null "); } else if (tagIds.length == 0) { System.out.println("t NO TAGS"); } else { for(int j = 0 ; j < tagIds.length; j++) System.out.println("tObserved : 0x" + tagIds[j]); } } }
// graceful disconnect : equivalent to ReaderFactory.disconnectReader(myReader); myReader.goodbye();
Download
You can download the executable jar file from here. The source can be found here.
Please follow the Users & Developers Guide for your tests.
More details about the complete version of Light ALE (with light RP embedded) can be found here.