This patch adds RFID support to Player/Stage v1.6.5 by creating a new RFID interface
(code number 52) and new drivers for two brands of RFID readers (Inside Contactless M300/R300 2G
and Skyetek M1/M1-mini). Basic ISO15693 select tag commands are supported.
Patches for the C (+Python), C++ and Java clients are also provided, as well as some simple examples
on how to use the new interface. The client connects to Player, and receives the GUID of all
the tags in the RF field (using the anticollision mechanisms provided by the reader) as a data
packet. Support for reading/writing information from/to the tags will be added in the future.
Instructions on how to patch Player 1.6.5:
- get a fresh copy of Player v1.6.5 from SourceForge;
- unpack it in the directory of your choice using 'tar xvfz player-1.6.5.tgz';
- get the Player RFID patch and copy it to the newly created player-1.6.5 subdirectory;
- run 'patch -p1 -u < ./patch-Player-1.6.5-rfid.p' to apply the patch;
- run 'autoreconf -i -s' (I usually run it two times, to get rid of the warning);
- run ./configure [with your preferred settings] ; make ; make install [if necessary];
- test the new code using client_libs/{libplayerc,c++}/test/test (test_rfid.{c,cc}). A configuration example is provided in config/rfid.cfg.
Instructions on how to patch Javaclient 1.6.5:
- get a fresh copy of Javaclient v1.6.5 from SourceForge;
- unpack it in the directory of your choice using 'tar xvfz Javaclient-1.6.5.tgz';
- get the Javaclient RFID patch and copy it to the directory that contains Javaclient;
- run 'patch -p0 -u < ./patch-Javaclient-1.6.5-rfid.p' to apply the patch;
- run './build.sh' [or compile using your preferred method] to recompile the classes, doc and jar files;
- test the new code using a simple client that... connects to the Player server:
PlayerClient robot = new PlayerClient ('localhost', 6665);
...requests a RFID interface:
RFIDInterface rfidi = robot.requestInterfaceRFID (0, 'r');
...and then gets the tags count and GUIDs using:
int tagsCount = rfidi.getTagsCount ();
PlayerRFIDTagT[] tags = rfidi.getTags ();
System.out.println ('Tags found: ' + tagsCount);
Note: this patch *only works* with Player 1.6.5. If you use the
new Player 2.0, you will notice that it's already in the code tree. |