com.impinj.octane

## Class Settings

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

-     public class Settings
      extends java.lang.Object

  This is a container class for all of the knobs that control reader behavior. Settings are not applied by changing the values within a class instance. The application must build a class instance (or query the current settings from the reader), modify the class instance, and apply these settings back to the reader. Default settings contain
  - all antennas enabled at max power and sensitivity
  - all gpi disabled with no debounce
  - all gpo enabled in normal mode
  - auto start and stop disabled
  - session 2, dual target, auto-dense reader mode
  - tag reports in individual mode with only an EPC reported
  - keep alive and link monitor disabled
  - low duty cycle disabled
  - no tag inventory filters
  - no tag operation sequences
  - no fast ID enabled
  See Also:
    `ImpinjReader.queryDefaultSettings()`, `ImpinjReader.querySettings()`, `ImpinjReader.applyDefaultSettings()`, `ImpinjReader.applySettings(Settings)`

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `AntennaConfigGroup` | `getAntennas()`
    `AutoStartConfig` | `getAutoStart()`
    `AutoStopConfig` | `getAutoStop()`
    `java.lang.Boolean` | `getEndOfCycleEvent()` The reader can be configured to send end-of-cycle events.
    `FilterSettings` | `getFilters()`
    `GpiConfigGroup` | `getGpis()`
    `GpoConfigGroup` | `getGpos()`
    `java.lang.Boolean` | `getHoldReportsOnDisconnect()` When the reader is running an inventory it may be collecting tag reports.
    `KeepaliveConfig` | `getKeepalives()`
    `LowDutyCycleSettings` | `getLowDutyCycle()`
    `ReaderMode` | `getReaderMode()` Deprecated. The `ReaderMode` enum is no longer supported. Use `getRfMode()` instead. ReaderMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
    `java.util.ArrayList<java.lang.Double>` | `getReducedPowerFrequenciesInMhz()`
    `ReportConfig` | `getReport()`
    `java.lang.Integer` | `getRfMode()` RfMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
    `SearchMode` | `getSearchMode()` Gen2 provides rudimentary building blocks to inventory populations of tags The Impinj reader creates high level inventory search modes from these gen2 operations.
    `int` | `getSession()` Sets the gen2 session for the reader.
    `SpatialConfig` | `getSpatialConfig()` Gets the reader settings object that contains configurations specific to readers with location and direction role capabilities.
    `java.lang.Boolean` | `getStartOfAntennaEvent()` The reader can be configured to send start-of-antenna events.
    `int` | `getTagPopulationEstimate()` When performing inventory operations, the Impinj reader uses the gen2 protocol's random access method to arbitrate between populations of tags.
    `TruncatedReplySettings` | `getTruncatedReply()`
    `java.util.ArrayList<java.lang.Double>` | `getTxFrequenciesInMhz()`
    `XArrayConfig` | `getXArray()` Deprecated.
    `static Settings` | `load(java.lang.String path)` builds a settings object from a file (from save)
    `void` | `save(java.lang.String path)` Save the current settings object to a file in json
    `void` | `setAntennas(AntennaConfigGroup antennas)`
    `void` | `setAutoStart(AutoStartConfig autoStart)`
    `void` | `setAutoStop(AutoStopConfig autoStop)`
    `void` | `setEndOfCycleEvent(java.lang.Boolean endOfCycleEvent)` The reader can be configured to send end-of-cycle events.
    `void` | `setFilters(FilterSettings filters)`
    `void` | `setGpis(GpiConfigGroup gpis)`
    `void` | `setGpos(GpoConfigGroup gpos)`
    `void` | `setHoldReportsOnDisconnect(java.lang.Boolean holdReportsOnDisconnect)` When the reader is running an inventory it may be collecting tag reports.
    `void` | `setKeepalives(KeepaliveConfig keepalives)`
    `void` | `setLowDutyCycle(LowDutyCycleSettings lowDutyCycle)`
    `void` | `setReaderMode(ReaderMode readerMode)` Deprecated. The `ReaderMode` enum is no longer supported. Use `setRfMode(Integer)` instead. ReaderMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
    `void` | `setReducedPowerFrequenciesInMhz(java.util.ArrayList<java.lang.Double> reducedPowerFrequenciesInMhz)`
    `void` | `setReport(ReportConfig report)` Contains the configuration for Tag Reports
    `void` | `setRfMode(java.lang.Integer rfMode)` RfMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
    `void` | `setSearchMode(SearchMode searchMode)` Gen2 provides rudimentary building blocks to inventory populations of tags The Impinj reader creates high level inventory search modes from these gen2 operations.
    `void` | `setSession(int session)` Sets the gen2 session for the reader.
    `void` | `setSpatialConfig(SpatialConfig spatialConfig)` Sets the reader's settings object to be used to house configurations for readers with direction or location role capabilities.
    `void` | `setStartOfAntennaEvent(java.lang.Boolean startOfAntennaEvent)` The reader can be configured to send start-of-antenna events.
    `void` | `setTagPopulationEstimate(int tagPopulationEstimate)` When performing inventory operations, the Impinj reader uses the gen2 protocol's random access method to arbitrate between populations of tags.
    `void` | `setTruncatedReply(TruncatedReplySettings truncatedReply)`
    `void` | `setTxFrequenciesInMhz(java.util.ArrayList<java.lang.Double> txFrequenciesInMhz)`
    `void` | `setXArray(XArrayConfig xArray)` Deprecated.

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

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

- - ### Method Detail

    - #### load

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

      builds a settings object from a file (from save)
      Parameters:
        `path` - to file
      Returns:
        a settings object
      Throws:
        `java.io.IOException` - if operation fails.

    - #### getAutoStart

          public AutoStartConfig getAutoStart()

    - #### setAutoStart

          public void setAutoStart(AutoStartConfig autoStart)

    - #### getAutoStop

          public AutoStopConfig getAutoStop()

    - #### setAutoStop

          public void setAutoStop(AutoStopConfig autoStop)

    - #### getReaderMode

          @Deprecated
          public ReaderMode getReaderMode()

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

      Use `getRfMode()` instead. ReaderMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment

      Returns:
        the current reader mode

    - #### setReaderMode

          @Deprecated
          public void setReaderMode(ReaderMode readerMode)

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

      Use `setRfMode(Integer)` instead. ReaderMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment

      Parameters:
        `readerMode` - the desired reader mode

    - #### getRfMode

          public java.lang.Integer getRfMode()

      RfMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
      Returns:
        the current RF mode

    - #### setRfMode

          public void setRfMode(java.lang.Integer rfMode)

      RfMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
      Parameters:
        `rfMode` - the desired RF mode

    - #### getSearchMode

          public SearchMode getSearchMode()

      Gen2 provides rudimentary building blocks to inventory populations of tags The Impinj reader creates high level inventory search modes from these gen2 operations.
      Returns:
        the current reader search mode

    - #### setSearchMode

          public void setSearchMode(SearchMode searchMode)

      Gen2 provides rudimentary building blocks to inventory populations of tags The Impinj reader creates high level inventory search modes from these gen2 operations.
      Parameters:
        `searchMode` - the desired reader search mode

    - #### getSession

          public int getSession()

      Sets the gen2 session for the reader. Gen2 maintains 4 independent sessions so that a tag can be inventoried in several different sessions simultaneously. Also, the session have different persistence properties which change tag read behavior.
      Returns:
        session used by the reader
      See Also:
        Gen2 Standard page 51, Gen2 Standard page 54

    - #### setSession

          public void setSession(int session)

      Sets the gen2 session for the reader. Gen2 maintains 4 independent sessions so that a tag can be inventoried in several different sessions simultaneously. Also, the session have different persistence properties which change tag read behavior.
      Parameters:
        `session` - the desired session
      See Also:
        Gen2 Standard page 51, Gen2 Standard page 54

    - #### getTagPopulationEstimate

          public int getTagPopulationEstimate()

      When performing inventory operations, the Impinj reader uses the gen2 protocol's random access method to arbitrate between populations of tags. Providing the reader with an estimate of the expected tag population can provide subtle improvements in tag read performance
      Returns:
        the current value for the estimated tag population

    - #### setTagPopulationEstimate

          public void setTagPopulationEstimate(int tagPopulationEstimate)

      When performing inventory operations, the Impinj reader uses the gen2 protocol's random access method to arbitrate between populations of tags. Providing the reader with an estimate of the expected tag population can provide subtle improvements in tag read performance
      Parameters:
        `tagPopulationEstimate` - the desired value for the tag population estimate

    - #### getLowDutyCycle

          public LowDutyCycleSettings getLowDutyCycle()

    - #### setLowDutyCycle

          public void setLowDutyCycle(LowDutyCycleSettings lowDutyCycle)

    - #### getFilters

          public FilterSettings getFilters()

    - #### setFilters

          public void setFilters(FilterSettings filters)

    - #### getTruncatedReply

          public TruncatedReplySettings getTruncatedReply()

    - #### setTruncatedReply

          public void setTruncatedReply(TruncatedReplySettings truncatedReply)

    - #### getReport

          public ReportConfig getReport()

      Returns:
        the configuration for Tag Reports

    - #### setReport

          public void setReport(ReportConfig report)

      Contains the configuration for Tag Reports
      Parameters:
        `report` - the report configuration

    - #### getAntennas

          public AntennaConfigGroup getAntennas()

    - #### setAntennas

          public void setAntennas(AntennaConfigGroup antennas)

    - #### getGpis

          public GpiConfigGroup getGpis()

    - #### setGpis

          public void setGpis(GpiConfigGroup gpis)

    - #### getGpos

          public GpoConfigGroup getGpos()

    - #### setGpos

          public void setGpos(GpoConfigGroup gpos)

    - #### getKeepalives

          public KeepaliveConfig getKeepalives()

    - #### setKeepalives

          public void setKeepalives(KeepaliveConfig keepalives)

    - #### getHoldReportsOnDisconnect

          public java.lang.Boolean getHoldReportsOnDisconnect()

      When the reader is running an inventory it may be collecting tag reports. If an application disconnects and reconnects, there may be a large number of tag reports. Applications may want to tell the reader to hold on to these reports when the application reconnects so that the application can reconfigure the reader (and even purge these reports).
      Returns:
        true if the reader is set to hold reports on disconnect and reconnect
      See Also:
        `ImpinjReader.resumeEventsAndReports()`

    - #### setHoldReportsOnDisconnect

          public void setHoldReportsOnDisconnect(java.lang.Boolean holdReportsOnDisconnect)

      When the reader is running an inventory it may be collecting tag reports. If an application disconnects and reconnects, there may be a large number of tag reports. Applications may want to tell the reader to hold on to these reports when the application reconnects so that the application can reconfigure the reader (and even purge these reports).
      Parameters:
        `holdReportsOnDisconnect` - set to true to hold reports on disconnect and reconnect.
      See Also:
        `ImpinjReader.resumeEventsAndReports()`

    - #### getStartOfAntennaEvent

          public java.lang.Boolean getStartOfAntennaEvent()

      The reader can be configured to send start-of-antenna events. This event is sent before an attempt to singulate all tags in the field of view of an antenna.
      Returns:
        true if the reader is set to send start-of-antenna events.
      See Also:
        `ImpinjReader.setAntennaStartListener(AntennaStartListener)`

    - #### setStartOfAntennaEvent

          public void setStartOfAntennaEvent(java.lang.Boolean startOfAntennaEvent)

      The reader can be configured to send start-of-antenna events. This event is sent before an attempt to singulate all tags in the field of view of an antenna.
      Parameters:
        `startOfAntennaEvent` - set to true to have reader send start-of-antenna events.
      See Also:
        `ImpinjReader.setAntennaStartListener(AntennaStartListener)`

    - #### getEndOfCycleEvent

          public java.lang.Boolean getEndOfCycleEvent()

      The reader can be configured to send end-of-cycle events. This event is sent when 'end of AISpec' is received from the reader, since SDK only adds one AISpec to the ROSpec.
      Returns:
        true if the reader is set to send end-of-cycle events.
      See Also:
        `ImpinjReader.setEndOfCycleListener(EndOfCycleListener)`

    - #### setEndOfCycleEvent

          public void setEndOfCycleEvent(java.lang.Boolean endOfCycleEvent)

      The reader can be configured to send end-of-cycle events. This event is sent when 'end of AISpec' is received from the reader, since SDK only adds one AISpec to the ROSpec.
      Parameters:
        `endOfCycleEvent` - set to true to have reader send end-of-cycle events.
      See Also:
        `ImpinjReader.setEndOfCycleListener(EndOfCycleListener)`

    - #### getTxFrequenciesInMhz

          public java.util.ArrayList<java.lang.Double> getTxFrequenciesInMhz()

    - #### setTxFrequenciesInMhz

          public void setTxFrequenciesInMhz(java.util.ArrayList<java.lang.Double> txFrequenciesInMhz)

    - #### getReducedPowerFrequenciesInMhz

          public java.util.ArrayList<java.lang.Double> getReducedPowerFrequenciesInMhz()

    - #### setReducedPowerFrequenciesInMhz

          public void setReducedPowerFrequenciesInMhz(java.util.ArrayList<java.lang.Double> reducedPowerFrequenciesInMhz)

    - #### getXArray

          @Deprecated
          public XArrayConfig getXArray()

      Deprecated.
      Deprecated. Please use getSpatialConfig(). Gets the xArray settings object that contains xArray specific configurations.
      Returns:
        An xArray settings object that contains xArray specific configurations.
      See Also:
        `getSpatialConfig()`

    - #### setXArray

          @Deprecated
          public void setXArray(XArrayConfig xArray)

      Deprecated.
      Deprecated. Please use setSpatialConfig(SpatialConfig). Sets the xArray settings object to be used to house xArray specific configurations.
      Parameters:
        `xArray` - An xArray settings object that will hold the xArray configuration.
      See Also:
        `setSpatialConfig(SpatialConfig)`

    - #### getSpatialConfig

          public SpatialConfig getSpatialConfig()

      Gets the reader settings object that contains configurations specific to readers with location and direction role capabilities.
      Returns:
        The reader settings object that contains configurations specific to readers with location and direction role capabilities.

    - #### setSpatialConfig

          public void setSpatialConfig(SpatialConfig spatialConfig)

      Sets the reader's settings object to be used to house configurations for readers with direction or location role capabilities.
      Parameters:
        `spatialConfig` - A reader settings object that will hold the configuration for the reader with direction or location role capabilities.

    - #### save

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

      Save the current settings object to a file in json
      Parameters:
        `path` - file path
      Throws:
        `java.io.IOException` - if the write fails