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.
The implementation is performed as follows (example for BRI, idem. for CAEN):
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.