com.impinj.octane

## Class DirectionConfig

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

-     public class DirectionConfig
      extends java.lang.Object

  A container that holds all of the configuration options for xArray's Direction feature.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `DirectionConfig()` The default constructor, sets `DirectionMode` to `DirectionMode.HighPerformance` and the tag age interval to five seconds.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods Deprecated Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `enableSector(short sector)` Adds the specified sector to the list of sectors that should be monitored for tag entrances, exits, and updates.
    `java.lang.Short[]` | `getEnabledSectors()`
    `DirectionFieldOfView` | `getFieldOfView()`
    `boolean` | `getIsMaxTxPower()`
    `DirectionMode` | `getMode()`
    `short` | `getTagAgeIntervalSeconds()` The "age interval" specifies how long a tag needs to go unseen before it's removed from the population of tags tracked for direction and an exit report is sent.
    `double` | `getTxPowerinDbm()`
    `short` | `getUpdateIntervalSeconds()` Specifies how often update reports are sent when updates are enabled.
    `short` | `getUserTagPopulationLimit()`
    `boolean` | `isDiagnosticReportEnabled()` When enabled, diagnostic reports are generated at each update interval and sent to the application
    `boolean` | `isEntryReportEnabled()` When enabled, an entry report is sent immediately upon the tag entering the field of view of the reader.
    `boolean` | `isExitReportEnabled()` When enabled, an exit report is generated when the tag has not been seen by the reader in the tag age Interval.
    `boolean` | `isSectorConfigurationValid()` Deprecated.
    `boolean` | `isSectorEnabled(short sector)` Tests if the specified sector is in the list of sectors that should be monitored for tag entrances, exits, and updates.
    `boolean` | `isUpdateReportEnabled()` When update reports are enabled, direction reports are sent by the reader periodically for all tags in the direction database
    `void` | `removeAllSectors()` Removes all sectors from the list of sectors that should be monitored for tag entrances, exits, and updates.
    `void` | `removeSector(short sector)` Removes the specified sector from the list of sectors that should be monitored for tag entrances, exits, and updates.
    `void` | `setDiagnosticReportEnabled(boolean diagnosticReportEnabled)` When enabled, diagnostic reports are generated at each update interval and sent to the application
    `void` | `setEntryReportEnabled(boolean entryReportEnabled)` When enabled, an entry report is sent immediately upon the tag entering the field of view of the reader.
    `void` | `setExitReportEnabled(boolean exitReportEnabled)` When enabled, an exit report is generated when the tag has not been seen by the reader in the tag age Interval.
    `void` | `setFieldOfView(DirectionFieldOfView fieldOfView)` Sets the field of view for tag direction tracking.
    `void` | `setIsMaxTxPower(boolean maxTxPower)`
    `void` | `setMode(DirectionMode mode)`
    `void` | `setTagAgeIntervalSeconds(short tagAgeIntervalSeconds)` The "age interval" specifies how long a tag needs to go unseen before it's removed from the population of tags tracked for direction and an exit report is sent.
    `void` | `setTxPowerinDbm(double txPowerinDbm)`
    `void` | `setUpdateIntervalSeconds(short updateIntervalSeconds)` Specifies how often update reports are sent when updates are enabled.
    `void` | `setUpdateReportEnabled(boolean updateReportEnabled)`
    `void` | `setUserTagPopulationLimit(short userTagPopulationLimit)`

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

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

- - ### Constructor Detail

    - #### DirectionConfig

          public DirectionConfig()

      The default constructor, sets `DirectionMode` to `DirectionMode.HighPerformance` and the tag age interval to five seconds.

  - ### Method Detail

    - #### enableSector

          public void enableSector(short sector)

      Adds the specified sector to the list of sectors that should be monitored for tag entrances, exits, and updates.
      Parameters:
        `sector` - The desired sector to enable for the reader with direction role capabilities.

    - #### removeSector

          public void removeSector(short sector)

      Removes the specified sector from the list of sectors that should be monitored for tag entrances, exits, and updates. If the specified sector was never enabled, this call is a no-op.
      Parameters:
        `sector` - A number between 2 and 9 corresponding to the sector space beneath the xArray.

    - #### removeAllSectors

          public void removeAllSectors()

      Removes all sectors from the list of sectors that should be monitored for tag entrances, exits, and updates. If no sector was enabled, this call is a no-op.

    - #### isSectorEnabled

          public boolean isSectorEnabled(short sector)

      Tests if the specified sector is in the list of sectors that should be monitored for tag entrances, exits, and updates.
      Parameters:
        `sector` - A number between 2 and 9 corresponding to the sector space beneath the xArray.
      Returns:
        true if the sector is part of the enabled sector set, false otherwise.

    - #### isSectorConfigurationValid

          @Deprecated
          public boolean isSectorConfigurationValid()

      Deprecated.
      Deprecated. Only valid for xArray readers. Not valid for xSpan readers. Tests that no two sectors in the set of enabled sectors are numerically consecutive, nor that both sectors 2 and 9 are enabled.
      Returns:
        true if the configuration follows the above rules, false otherwise.

    - #### getEnabledSectors

          public java.lang.Short[] getEnabledSectors()

      Returns:
        An array of short values corresponding to the sectors that should be included for tag direction monitoring.

    - #### getUserTagPopulationLimit

          public short getUserTagPopulationLimit()

      Returns:
        Returns the user specified tag population limit.

    - #### setUserTagPopulationLimit

          public void setUserTagPopulationLimit(short userTagPopulationLimit)

      Parameters:
        `userTagPopulationLimit` - A user specified tag population limit.

    - #### getIsMaxTxPower

          public boolean getIsMaxTxPower()

      Returns:
        Returns true if the reader is configured to be running at its max transmit power. False, if a custom power is being used.

    - #### setIsMaxTxPower

          public void setIsMaxTxPower(boolean maxTxPower)

      Parameters:
        `maxTxPower` - Set to true if the maximum reader transmit power is desired. Set false if a custom transmit power is desired.

    - #### getTxPowerinDbm

          public double getTxPowerinDbm()

      Returns:
        Returns the transmission power currently set for this direction tracking session.

    - #### setTxPowerinDbm

          public void setTxPowerinDbm(double txPowerinDbm)

      Parameters:
        `txPowerinDbm` - Sets the transmission power to be used

    - #### getTagAgeIntervalSeconds

          public short getTagAgeIntervalSeconds()

      The "age interval" specifies how long a tag needs to go unseen before it's removed from the population of tags tracked for direction and an exit report is sent.
      Returns:
        the current value for the tag age interval.

    - #### setTagAgeIntervalSeconds

          public void setTagAgeIntervalSeconds(short tagAgeIntervalSeconds)

      The "age interval" specifies how long a tag needs to go unseen before it's removed from the population of tags tracked for direction and an exit report is sent.
      Parameters:
        `tagAgeIntervalSeconds` - the desired value for the tag age interval

    - #### getUpdateIntervalSeconds

          public short getUpdateIntervalSeconds()

      Specifies how often update reports are sent when updates are enabled.
      Returns:
        the current value of the Report Interval.
      See Also:
        `LocationConfig.setUpdateReportEnabled(boolean)`

    - #### setUpdateIntervalSeconds

          public void setUpdateIntervalSeconds(short updateIntervalSeconds)

      Specifies how often update reports are sent when updates are enabled. This method sets that interval to the desired value in seconds.
      Parameters:
        `updateIntervalSeconds` - the time between report generation, in seconds. If the provided value is zero or negative, a value of 1 will be applied.
      See Also:
        `LocationConfig.setUpdateReportEnabled(boolean)`

    - #### isUpdateReportEnabled

          public boolean isUpdateReportEnabled()

      When update reports are enabled, direction reports are sent by the reader periodically for all tags in the direction database
      Returns:
        true if the update report is enabled
      See Also:
        `LocationReport`

    - #### setUpdateReportEnabled

          public void setUpdateReportEnabled(boolean updateReportEnabled)

      Parameters:
        `updateReportEnabled` - When true, update reports on the current population of tags will be sent.
      See Also:
        `LocationReport`

    - #### isEntryReportEnabled

          public boolean isEntryReportEnabled()

      When enabled, an entry report is sent immediately upon the tag entering the field of view of the reader.
      Returns:
        true if entry reports are enabled.
      See Also:
        `LocationReport`

    - #### setEntryReportEnabled

          public void setEntryReportEnabled(boolean entryReportEnabled)

      When enabled, an entry report is sent immediately upon the tag entering the field of view of the reader.
      Parameters:
        `entryReportEnabled` - true to enable entry reports
      See Also:
        `LocationReport`

    - #### isExitReportEnabled

          public boolean isExitReportEnabled()

      When enabled, an exit report is generated when the tag has not been seen by the reader in the tag age Interval.
      Returns:
        true if enabled
      See Also:
        `LocationConfig.setTagAgeIntervalSeconds(short)`, `LocationReport`

    - #### setExitReportEnabled

          public void setExitReportEnabled(boolean exitReportEnabled)

      When enabled, an exit report is generated when the tag has not been seen by the reader in the tag age Interval.
      Parameters:
        `exitReportEnabled` - true to enable exit reports
      See Also:
        `LocationReport`

    - #### isDiagnosticReportEnabled

          public boolean isDiagnosticReportEnabled()

      When enabled, diagnostic reports are generated at each update interval and sent to the application
      Returns:
        true if diagnostic reports are enabled
      See Also:
        `LocationReport`

    - #### setDiagnosticReportEnabled

          public void setDiagnosticReportEnabled(boolean diagnosticReportEnabled)

      When enabled, diagnostic reports are generated at each update interval and sent to the application
      Parameters:
        `diagnosticReportEnabled` - true to enable diagnostic reports
      See Also:
        `LocationReport`

    - #### getFieldOfView

          public DirectionFieldOfView getFieldOfView()

      Returns:
        The current field of view setting enabled, i.e. WIDE or NARROW

    - #### setFieldOfView

          public void setFieldOfView(DirectionFieldOfView fieldOfView)

      Sets the field of view for tag direction tracking. Narrow corresponds to ring 2, while Wide corresponds to ring 4.
      Parameters:
        `fieldOfView` - Determines which "rings" are enabled when reading and tracking tags.

    - #### getMode

          public DirectionMode getMode()

      Returns:
        The performance/sensitivity mode enabled for this direction reporting session.

    - #### setMode

          public void setMode(DirectionMode mode)

      Parameters:
        `mode` - Sets the performance/sensitivity mode for this direction reporting session.