Download Design of a RFID reader controller Final Report

Transcript
oriented programming (OOP) language in the development of a big software, using
classes, objects, inheritances and all the general concepts of the OOP.
The choice of the language was mine and I choose C# because of my experience
using it during my industrial project in 4th. Developing in C# allows also using Visual
Studio with the WYSIWYG graphical user interface tool. It makes save a lot of time in
the development of the graphical user interface.
Connecting to two readers
Note: During the debugging step I continue working with RIFIDI Emulator but
for the second reader I made tests with a real RFID reader from Impinj[15]. The
appendix D shows how to set up properly RIFIDI Emulator in order to use it with the
controller.
This was the main work of this version, allowing the controller to connect to
multiples readers. Instead of only one LLRP connection trough UPD there were two.
The user can add the IP or the hostname of the reader and choose to connect it whenever
he wants.
Then the main difficulty was to know which reader is active and especially
where to send the commands and which reader is answering, or which reader is sending
an operation report. Briefly the main difficulty is not to connect to the two readers, it is
to manage these connections when the program is running.
Here the OOP was helpful, an object called selected reader was defined and was
a reference to the active reader object. Every time the user changed the active reader, or
an event changed the active reader this reference followed and this reference was passed
in argument to the functions. This solution works only for the outgoing message, but
there is still a problem to identify the senders of the incoming messages.
Concerning the incoming messages the solution is different. Actually the
incoming messages are responses to the commands or operation reports.
Julien David
•
In the first case the response arrives just after the command has been
sent, so if the incoming message corresponds we can imagine that it is
the answer. We can verify that because in each ……_RESPONSE
message there is a parameter with the identifier of the message that it
responds to. Every time that the engine sends a message, it generates an
identifier and check automatically that the response corresponds to this
identifier.
•
The second case is different because the incoming messages are not
answers. When the user set up a reader operation he can choose to
receive periodic reports, with all scanned tags. When this kind of
message it is possible to identify the operation corresponding to this
report. Once again a parameter field indication the ROSpecID that
Design of a RFID Controller
Page 33 of 64