Knowing the Reader Capabilities
The capabilities (or Read-Only properties) of the Reader can be known using ReaderCapabilites class. The reader capabilities include the following:
General Capabilities
Firmware Version – property
Model Name
Number of antennas supported
Number of GPIs & GPOs
UTC Clock supported
Receive Sensitivity Table
Periodic Tag Reporting Supported
Tag Phase Reporting supported
Tag Event Reporting Supported - Indicates the reader’s ability to report tag visibility state changes (New Tag, Tag Invisible, or Tag Visibility Changed.).
RSSI Filter Supported - Indicates the reader’s ability to report tags based on the signal strength of the back-scattered signal from the tag.
NXP Commands Supported - Indicates whether the reader supports NXP commands like Change EAS,set Quiet, Reset Quiet,Calibrate.
Impinj Command Supported - Gets the information on Impinj Command support.
Gen2 LLRP Capabilities
Block Erase supported
Block Write supported
Block PermaLock supported
State Aware Singulation supported
Maximum Number of Operation in Access Sequence
Maximum Pre-filters allowable per antenna
RF Modes
Regulatory Capabilities
Country Code
Communication Standard
UHF Band capabilities
Transmit Power table
Hopping enabled
Frequency Hop table (if hopping enabled, this table has the frequency information)
Fixed Frequency table (if hopping not enabled, this table contains the frequency list used by the reader. The one-based position of a frequency in this list is its channel index.)
Reader Identification
Reader ID and reader ID type (The reader identification can be MAC or EPC.)
// Get Reader capabilities
Console.WriteLine("FirwareVersion={0}", rfidApi.ReaderCapabilites.FirwareVersion);
Console.WriteLine("ModelName={0}", rfidApi.ReaderCapabilites.ModelName);
Console.WriteLine("NumAntennaSupported={0}", rfidApi.ReaderCapabilites.NumAntennaSupported);
Console.WriteLine("NumGPIPorts={0}", rfidApi.ReaderCapabilites.NumGPIPorts);
Console.WriteLine("NumGPOPorts={0}", rfidApi.ReaderCapabilites.NumGPOPorts);
Console.WriteLine("IsUTCClockSupported= {0}", rfidApi.ReaderCapabilites.IsUTCClockSupported);
Console.WriteLine("IsPeriodicTagReportsSupported= {0}", rfidApi.ReaderCapabilites.IsPeriodicTagReportsSupported);
Console.WriteLine("IsTagPhaseReportingSupported= {0}", rfidApi.ReaderCapabilites.IsTagPhaseReportingSupported);
Console.WriteLine("IsBlockEraseSupported={0}", rfidApi.ReaderCapabilites.IsBlockEraseSupported);
Console.WriteLine("IsBlockPermaLockSupported={0}", rfidApi.ReaderCapabilites.IsBlockPermaLockSupported);
Console.WriteLine("IsTagInventoryStateAwareSingulationSupported={0}", rfidApi.ReaderCapabilites.IsTagInventoryStateAwareSingulationSupported);
Console.WriteLine("MaxNumOperationsInAccessSequence={0}", rfidApi.ReaderCapabilites.MaxNumOperationsInAccessSequence);
Console.WriteLine("MaxNumPreFilters={0}", rfidApi.ReaderCapabilites.MaxNumPreFilters);
Console.WriteLine("CommunicationStandard={0}", rfidApi.ReaderCapabilites.CommunicationStandard);
Console.WriteLine("CountryCode={0}", rfidApi.ReaderCapabilites.CountryCode);
Console.WriteLine("IsHoppingEnabled={0}", rfidApi.ReaderCapabilites.IsHoppingEnabled);