com.impinj.octane

## Class FeatureSet

- java.lang.Object
- - com.impinj.octane.FeatureSet

-     public class FeatureSet
      extends java.lang.Object

  The FeatureSet class holds the capabilities and features of an Impinj reader. You can query the feature set from the ImpinjReader class.
  See Also:
    `ImpinjReader.queryFeatureSet()`

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.util.List<java.lang.Double>` | `txFrequencies`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `FeatureSet()`
    `protected` | `FeatureSet(FeatureSet fs)` Copy constructor.
    `protected` | `FeatureSet(org.llrp.ltk.generated.messages.GET_READER_CAPABILITIES_RESPONSE capabilities)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `long` | `getAntennaCount()`
    `CommunicationsStandardType` | `getCommunicationsStandard()`
    `java.lang.String` | `getFirmwareVersion()`
    `int` | `getGpiCount()`
    `int` | `getGpoCount()`
    `int` | `getMaxNumSelectFiltersPerQuery()`
    `int` | `getMaxOperationSequences()`
    `int` | `getMaxOperationsPerSequence()`
    `java.lang.String` | `getModelName()`
    `int` | `getModelNumber()`
    `double` | `getReaderMaxSensitivityActualDbm()`
    `ReaderModel` | `getReaderModel()`
    `java.util.List<ReaderMode>` | `getReaderModes()` Deprecated. The `ReaderMode` enum is no longer supported. Use `getRfModes()` instead.
    `java.util.List<java.lang.Integer>` | `getRfModes()`
    `java.util.List<RxSensitivityTableEntry>` | `getRxSensitivities()`
    `java.lang.String` | `getSerialNumber()`
    `java.util.List<java.lang.Double>` | `getTxFrequencies()`
    `java.util.List<TxPowerTableEntry>` | `getTxPowers()`
    `boolean` | `isFastIdAvailable()`
    `boolean` | `isFilteringAvailable()`
    `boolean` | `isGpiDebounceAvailable()`
    `boolean` | `isHoppingRegion()`
    `boolean` | `isImpinjRssiReportingAvailable()`
    `boolean` | `isLinkMonitorAvailable()`
    `boolean` | `isMultiwordBlockWriteAvailable()`
    `boolean` | `isPhaseAngleReportingAvailable()`
    `boolean` | `isTagAccessAvailable()`
    `static FeatureSet` | `load(java.lang.String path)` Read the representation of FeatureSet from a file and return a new FeatureSet instance with those values.
    `void` | `save(java.lang.String path)` writes the FeatureSet to a file
    `protected void` | `setAntennaCount(long antennaCount)`
    `protected void` | `setCommunicationsStandard(CommunicationsStandardType communicationsStandard)`
    `protected void` | `setFastIdAvailable(boolean fastIdAvailable)`
    `protected void` | `setFilteringAvailable(boolean filteringAvailable)`
    `protected void` | `setFirmwareVersion(java.lang.String firmwareVersion)`
    `protected void` | `setGpiCount(int gpiCount)`
    `protected void` | `setGpiDebounceAvailable(boolean gpiDebounceAvailable)`
    `protected void` | `setGpoCount(int gpoCount)`
    `protected void` | `setHoppingRegion(boolean hoppingRegion)`
    `protected void` | `setImpinjRssiReportingAvailable(boolean impinjRssiReportingAvailable)`
    `protected void` | `setLinkMonitorAvailable(boolean linkMonitorAvailable)`
    `protected void` | `setMaxNumSelectFiltersPerQuery(int maxNumSelectFiltersPerQuery)`
    `protected void` | `setMaxOperationSequences(int maxOperationSequences)`
    `protected void` | `setMaxOperationsPerSequence(int maxOperationsPerSequence)`
    `protected void` | `setModelName(java.lang.String modelName)`
    `protected void` | `setModelNumber(int modelNumber)`
    `protected void` | `setMultiwordBlockWriteAvailable(boolean multiwordBlockWriteAvailable)`
    `void` | `setPhaseAngleReportingAvailable(boolean phaseAngleReportingAvailable)`
    `protected void` | `setReaderMaxSensitivityActualDbm(double readerMaxSensitivityActualDbm)`
    `protected void` | `setReaderModel(ReaderModel readerModel)`
    `protected void` | `setReaderModes(java.util.List<ReaderMode> readerModes)` Deprecated. The `ReaderMode` enum is no longer supported.
    `protected void` | `setRfModes(java.util.List<java.lang.Integer> rfModes)`
    `protected void` | `setRxSensitivities(java.util.List<RxSensitivityTableEntry> rxSensitivities)`
    `protected void` | `setSerialNumber(java.lang.String serialNumber)`
    `protected void` | `setTagAccessAvailable(boolean tagAccessAvailable)`
    `protected void` | `setTxFrequencies(java.util.List<java.lang.Double> txFrequencies)`
    `protected void` | `setTxPowers(java.util.List<TxPowerTableEntry> txPowers)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### txFrequencies

          protected java.util.List<java.lang.Double> txFrequencies

  - ### Constructor Detail

    - #### FeatureSet

          protected FeatureSet()

    - #### FeatureSet

          protected FeatureSet(org.llrp.ltk.generated.messages.GET_READER_CAPABILITIES_RESPONSE capabilities)

    - #### FeatureSet

          protected FeatureSet(FeatureSet fs)

      Copy constructor.
      Parameters:
        `fs` - object to be copied

  - ### Method Detail

    - #### load

          public static FeatureSet load(java.lang.String path)
                                 throws java.io.IOException

      Read the representation of FeatureSet from a file and return a new FeatureSet instance with those values.
      Parameters:
        `path` - The path and filename of the XML file to load
      Returns:
        a populated instance of FeatureSet class based on file
      Throws:
        `java.io.IOException` - if the file cannot be accessed contents.

    - #### getAntennaCount

          public long getAntennaCount()

      Returns:
        how many antennas the reader supports
      See Also:
        `Settings.getAntennas()`, `AntennaConfigGroup`

    - #### setAntennaCount

          protected void setAntennaCount(long antennaCount)

    - #### getGpiCount

          public int getGpiCount()

      Returns:
        how many General Purpose Inputs (GPI) the reader supports
      See Also:
        `Settings.getGpis()`, `GpiConfig`

    - #### setGpiCount

          protected void setGpiCount(int gpiCount)

    - #### getGpoCount

          public int getGpoCount()

      Returns:
        how many General Purpose Outputs (GPO) the reader supports
      See Also:
        `Settings.getGpos()`, `GpoConfig`

    - #### setGpoCount

          protected void setGpoCount(int gpoCount)

    - #### getModelNumber

          public int getModelNumber()

      Returns:
        the model number for the reader

    - #### setModelNumber

          protected void setModelNumber(int modelNumber)

    - #### getReaderModel

          public ReaderModel getReaderModel()

      Returns:
        the reader type

    - #### setReaderModel

          protected void setReaderModel(ReaderModel readerModel)

    - #### getModelName

          public java.lang.String getModelName()

      Returns:
        the model name for the reader

    - #### setModelName

          protected void setModelName(java.lang.String modelName)

    - #### getSerialNumber

          public java.lang.String getSerialNumber()

      Returns:
        the readers unique serial number

    - #### setSerialNumber

          protected void setSerialNumber(java.lang.String serialNumber)

    - #### getFirmwareVersion

          public java.lang.String getFirmwareVersion()

      Returns:
        the readers current firmware version

    - #### setFirmwareVersion

          protected void setFirmwareVersion(java.lang.String firmwareVersion)

    - #### getMaxOperationSequences

          public int getMaxOperationSequences()

      Returns:
        how many tag operation sequences the reader can support.
      See Also:
        `TagOpSequence`

    - #### setMaxOperationSequences

          protected void setMaxOperationSequences(int maxOperationSequences)

    - #### getMaxOperationsPerSequence

          public int getMaxOperationsPerSequence()

      Returns:
        how many tag operations are permitted in each tag operation sequence
      See Also:
        `TagOp`

    - #### setMaxOperationsPerSequence

          protected void setMaxOperationsPerSequence(int maxOperationsPerSequence)

    - #### getMaxNumSelectFiltersPerQuery

          public int getMaxNumSelectFiltersPerQuery()

      Returns:
        how many select filters are permitted in each query

    - #### setMaxNumSelectFiltersPerQuery

          protected void setMaxNumSelectFiltersPerQuery(int maxNumSelectFiltersPerQuery)

    - #### isTagAccessAvailable

          public boolean isTagAccessAvailable()

      Returns:
        true if tag access is permitted on this reader

    - #### setTagAccessAvailable

          protected void setTagAccessAvailable(boolean tagAccessAvailable)

    - #### isFilteringAvailable

          public boolean isFilteringAvailable()

      Returns:
        true if tag filtering is available on this reader
      See Also:
        `Settings.getFilters()`

    - #### setFilteringAvailable

          protected void setFilteringAvailable(boolean filteringAvailable)

    - #### isGpiDebounceAvailable

          public boolean isGpiDebounceAvailable()

      Returns:
        true if a mechanism is available to reduce GPI bounce
      See Also:
        `Settings.getGpis()`, `GpiConfig.setDebounceInMs(long)`

    - #### setGpiDebounceAvailable

          protected void setGpiDebounceAvailable(boolean gpiDebounceAvailable)

    - #### isLinkMonitorAvailable

          public boolean isLinkMonitorAvailable()

      Returns:
        true if link monitoring is available on the reader
      See Also:
        `Settings.getKeepalives()`

    - #### setLinkMonitorAvailable

          protected void setLinkMonitorAvailable(boolean linkMonitorAvailable)

    - #### isMultiwordBlockWriteAvailable

          public boolean isMultiwordBlockWriteAvailable()

      Returns:
        true if the reader can perform a multiword block write

    - #### setMultiwordBlockWriteAvailable

          protected void setMultiwordBlockWriteAvailable(boolean multiwordBlockWriteAvailable)

    - #### isPhaseAngleReportingAvailable

          public boolean isPhaseAngleReportingAvailable()

      Returns:
        true if the reader is capable of reporting tag phase angle
      See Also:
        `Tag.getPhaseAngleInRadians()`

    - #### setPhaseAngleReportingAvailable

          public void setPhaseAngleReportingAvailable(boolean phaseAngleReportingAvailable)

    - #### isFastIdAvailable

          public boolean isFastIdAvailable()

      Returns:
        true if fast ID is supported by this reader
      See Also:
        `Settings.getReaderMode()`, `ReportConfig.setIncludeFastId(java.lang.Boolean)`

    - #### setFastIdAvailable

          protected void setFastIdAvailable(boolean fastIdAvailable)

    - #### isImpinjRssiReportingAvailable

          public boolean isImpinjRssiReportingAvailable()

      Returns:
        true if Impinj RSSI reporting is avaialble

    - #### setImpinjRssiReportingAvailable

          protected void setImpinjRssiReportingAvailable(boolean impinjRssiReportingAvailable)

    - #### getTxPowers

          public java.util.List<TxPowerTableEntry> getTxPowers()

      Returns:
        the list of transmit powers available on the reader
      See Also:
        `AntennaConfig.setTxPowerinDbm(double)`, `AntennaConfigGroup.setTxPowerinDbm(double)`

    - #### setTxPowers

          protected void setTxPowers(java.util.List<TxPowerTableEntry> txPowers)

    - #### getRxSensitivities

          public java.util.List<RxSensitivityTableEntry> getRxSensitivities()

      Returns:
        the list of available rx sensitivities
      See Also:
        `AntennaConfig.setRxSensitivityinDbm(double)`, `AntennaConfigGroup.setRxSensitivityinDbm(double)`

    - #### setRxSensitivities

          protected void setRxSensitivities(java.util.List<RxSensitivityTableEntry> rxSensitivities)

    - #### isHoppingRegion

          public boolean isHoppingRegion()

      Returns:
        true of the region uses hopping. If hopping is not used, the reader supports setting the frequencies
      See Also:
        `Settings.setTxFrequenciesInMhz(java.util.ArrayList)`

    - #### setHoppingRegion

          protected void setHoppingRegion(boolean hoppingRegion)

    - #### getReaderModes

          @Deprecated
          public java.util.List<ReaderMode> getReaderModes()

      Deprecated. The `ReaderMode` enum is no longer supported.

      Use `getRfModes()` instead.

      Returns:
        the list of available reader modes

    - #### setReaderModes

          @Deprecated
          protected void setReaderModes(java.util.List<ReaderMode> readerModes)

      Deprecated. The `ReaderMode` enum is no longer supported.
      Parameters:
        `readerModes` - the list of available reader modes

    - #### getRfModes

          public java.util.List<java.lang.Integer> getRfModes()

      Returns:
        the list of available RF Modes

    - #### setRfModes

          protected void setRfModes(java.util.List<java.lang.Integer> rfModes)

      Parameters:
        `rfModes` - the list of available RF Modes

    - #### getTxFrequencies

          public java.util.List<java.lang.Double> getTxFrequencies()

      Returns:
        the list of supported frequencies

    - #### setTxFrequencies

          protected void setTxFrequencies(java.util.List<java.lang.Double> txFrequencies)

    - #### getReaderMaxSensitivityActualDbm

          public double getReaderMaxSensitivityActualDbm()

    - #### setReaderMaxSensitivityActualDbm

          protected void setReaderMaxSensitivityActualDbm(double readerMaxSensitivityActualDbm)

    - #### getCommunicationsStandard

          public CommunicationsStandardType getCommunicationsStandard()

      Returns:
        the communication standard used by the reader

    - #### setCommunicationsStandard

          protected void setCommunicationsStandard(CommunicationsStandardType communicationsStandard)

    - #### save

          public void save(java.lang.String path)
                    throws java.io.IOException

      writes the FeatureSet to a file
      Parameters:
        `path` - -- the file name
      Throws:
        `java.io.IOException` - if a failure occurs during save