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.


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:


We are using open source ZedGraph:

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