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