LLRP Application Documentation

This page is meant to provide information and how-to discussions on the Reader App.
Questions? Head on over to the discussion board.

Please see the Reader Application page to download the app or see version history information.

Information:


Image Files for Impinj Reader 2.0 (New Version)




Project Organization for Impinj Reader 1.5 (Obsolete)
  • There are three levels of hierarchy.
    • At the top level is the MainFrm GUI in the LLRPTest project.
    • At the bottom level is the LLRP/Ethernet code in the LLRP project.
    • In the middle is a wrapper for the LLRP code called RFID Reader. This class supports:
      • Connecting/disconnecting from the reader via Connect(string ipAddress) and Disconnect()
      • Starting and stopping inventory mode via StartInventory() and StopInventory()
      • Reading available reader settings via getReaderConfig()
      • Writing reader settings via readerconfig.setReaderConfig(ReaderConfig config)
  • There are several supporting classes
    • MyTag is a wrapper for a tag seen by the reader. MyTag knows how to parse out sensor data from the tag. RFIDReader generates MyTags and passes them to the GUI layer for display.
    • TagStats keeps track of tags that have been seen and updates the grid box tag list on the gui.
    • Stage, Saturn, and other classes in the SaturnDemo project are for the Saturn accelerometer demo
    • Fifo is unused
    • There is a lot of Impinj LLRP code in the LLRP project.

Theory of Operation:
  • Reader runs autonomously, generates a report every 100ms.
  • UpdateROReport(...) thread in the RFIDReader class parses the reports and calls HandleTagReceived(...) in the GUI MainFrm class with each tag, encapsulated in a MyTag object.
  • HandleTagReceived asks MyTag objects to parse out sensor data, but doesn't touch GUI!
  • timerUpdateGUI runs at 10 to 20 hz, and puts data stored by HandleTagReceived onto the GUI.


Adding a new sensor demo:

  • First, provide parsing and identifier information to the MyTag class
  • Second, generate a new handler method in the MainFrm class. Ex, see HandleAccelTagStats
  • Third, edit the HandleTagReceived function to call your handler method upon seeing your sensor
  • Fourth, edit timerUpdateGUI to display your data on the GUI.
  • Do not add GUI code to the handler method, this can cause instability on some computers.


Block Diagram:




Data Sheets:



Graphing:

We are using open source ZedGraph:





The last modification was made by - ritika90 ritika90 on Aug 10, 2009 8:59 am