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 enabled 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()`
    `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()` ReaderMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
    `ReportConfig` | `getReport()`
    `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.
    `int` | `getTagPopulationEstimate()` When performing inventory operations, the Impinj reader uses the gen2 protocol's random access method to arbitrate between populations of tags.
    `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` | `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)` ReaderMode is the preselected set of gen2 physical layer settings to optimize tag communications for a certain scenario and environment
    `void` | `setReport(ReportConfig report)` Contains the configuration for Tag Reports
    `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` | `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` | `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

          public ReaderMode getReaderMode()

      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

          public void setReaderMode(ReaderMode readerMode)

      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

    - #### 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)

    - #### 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()`

    - #### getTxFrequenciesInMhz

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

    - #### setTxFrequenciesInMhz

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

    - #### 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