### Navigation

- next
- previous |
- Indy ITK 1.8.0 documentation »

# Data Types and Defines

The IRI host libraries contain a number of unique data types to enable communication with the Indy Modules. Most of these data types have corresponding constants defined to indicate the meaning of specific literal values. The data types and their corresponding constant defines are described below.

For documentation of the IRI host library structures, see the Structures section of the API guide.

Name | Key References | API References | Brief Description
--- | --- | --- | ---
ipj_action | N/A | ipj_start(), ipj_resume(), ipj_stop() | A type of action to be started, resumed, or stopped by a module.
ipj_baud_rate | E_IPJ_KEY_DEVICE_BAUDRATE | N/A | A baud rate for a UART interface.
ipj_blockpermalock_action | E_IPJ_KEY_BLOCKPERMALOCK_ACTION | N/A | Action to be performed as part of a BlockPermalock operation.
ipj_connection_type | N/A | ipj_connect(), ipj_modify_connection() | A type of digital communication connection.
ipj_error | E_IPJ_KEY_FIRST_ERROR, E_IPJ_KEY_LAST_ERROR, E_IPJ_KEY_SYSTEM_ERROR | N/A | A type of error code reported by the module or the IRI host libraries.
ipj_handler_type | N/A | ipj_register_handler() | The type of a platform or report handler.
ipj_inventory_search_mode | E_IPJ_KEY_INVENTORY_SEARCH_MODE | N/A | A search mode for configuring tag inventory behavior.
ipj_inventory_select_flag | E_IPJ_KEY_INVENTORY_SELECT_FLAG | N/A | A specific tag selected flag.
ipj_key | N/A | ipj_set(), ipj_get(), ipj_set_value(), ipj_get_value(), ipj_bulk_set(), ipj_bulk_get(), ipj_get_info() | A key code used to interact with a module via IRI.
ipj_key_permissions | N/A | N/A | A permissions level for an IRI key code.
ipj_key_type | N/A | N/A | The data type of a key code.
ipj_mem_bank | E_IPJ_KEY_READ_MEM_BANK, E_IPJ_KEY_WRITE_MEM_BANK, E_IPJ_KEY_BLOCKPERMALOCK_MEM_BANK | N/A | A specific tag memory bank.
ipj_parity | N/A | N/A | A parity type for verifying data integrity.
ipj_qt_access_range | E_IPJ_KEY_QT_ACCESS_RANGE | N/A | An access range for a QT operation.
ipj_qt_action | E_IPJ_KEY_QT_ACTION | N/A | An action for a QT operation.
ipj_qt_data_profile | E_IPJ_KEY_QT_DATA_PROFILE | N/A | A data profile target for a QT operation.
ipj_qt_persistence | E_IPJ_KEY_QT_PERSISTENCE | N/A | A persistence setting for a QT operation.
ipj_region | E_IPJ_KEY_REGION_ID | N/A | A regulatory region for reader configuration.
ipj_report_id | N/A | N/A | A report type that describes a particular report from a module.
ipj_reset_type | N/A | ipj_reset() | A type of reset to be executed by a module.
ipj_select_action | E_IPJ_KEY_SELECT_ACTION | N/A | A specific select action to be performed as part of a select command.
ipj_select_target | E_IPJ_KEY_SELECT_TARGET | N/A | None
ipj_status_flag | E_IPJ_KEY_REPORT_CONTROL_STATUS | N/A | A specific status report type.
ipj_tag_flag | E_IPJ_KEY_REPORT_CONTROL_TAG | N/A | A specific tag report data field.
ipj_tag_operation_type | E_IPJ_KEY_TAG_OPERATION, E_IPJ_KEY_QT_TAG_OPERATION | N/A | A type of tag operation to be performed by a module.
ipj_test_id | E_IPJ_KEY_TEST_ID | N/A | A specific test to be performed by a module.
ipj_write_epc_length_control | E_IPJ_KEY_WRITE_EPC_LENGTH_CONTROL | N/A | A length value for writing tag EPCs.
ipj_product_id | E_IPJ_KEY_PRODUCT_ID | N/A | A product ID used to identify the model of a specific module.
ipj_product_sku | E_IPJ_KEY_PRODUCT_SKU | N/A | A SKU used to describe the hardware configuration of a module.
ipj_response_timestamp_flag | E_IPJ_KEY_RESPONSE_CONTROL_TIMESTAMP | N/A | A flag describing which module responses contain timestamps.
ipj_report_timestamp_flag | E_IPJ_KEY_REPORT_CONTROL_TIMESTAMP | N/A | A flag describing which module reports contain timestamps.
ipj_gpio_mode | E_IPJ_KEY_GPIO_MODE | N/A | A GPIO configuration mode.
ipj_gpio_state | E_IPJ_KEY_GPIO_STATE | N/A | A state of a GPIO on a module.
ipj_gpi_action | E_IPJ_KEY_GPIO_HI_ACTION, E_IPJ_KEY_GPIO_LO_ACTION | N/A | An action to be performed when a GPIO event is triggered.
ipj_idle_power_mode | E_IPJ_KEY_DEVICE_IDLE_POWER_MODE | N/A | A specific idle low power mode for configuring a module.
ipj_antenna | E_IPJ_KEY_ANTENNA_SEQUENCE | N/A | An identifier for antennas on arbitrary IRI based readers.
ipj_antenna_rs2000 | E_IPJ_KEY_ANTENNA_SEQUENCE | N/A | An identifier for antennas on Indy RS2000 modules.

## `ipj_action`

typedef uint32_t ipj_action

A type of action to be started, resumed, or stopped by a module.

Actions can be started by the IRI host using the ipj_start() function, resumed using the ipj_resume() function, and stopped using the ipj_stop() function.

API Reference: ipj_start(), ipj_resume(), ipj_stop()

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_ACTION_ALL` | `0` | `0x0`
`E_IPJ_ACTION_INVENTORY` | `1` | `0x1`
`E_IPJ_ACTION_TEST` | `2` | `0x2`
`E_IPJ_ACTION_GPIO` | `3` | `0x3`
`E_IPJ_ACTION_CLEAR_ERROR` | `4` | `0x4`
`E_IPJ_ACTION_STANDBY` | `6` | `0x6`
`E_IPJ_ACTION_SLEEP` | `7` | `0x7`
`E_IPJ_ACTION_NONE` | `15` | `0xF`

## `ipj_baud_rate`

typedef uint32_t ipj_baud_rate

A baud rate for a UART interface.

For more details on changing baud rates during operation, see the Change Baud Rate configuration example

Key Reference: E_IPJ_KEY_DEVICE_BAUDRATE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_BAUD_RATE_BR9600` | `9600` | `0x2580`
`E_IPJ_BAUD_RATE_BR14400` | `14400` | `0x3840`
`E_IPJ_BAUD_RATE_BR19200` | `19200` | `0x4B00`
`E_IPJ_BAUD_RATE_BR38400` | `38400` | `0x9600`
`E_IPJ_BAUD_RATE_BR57600` | `57600` | `0xE100`
`E_IPJ_BAUD_RATE_BR115200` | `115200` | `0x1C200`
`E_IPJ_BAUD_RATE_BR230400` | `230400` | `0x38400`
`E_IPJ_BAUD_RATE_BR460800` | `460800` | `0x70800`
`E_IPJ_BAUD_RATE_BR921600` | `921600` | `0xE1000`

## `ipj_blockpermalock_action`

typedef uint32_t ipj_blockpermalock_action

Action to be performed as part of a BlockPermalock operation.

For more information on how to use the BlockPermalock command, see the BlockPermalock configuration example.

Key Reference: E_IPJ_KEY_BLOCKPERMALOCK_ACTION

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_BLOCKPERMALOCK_ACTION_READ` | `0` | `0x0`
`E_IPJ_BLOCKPERMALOCK_ACTION_PERMALOCK` | `1` | `0x1`

## `ipj_connection_type`

typedef uint32_t ipj_connection_type

A type of digital communication connection.

API Reference: ipj_connect(), ipj_modify_connection()

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_CONNECTION_TYPE_SERIAL` | `0` | `0x0`

## `ipj_error`

typedef uint32_t ipj_error

A type of error code reported by the module or the IRI host libraries.

For more details on IRI error codes, see the IRI Error Codes section.

Key Reference: E_IPJ_KEY_FIRST_ERROR, E_IPJ_KEY_LAST_ERROR, E_IPJ_KEY_SYSTEM_ERROR

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_ERROR_SUCCESS` | `0` | `0x0`
`E_IPJ_ERROR_GENERAL_ERROR` | `1` | `0x1`
`E_IPJ_ERROR_SET_KEY_INVALID` | `2` | `0x2`
`E_IPJ_ERROR_SET_KEY_READ_ONLY` | `3` | `0x3`
`E_IPJ_ERROR_SET_KEY_OUT_OF_RANGE` | `4` | `0x4`
`E_IPJ_ERROR_GET_KEY_INVALID` | `5` | `0x5`
`E_IPJ_ERROR_GET_KEY_WRITE_ONLY` | `6` | `0x6`
`E_IPJ_ERROR_COMMAND_INVALID` | `7` | `0x7`
`E_IPJ_ERROR_COMMAND_START_FAILURE` | `8` | `0x8`
`E_IPJ_ERROR_COMMAND_DECODE_FAILURE` | `9` | `0x9`
`E_IPJ_ERROR_COMMAND_ENCODE_FAILURE` | `10` | `0xA`
`E_IPJ_ERROR_COMMAND_STALLED` | `11` | `0xB`
`E_IPJ_ERROR_VALUE_INVALID` | `12` | `0xC`
`E_IPJ_ERROR_MORE_THAN_ONE_COMMAND_RECEIVED` | `13` | `0xD`
`E_IPJ_ERROR_NOT_IMPLEMENTED` | `14` | `0xE`
`E_IPJ_ERROR_INVALID_PRODUCT_CONFIGURATION` | `15` | `0xF`
`E_IPJ_ERROR_INVALID_FACTORY_SETTINGS` | `16` | `0x10`
`E_IPJ_ERROR_RESPONSE_ENCODE_FAILURE` | `17` | `0x11`
`E_IPJ_ERROR_COMMAND_VERIFY_FAILURE` | `18` | `0x12`
`E_IPJ_ERROR_INTERNAL_NON_RECOVERABLE` | `19` | `0x13`
`E_IPJ_ERROR_TEMPLATE_DECODE_FAILURE` | `20` | `0x14`
`E_IPJ_ERROR_SYSTEM_IN_ERROR_STATE` | `21` | `0x15`
`E_IPJ_ERROR_TEST_ERROR` | `22` | `0x16`
`E_IPJ_ERROR_STORED_SETTING_DECODE` | `23` | `0x17`
`E_IPJ_ERROR_VALUE_INDEX_OUT_OF_RANGE` | `24` | `0x18`
`E_IPJ_ERROR_BANK_INDEX_OUT_OF_RANGE` | `25` | `0x19`
`E_IPJ_ERROR_INVALID_PRODUCT_CALIBRATION` | `26` | `0x1A`
`E_IPJ_ERROR_REPORT_SIZE_WOULD_OVERFLOW` | `27` | `0x1B`
`E_IPJ_ERROR_FIXED_HARDWARE_SETTINGS_LOAD_ERROR` | `28` | `0x1C`
`E_IPJ_ERROR_GEN2_TAG_OTHER_ERROR` | `16777217` | `0x1000001`
`E_IPJ_ERROR_GEN2_TAG_MEMORY_OVERRUN` | `16777218` | `0x1000002`
`E_IPJ_ERROR_GEN2_TAG_MEMORY_LOCKED` | `16777219` | `0x1000003`
`E_IPJ_ERROR_GEN2_TAG_INSUFFICIENT_POWER` | `16777220` | `0x1000004`
`E_IPJ_ERROR_GEN2_TAG_NON_SPECIFIC_ERROR` | `16777221` | `0x1000005`
`E_IPJ_ERROR_API_DEVICE_NOT_INITIALIZED` | `33554433` | `0x2000001`
`E_IPJ_ERROR_API_SERIAL_PORT_ERROR` | `33554434` | `0x2000002`
`E_IPJ_ERROR_API_CONNECTION_READ_TIMEOUT` | `33554435` | `0x2000003`
`E_IPJ_ERROR_API_CONNECTION_WRITE_TIMEOUT` | `33554436` | `0x2000004`
`E_IPJ_ERROR_API_CONNECTION_WRITE_ERROR` | `33554437` | `0x2000005`
`E_IPJ_ERROR_API_RX_BUFF_TOO_SMALL` | `33554438` | `0x2000006`
`E_IPJ_ERROR_API_MESSAGE_INVALID` | `33554439` | `0x2000007`
`E_IPJ_ERROR_API_NO_HANDLER` | `33554440` | `0x2000008`
`E_IPJ_ERROR_API_INVALID_LOADER_BLOCK` | `33554441` | `0x2000009`
`E_IPJ_ERROR_API_RESPONSE_MISMATCH` | `33554442` | `0x200000A`
`E_IPJ_ERROR_API_INVALID_PARAMETER` | `33554443` | `0x200000B`
`E_IPJ_ERROR_API_NON_LT_PACKET_DETECTED` | `33554444` | `0x200000C`
`E_IPJ_ERROR_IRI_FRAME_DROPPED` | `50331649` | `0x3000001`
`E_IPJ_ERROR_IRI_FRAME_INVALID` | `50331650` | `0x3000002`
`E_IPJ_ERROR_MAC_GENERAL` | `67108865` | `0x4000001`
`E_IPJ_ERROR_MAC_CRC_MISMATCH` | `67108866` | `0x4000002`
`E_IPJ_ERROR_MAC_NO_TAG_RESPONSE` | `67108867` | `0x4000003`
`E_IPJ_ERROR_MAC_TAG_LOST` | `67108868` | `0x4000004`
`E_IPJ_ERROR_BTS_DEVICE_WATCHDOG_RESET` | `83886081` | `0x5000001`
`E_IPJ_ERROR_BTS_VALUE_INVALID` | `83886082` | `0x5000002`
`E_IPJ_ERROR_BTS_FLASH_WRITE` | `83886083` | `0x5000003`
`E_IPJ_ERROR_BTS_FLASH_READ` | `83886084` | `0x5000004`
`E_IPJ_ERROR_BTS_FLASH_ADDRESS` | `83886085` | `0x5000005`
`E_IPJ_ERROR_BTS_FLASH_ERASE` | `83886086` | `0x5000006`
`E_IPJ_ERROR_BTS_UNKNOWN_COMMAND` | `83886087` | `0x5000007`
`E_IPJ_ERROR_BTS_COMMAND_DECODE_FAILURE` | `83886088` | `0x5000008`
`E_IPJ_ERROR_TRANSCEIVER_FAILURE` | `100663297` | `0x6000001`
`E_IPJ_ERROR_LIMIT_PA_TEMPERATURE_MAX` | `117440513` | `0x7000001`

## `ipj_handler_type`

typedef uint32_t ipj_handler_type

The type of a platform or report handler.

Fore more information on the report handlers, see the Platform Interface section of the IRI API Guide.

API Reference: ipj_register_handler()

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_HANDLER_TYPE_PLATFORM_OPEN_PORT` | `0` | `0x0`
`E_IPJ_HANDLER_TYPE_PLATFORM_CLOSE_PORT` | `1` | `0x1`
`E_IPJ_HANDLER_TYPE_PLATFORM_TRANSMIT` | `2` | `0x2`
`E_IPJ_HANDLER_TYPE_PLATFORM_RECEIVE` | `3` | `0x3`
`E_IPJ_HANDLER_TYPE_PLATFORM_TIMESTAMP` | `4` | `0x4`
`E_IPJ_HANDLER_TYPE_PLATFORM_SLEEP_MS` | `5` | `0x5`
`E_IPJ_HANDLER_TYPE_REPORT` | `6` | `0x6`
`E_IPJ_HANDLER_TYPE_DIAGNOSTIC` | `7` | `0x7`
`E_IPJ_HANDLER_TYPE_PLATFORM_MODIFY_CONNECTION` | `8` | `0x8`
`E_IPJ_HANDLER_TYPE_PLATFORM_FLUSH_PORT` | `9` | `0x9`

## `ipj_inventory_search_mode`

typedef uint32_t ipj_inventory_search_mode

A search mode for configuring tag inventory behavior.

For more information on configuring search modes, see the Inventory Parameters configuration example.

Key Reference: E_IPJ_KEY_INVENTORY_SEARCH_MODE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_INVENTORY_SEARCH_MODE_AUTO_SEARCH` | `0` | `0x0`
`E_IPJ_INVENTORY_SEARCH_MODE_DUAL_TARGET` | `1` | `0x1`
`E_IPJ_INVENTORY_SEARCH_MODE_SINGLE_TARGET_A_TO_B` | `2` | `0x2`
`E_IPJ_INVENTORY_SEARCH_MODE_SINGLE_TARGET_B_TO_A` | `3` | `0x3`

## `ipj_inventory_select_flag`

typedef uint32_t ipj_inventory_select_flag

A specific tag selected flag.

For more information on configuring the selected flag, see the Inventory Parameters configuration example.

Key Reference: E_IPJ_KEY_INVENTORY_SELECT_FLAG

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_INVENTORY_SELECT_FLAG_AUTO_SL` | `0` | `0x0`
`E_IPJ_INVENTORY_SELECT_FLAG_ALL_SL` | `1` | `0x1`
`E_IPJ_INVENTORY_SELECT_FLAG_NOT_SL` | `2` | `0x2`
`E_IPJ_INVENTORY_SELECT_FLAG_SL` | `3` | `0x3`

## `ipj_key`

typedef uint32_t ipj_key

A key code used to interact with a module via IRI.

For a detailed listing of the key codes, see the Key Listing section of the API documentation.

API Reference: ipj_set(), ipj_get(), ipj_set_value(), ipj_get_value(), ipj_bulk_set(), ipj_bulk_get(), ipj_get_info()

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_KEY_BOOTSTRAP_VERSION` | `1` | `0x1`
`E_IPJ_KEY_BOOTSTRAP_CRC` | `2` | `0x2`
`E_IPJ_KEY_APPLICATION_VERSION` | `3` | `0x3`
`E_IPJ_KEY_APPLICATION_CRC` | `4` | `0x4`
`E_IPJ_KEY_SECONDARY_IMAGE_VERSION` | `5` | `0x5`
`E_IPJ_KEY_SECONDARY_IMAGE_CRC` | `6` | `0x6`
`E_IPJ_KEY_SECONDARY_IMAGE_TYPE` | `7` | `0x7`
`E_IPJ_KEY_APPLICATION_REVISION_ID` | `8` | `0x8`
`E_IPJ_KEY_APPLICATION_BUILD_ID` | `9` | `0x9`
`E_IPJ_KEY_PRODUCT_ID` | `10` | `0xA`
`E_IPJ_KEY_SERIAL_NUMBER` | `11` | `0xB`
`E_IPJ_KEY_TRANSCEIVER_ID` | `12` | `0xC`
`E_IPJ_KEY_MICROPROCESSOR_ID` | `13` | `0xD`
`E_IPJ_KEY_CUSTOMER_VERSION` | `14` | `0xE`
`E_IPJ_KEY_CUSTOMER_ID` | `15` | `0xF`
`E_IPJ_KEY_CUSTOMER_PRODUCT_ID` | `16` | `0x10`
`E_IPJ_KEY_CALIBRATION_INFO` | `17` | `0x11`
`E_IPJ_KEY_TEST_INFO` | `18` | `0x12`
`E_IPJ_KEY_PRODUCT_SKU` | `19` | `0x13`
`E_IPJ_KEY_LOT_DATE_CODE` | `20` | `0x14`
`E_IPJ_KEY_PRODUCT_KEY` | `21` | `0x15`
`E_IPJ_KEY_SECONDARY_IMAGE_LOCATION` | `22` | `0x16`
`E_IPJ_KEY_SECONDARY_IMAGE_SIZE` | `23` | `0x17`
`E_IPJ_KEY_UNIQUE_ID` | `24` | `0x18`
`E_IPJ_KEY_HARDWARE_REVISION` | `25` | `0x19`
`E_IPJ_KEY_SYSTEM_TIMESTAMP_MS` | `26` | `0x1A`
`E_IPJ_KEY_ACTIVE_ACTIONS` | `27` | `0x1B`
`E_IPJ_KEY_REGION_ID` | `32` | `0x20`
`E_IPJ_KEY_REGION_CHANNEL_TABLE` | `33` | `0x21`
`E_IPJ_KEY_REGION_CHANNEL_TABLE_SIZE` | `34` | `0x22`
`E_IPJ_KEY_REGION_ON_TIME_NOMINAL` | `35` | `0x23`
`E_IPJ_KEY_REGION_ON_TIME_ACCESS` | `36` | `0x24`
`E_IPJ_KEY_REGION_OFF_TIME` | `37` | `0x25`
`E_IPJ_KEY_REGION_OFF_TIME_SAME_CHANNEL` | `38` | `0x26`
`E_IPJ_KEY_REGION_START_FREQUENCY_KHZ` | `39` | `0x27`
`E_IPJ_KEY_REGION_CHANNEL_SPACING_KHZ` | `40` | `0x28`
`E_IPJ_KEY_REGION_RANDOM_HOP` | `41` | `0x29`
`E_IPJ_KEY_REGION_INDY_PLL_R_DIVIDER` | `42` | `0x2A`
`E_IPJ_KEY_REGION_RF_FILTER` | `43` | `0x2B`
`E_IPJ_KEY_ANTENNA_TX_POWER` | `49` | `0x31`
`E_IPJ_KEY_ANTENNA_SEQUENCE` | `50` | `0x32`
`E_IPJ_KEY_INVENTORY_TAG_POPULATION` | `64` | `0x40`
`E_IPJ_KEY_INVENTORY_SELECT_FLAG` | `65` | `0x41`
`E_IPJ_KEY_INVENTORY_SESSION` | `66` | `0x42`
`E_IPJ_KEY_INVENTORY_SEARCH_MODE` | `67` | `0x43`
`E_IPJ_KEY_FAST_ID_ENABLE` | `69` | `0x45`
`E_IPJ_KEY_TAG_FOCUS_ENABLE` | `70` | `0x46`
`E_IPJ_KEY_TAG_OPERATION_ENABLE` | `71` | `0x47`
`E_IPJ_KEY_TAG_OPERATION_RETRIES` | `72` | `0x48`
`E_IPJ_KEY_SELECT_ENABLE` | `80` | `0x50`
`E_IPJ_KEY_SELECT_TARGET` | `81` | `0x51`
`E_IPJ_KEY_SELECT_ACTION` | `82` | `0x52`
`E_IPJ_KEY_SELECT_MEM_BANK` | `83` | `0x53`
`E_IPJ_KEY_SELECT_POINTER` | `84` | `0x54`
`E_IPJ_KEY_SELECT_MASK_LENGTH` | `85` | `0x55`
`E_IPJ_KEY_SELECT_MASK_VALUE` | `86` | `0x56`
`E_IPJ_KEY_TAG_OPERATION` | `96` | `0x60`
`E_IPJ_KEY_ACCESS_PASSWORD` | `97` | `0x61`
`E_IPJ_KEY_KILL_PASSWORD` | `98` | `0x62`
`E_IPJ_KEY_READ_MEM_BANK` | `99` | `0x63`
`E_IPJ_KEY_READ_WORD_POINTER` | `100` | `0x64`
`E_IPJ_KEY_READ_WORD_COUNT` | `101` | `0x65`
`E_IPJ_KEY_WRITE_MEM_BANK` | `102` | `0x66`
`E_IPJ_KEY_WRITE_WORD_POINTER` | `103` | `0x67`
`E_IPJ_KEY_WRITE_WORD_COUNT` | `104` | `0x68`
`E_IPJ_KEY_WRITE_DATA` | `105` | `0x69`
`E_IPJ_KEY_LOCK_PAYLOAD` | `106` | `0x6A`
`E_IPJ_KEY_BLOCKPERMALOCK_ACTION` | `107` | `0x6B`
`E_IPJ_KEY_BLOCKPERMALOCK_MEM_BANK` | `108` | `0x6C`
`E_IPJ_KEY_BLOCKPERMALOCK_BLOCK_POINTER` | `109` | `0x6D`
`E_IPJ_KEY_BLOCKPERMALOCK_BLOCK_RANGE` | `110` | `0x6E`
`E_IPJ_KEY_BLOCKPERMALOCK_MASK` | `111` | `0x6F`
`E_IPJ_KEY_WRITE_EPC_LENGTH_CONTROL` | `112` | `0x70`
`E_IPJ_KEY_WRITE_EPC_LENGTH_VALUE` | `113` | `0x71`
`E_IPJ_KEY_WRITE_EPC_AFI_CONTROL` | `114` | `0x72`
`E_IPJ_KEY_WRITE_EPC_AFI_VALUE` | `115` | `0x73`
`E_IPJ_KEY_QT_ACTION` | `116` | `0x74`
`E_IPJ_KEY_QT_PERSISTENCE` | `117` | `0x75`
`E_IPJ_KEY_QT_DATA_PROFILE` | `118` | `0x76`
`E_IPJ_KEY_QT_ACCESS_RANGE` | `119` | `0x77`
`E_IPJ_KEY_QT_TAG_OPERATION` | `120` | `0x78`
`E_IPJ_KEY_AUTOSTOP_DURATION_MS` | `137` | `0x89`
`E_IPJ_KEY_AUTOSTOP_TAG_COUNT` | `139` | `0x8B`
`E_IPJ_KEY_AUTOSTOP_ROUND_COUNT` | `140` | `0x8C`
`E_IPJ_KEY_REPORT_CONTROL_TAG` | `161` | `0xA1`
`E_IPJ_KEY_REPORT_CONTROL_STATUS` | `162` | `0xA2`
`E_IPJ_KEY_REPORT_CONTROL_TIMESTAMP` | `163` | `0xA3`
`E_IPJ_KEY_RESPONSE_CONTROL_TIMESTAMP` | `164` | `0xA4`
`E_IPJ_KEY_TEMPERATURE_INTERNAL` | `176` | `0xB0`
`E_IPJ_KEY_TEMPERATURE_EXTERNAL` | `177` | `0xB1`
`E_IPJ_KEY_TEMPERATURE_PA` | `178` | `0xB2`
`E_IPJ_KEY_GPIO_MODE` | `192` | `0xC0`
`E_IPJ_KEY_GPIO_STATE` | `193` | `0xC1`
`E_IPJ_KEY_GPIO_HI_ACTION` | `194` | `0xC2`
`E_IPJ_KEY_GPIO_LO_ACTION` | `195` | `0xC3`
`E_IPJ_KEY_GPIO_DEBOUNCE_MS` | `197` | `0xC5`
`E_IPJ_KEY_GPIO_CURRENT_STATE` | `198` | `0xC6`
`E_IPJ_KEY_RF_MODE` | `208` | `0xD0`
`E_IPJ_KEY_FIRST_ERROR` | `224` | `0xE0`
`E_IPJ_KEY_LAST_ERROR` | `225` | `0xE1`
`E_IPJ_KEY_SYSTEM_ERROR` | `226` | `0xE2`
`E_IPJ_KEY_DEVICE_BAUDRATE` | `256` | `0x100`
`E_IPJ_KEY_DEVICE_IDLE_POWER_MODE` | `257` | `0x101`
`E_IPJ_KEY_ONBOOT_START_ACTION` | `258` | `0x102`
`E_IPJ_KEY_ENABLE_LT_REPORTS` | `259` | `0x103`
`E_IPJ_KEY_IN_BOOTSTRAP` | `260` | `0x104`
`E_IPJ_KEY_EXTERNAL_ANTENNA_MUX_ENABLE` | `512` | `0x200`
`E_IPJ_KEY_EXTERNAL_ANTENNA_MUX_NUM_ANTENNAS` | `513` | `0x201`
`E_IPJ_KEY_EXTERNAL_ANTENNA_MUX_PHYSICAL_PORT` | `514` | `0x202`
`E_IPJ_KEY_EXTERNAL_ANTENNA_MUX_DELAY_MICROSECONDS` | `515` | `0x203`
`E_IPJ_KEY_ANTENNA_SEQUENCE_OPTION` | `544` | `0x220`
`E_IPJ_KEY_ANTENNA_DESCRIPTORS` | `545` | `0x221`
`E_IPJ_KEY_ANTENNA_PHYSICAL_PORT` | `546` | `0x222`
`E_IPJ_KEY_TEST_ID` | `1024` | `0x400`
`E_IPJ_KEY_TEST_PARAMETERS` | `1025` | `0x401`
`E_IPJ_KEY_TEST_RESULT_1` | `1026` | `0x402`
`E_IPJ_KEY_TEST_RESULT_2` | `1027` | `0x403`
`E_IPJ_KEY_TEST_RESULT_3` | `1028` | `0x404`
`E_IPJ_KEY_TEST_DATA` | `1029` | `0x405`
`E_IPJ_KEY_TEST_FREQUENCY` | `1030` | `0x406`
`E_IPJ_KEY_TEST_POWER` | `1031` | `0x407`
`E_IPJ_KEY_TEST_RF_MODE` | `1032` | `0x408`
`E_IPJ_KEY_TEST_TIME` | `1033` | `0x409`
`E_IPJ_KEY_TEST_EVENT` | `1034` | `0x40A`
`E_IPJ_KEY_TEST_REPORTS` | `1035` | `0x40B`
`E_IPJ_KEY_TEST_SYSTEM` | `1036` | `0x40C`
`E_IPJ_KEY_TEST_DEBUG_PORT` | `1037` | `0x40D`
`E_IPJ_KEY_GENERIC_DATA` | `3072` | `0xC00`
`E_IPJ_KEY_OEM_DATA` | `3073` | `0xC01`
`E_IPJ_KEY_BLOCK_WRITE_OVERRIDE` | `4120` | `0x1018`
`E_IPJ_KEY_SJC_CONTROL` | `4123` | `0x101B`
`E_IPJ_KEY_STORED_SETTINGS_LOAD_STATUS` | `4129` | `0x1021`
`E_IPJ_KEY_PA_DIE_TEMPERATURE_TX_DUTY_CYCLE_LIMIT` | `4130` | `0x1022`
`E_IPJ_KEY_TEMP_COMP_OFFSETS` | `4131` | `0x1023`

## `ipj_key_permissions`

typedef uint32_t ipj_key_permissions

A permissions level for an IRI key code.

For a detailed listing of the keys and their permissions, see the Key Listing section of the API documentation.

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_KEY_PERMISSIONS_READ_ONLY` | `0` | `0x0`
`E_IPJ_KEY_PERMISSIONS_WRITE_ONLY` | `1` | `0x1`
`E_IPJ_KEY_PERMISSIONS_READ_WRITE` | `2` | `0x2`

## `ipj_key_type`

typedef uint32_t ipj_key_type

The data type of a key code.

For a detailed listing of the keys and their data types, see the Key Listing section of the API documentation.

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_KEY_TYPE_UINT32` | `0` | `0x0`
`E_IPJ_KEY_TYPE_UINT16` | `1` | `0x1`
`E_IPJ_KEY_TYPE_UINT8` | `2` | `0x2`
`E_IPJ_KEY_TYPE_INT32` | `3` | `0x3`
`E_IPJ_KEY_TYPE_INT16` | `4` | `0x4`
`E_IPJ_KEY_TYPE_INT8` | `5` | `0x5`
`E_IPJ_KEY_TYPE_BOOL` | `6` | `0x6`

## `ipj_mem_bank`

typedef uint32_t ipj_mem_bank

A specific tag memory bank.

For more details on reading tag memory, see the Read configuration example.

Key Reference: E_IPJ_KEY_READ_MEM_BANK, E_IPJ_KEY_WRITE_MEM_BANK, E_IPJ_KEY_BLOCKPERMALOCK_MEM_BANK

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_MEM_BANK_RESERVED` | `0` | `0x0`
`E_IPJ_MEM_BANK_EPC` | `1` | `0x1`
`E_IPJ_MEM_BANK_TID` | `2` | `0x2`
`E_IPJ_MEM_BANK_USER` | `3` | `0x3`

## `ipj_parity`

typedef uint32_t ipj_parity

A parity type for verifying data integrity.

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_PARITY_PNONE` | `0` | `0x0`
`E_IPJ_PARITY_PEVEN` | `1` | `0x1`
`E_IPJ_PARITY_PODD` | `2` | `0x2`

## `ipj_qt_access_range`

typedef uint32_t ipj_qt_access_range

An access range for a QT operation.

For more information on how to use the QT operation, see the QT configuration example.

Key Reference: E_IPJ_KEY_QT_ACCESS_RANGE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_QT_ACCESS_RANGE_NORMAL` | `0` | `0x0`
`E_IPJ_QT_ACCESS_RANGE_SHORT` | `1` | `0x1`

## `ipj_qt_action`

typedef uint32_t ipj_qt_action

An action for a QT operation.

For more information on how to use the QT operation, see the QT configuration example.

Key Reference: E_IPJ_KEY_QT_ACTION

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_QT_ACTION_READ` | `0` | `0x0`
`E_IPJ_QT_ACTION_WRITE` | `1` | `0x1`

## `ipj_qt_data_profile`

typedef uint32_t ipj_qt_data_profile

A data profile target for a QT operation.

For more information on how to use the QT operation, see the QT configuration example.

Key Reference: E_IPJ_KEY_QT_DATA_PROFILE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_QT_DATA_PROFILE_PRIVATE` | `0` | `0x0`
`E_IPJ_QT_DATA_PROFILE_PUBLIC` | `1` | `0x1`

## `ipj_qt_persistence`

typedef uint32_t ipj_qt_persistence

A persistence setting for a QT operation.

For more information on how to use the QT operation, see the QT configuration example.

Key Reference: E_IPJ_KEY_QT_PERSISTENCE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_QT_PERSISTENCE_TEMPORARY` | `0` | `0x0`
`E_IPJ_QT_PERSISTENCE_PERMANENT` | `1` | `0x1`

## `ipj_region`

typedef uint32_t ipj_region

A regulatory region for reader configuration.

Refer to the Regulatory Region section of the documentation for a list of supported regions.

Key Reference: E_IPJ_KEY_REGION_ID

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_REGION_FCC_PART_15_247` | `0` | `0x0`
`E_IPJ_REGION_HONG_KONG_920_925_MHZ` | `3` | `0x3`
`E_IPJ_REGION_TAIWAN_922_928_MHZ` | `4` | `0x4`
`E_IPJ_REGION_ETSI_EN_302_208_V1_4_1` | `7` | `0x7`
`E_IPJ_REGION_KOREA_917_921_MHZ` | `8` | `0x8`
`E_IPJ_REGION_MALAYSIA_919_923_MHZ` | `9` | `0x9`
`E_IPJ_REGION_CHINA_920_925_MHZ` | `10` | `0xA`
`E_IPJ_REGION_SOUTH_AFRICA_915_919_MHZ` | `12` | `0xC`
`E_IPJ_REGION_BRAZIL_902_907_AND_915_928_MHZ` | `13` | `0xD`
`E_IPJ_REGION_THAILAND_920_925_MHZ` | `14` | `0xE`
`E_IPJ_REGION_SINGAPORE_920_925_MHZ` | `15` | `0xF`
`E_IPJ_REGION_AUSTRALIA_920_926_MHZ` | `16` | `0x10`
`E_IPJ_REGION_INDIA_865_867_MHZ` | `17` | `0x11`
`E_IPJ_REGION_URUGUAY_916_928_MHZ` | `18` | `0x12`
`E_IPJ_REGION_VIETNAM_920_925_MHZ` | `19` | `0x13`
`E_IPJ_REGION_ISRAEL_915_917_MHZ` | `20` | `0x14`
`E_IPJ_REGION_PHILIPPINES_918_920_MHZ` | `21` | `0x15`
`E_IPJ_REGION_INDONESIA_923_925_MHZ` | `23` | `0x17`
`E_IPJ_REGION_NEW_ZEALAND_921P5_928_MHZ` | `24` | `0x18`
`E_IPJ_REGION_JAPAN_916_921_MHZ_NO_LBT` | `25` | `0x19`
`E_IPJ_REGION_PERU_916_928_MHZ` | `26` | `0x1A`
`E_IPJ_REGION_RUSSIA_916_921_MHZ` | `27` | `0x1B`
`E_IPJ_REGION_CUSTOM` | `256` | `0x100`

## `ipj_report_id`

typedef uint32_t ipj_report_id

A report type that describes a particular report from a module.

For more information about the report handler functions, see the report handler section of the API guide.

For more information on how to read data out of reports, see the Reading Data From Reports configuration example.

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_REPORT_ID_TAG_OPERATION_REPORT` | `2` | `0x2`
`E_IPJ_REPORT_ID_STOP_REPORT` | `5` | `0x5`
`E_IPJ_REPORT_ID_TEST_REPORT` | `12` | `0xC`
`E_IPJ_REPORT_ID_ERROR_REPORT` | `13` | `0xD`
`E_IPJ_REPORT_ID_STATUS_REPORT` | `14` | `0xE`
`E_IPJ_REPORT_ID_GPIO_REPORT` | `15` | `0xF`
`E_IPJ_REPORT_ID_IDD_REPORT` | `16` | `0x10`

## `ipj_reset_type`

typedef uint32_t ipj_reset_type

A type of reset to be executed by a module.

This type is used for one of the arguments of the API ipj_reset(), which resets a module in the desired fashion.

API Reference: ipj_reset()

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_RESET_TYPE_SOFT` | `0` | `0x0`
`E_IPJ_RESET_TYPE_TO_BOOTLOADER` | `1` | `0x1`
`E_IPJ_RESET_TYPE_FACTORY_RESTORE` | `2` | `0x2`

## `ipj_select_action`

typedef uint32_t ipj_select_action

A specific select action to be performed as part of a select command.

Used to specify what logical action should be performed on the specified flag.

For more information about configuring the select operation, see the Select configuration example.

Key Reference: E_IPJ_KEY_SELECT_ACTION

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_SELECT_ACTION_ASLINVA_DSLINVB` | `0` | `0x0`
`E_IPJ_SELECT_ACTION_ASLINVA_NOTHING` | `1` | `0x1`
`E_IPJ_SELECT_ACTION_NOTHING_DSLINVB` | `2` | `0x2`
`E_IPJ_SELECT_ACTION_NSLINVS_NOTHING` | `3` | `0x3`
`E_IPJ_SELECT_ACTION_DSLINVB_ASLINVA` | `4` | `0x4`
`E_IPJ_SELECT_ACTION_DSLINVB_NOTHING` | `5` | `0x5`
`E_IPJ_SELECT_ACTION_NOTHING_ASLINVA` | `6` | `0x6`
`E_IPJ_SELECT_ACTION_NOTHING_NSLINVS` | `7` | `0x7`

## `ipj_select_target`

typedef uint32_t ipj_select_target

Used to specify which flag should be targeted by a select command.

For more information about configuring the select operation, see the Select configuration example.

Key Reference: E_IPJ_KEY_SELECT_TARGET

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_SELECT_TARGET_SESSION_S0` | `0` | `0x0`
`E_IPJ_SELECT_TARGET_SESSION_S1` | `1` | `0x1`
`E_IPJ_SELECT_TARGET_SESSION_S2` | `2` | `0x2`
`E_IPJ_SELECT_TARGET_SESSION_S3` | `3` | `0x3`
`E_IPJ_SELECT_TARGET_SL_FLAG` | `4` | `0x4`
`E_IPJ_SELECT_TARGET_RFU_1` | `5` | `0x5`
`E_IPJ_SELECT_TARGET_RFU_2` | `6` | `0x6`
`E_IPJ_SELECT_TARGET_RFU_3` | `7` | `0x7`

## `ipj_status_flag`

typedef uint32_t ipj_status_flag

A specific status report type.

Used to specify which status reports are generated by a module.

For an example of how to configure and use status reports, see the Measuring Reverse Power configuration example.

Key Reference: E_IPJ_KEY_REPORT_CONTROL_STATUS

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_STATUS_FLAG_BIT_CHANNEL_ACTIVITY` | `1` | `0x1`
`E_IPJ_STATUS_FLAG_BIT_IDD` | `2` | `0x2`

## `ipj_tag_flag`

typedef uint32_t ipj_tag_flag

A specific tag report data field.

Used to specify which data fields should be included in tag reports.

For an example of how to configure and use tag operation reports, see the Report Field Configuration configuration example.

Key Reference: E_IPJ_KEY_REPORT_CONTROL_TAG

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_TAG_FLAG_BIT_EPC` | `1` | `0x1`
`E_IPJ_TAG_FLAG_BIT_TID` | `2` | `0x2`
`E_IPJ_TAG_FLAG_BIT_PC` | `4` | `0x4`
`E_IPJ_TAG_FLAG_BIT_XPC` | `8` | `0x8`
`E_IPJ_TAG_FLAG_BIT_CRC` | `16` | `0x10`
`E_IPJ_TAG_FLAG_BIT_TIMESTAMP` | `32` | `0x20`
`E_IPJ_TAG_FLAG_BIT_RSSI` | `64` | `0x40`
`E_IPJ_TAG_FLAG_BIT_PHASE` | `128` | `0x80`
`E_IPJ_TAG_FLAG_BIT_CHANNEL` | `256` | `0x100`
`E_IPJ_TAG_FLAG_BIT_ANTENNA` | `512` | `0x200`
`E_IPJ_TAG_FLAG_BIT_RETRIES` | `1024` | `0x400`

## `ipj_tag_operation_type`

typedef uint32_t ipj_tag_operation_type

A type of tag operation to be performed by a module.

Used to specify what operation should be performed during an Access or QT operation.

For more information about configuring the Access operation, see the Access configuration example.

For more information on how to use the QT operation, see the QT configuration example.

Key Reference: E_IPJ_KEY_TAG_OPERATION, E_IPJ_KEY_QT_TAG_OPERATION

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_TAG_OPERATION_TYPE_NONE` | `0` | `0x0`
`E_IPJ_TAG_OPERATION_TYPE_READ` | `1` | `0x1`
`E_IPJ_TAG_OPERATION_TYPE_WRITE` | `2` | `0x2`
`E_IPJ_TAG_OPERATION_TYPE_LOCK` | `3` | `0x3`
`E_IPJ_TAG_OPERATION_TYPE_KILL` | `4` | `0x4`
`E_IPJ_TAG_OPERATION_TYPE_BLOCKPERMALOCK` | `5` | `0x5`
`E_IPJ_TAG_OPERATION_TYPE_WRITE_EPC` | `6` | `0x6`
`E_IPJ_TAG_OPERATION_TYPE_QT` | `7` | `0x7`

## `ipj_test_id`

typedef uint32_t ipj_test_id

A specific test to be performed by a module.

Note

The test commands are intended for engineering use only, and should not be deployed in production systems. Their behaviors are subject to change when firmware is updated.

For more details on using the test commands, see the Test Commands configuration examples.

Key Reference: E_IPJ_KEY_TEST_ID

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_TEST_ID_NONE` | `0` | `0x0`
`E_IPJ_TEST_ID_GENERIC` | `1` | `0x1`
`E_IPJ_TEST_ID_BIST` | `2` | `0x2`
`E_IPJ_TEST_ID_MEMORY_READ` | `3` | `0x3`
`E_IPJ_TEST_ID_MEMORY_WRITE` | `4` | `0x4`
`E_IPJ_TEST_ID_TRANSCEIVER_READ` | `5` | `0x5`
`E_IPJ_TEST_ID_TRANSCEIVER_WRITE` | `6` | `0x6`
`E_IPJ_TEST_ID_SET_FREQUENCY` | `7` | `0x7`
`E_IPJ_TEST_ID_CW_CONTROL` | `8` | `0x8`
`E_IPJ_TEST_ID_PRBS_CONTROL` | `9` | `0x9`
`E_IPJ_TEST_ID_GEN2_TX_CONTROL` | `10` | `0xA`
`E_IPJ_TEST_ID_TRANSCEIVER_READ_MODIFY_WRITE` | `11` | `0xB`
`E_IPJ_TEST_ID_CALIBRATE_BEGIN` | `101` | `0x65`
`E_IPJ_TEST_ID_CALIBRATE_END` | `102` | `0x66`
`E_IPJ_TEST_ID_CALIBRATE_FORWARD_POWER` | `103` | `0x67`
`E_IPJ_TEST_ID_CALIBRATE_REVERSE_POWER` | `104` | `0x68`
`E_IPJ_TEST_ID_CALIBRATE_DC_OFFSET` | `105` | `0x69`
`E_IPJ_TEST_ID_CALIBRATE_PA_BIAS` | `106` | `0x6A`
`E_IPJ_TEST_ID_CALIBRATE_GROSS_GAIN` | `107` | `0x6B`
`E_IPJ_TEST_ID_CALIBRATE_RSSI` | `108` | `0x6C`
`E_IPJ_TEST_ID_CALIBRATE_TEMPERATURE` | `109` | `0x6D`
`E_IPJ_TEST_ID_CALIBRATE_TX_PRE_DISTORTION` | `110` | `0x6E`
`E_IPJ_TEST_ID_CALIBRATE_SET_KEY` | `111` | `0x6F`
`E_IPJ_TEST_ID_CALIBRATE_FINALIZE_KEYS` | `112` | `0x70`
`E_IPJ_TEST_ID_CALIBRATE_NOMINAL_GG` | `113` | `0x71`
`E_IPJ_TEST_ID_HARDWARE_CONTROL` | `201` | `0xC9`
`E_IPJ_TEST_ID_INVENTORY_CONTROL` | `202` | `0xCA`
`E_IPJ_TEST_ID_GENERIC_TX_CONTROL` | `203` | `0xCB`
`E_IPJ_TEST_ID_POWER_SCALAR_CONTROL` | `204` | `0xCC`
`E_IPJ_TEST_ID_GROSS_GAIN_CONTROL` | `205` | `0xCD`
`E_IPJ_TEST_ID_PA_BIAS_CONTROL` | `206` | `0xCE`
`E_IPJ_TEST_ID_GENERIC_RX_CONTROL` | `207` | `0xCF`
`E_IPJ_TEST_ID_USER_DAC_CONTROL` | `208` | `0xD0`
`E_IPJ_TEST_ID_USER_ADC_CONTROL` | `209` | `0xD1`
`E_IPJ_TEST_ID_AUX_DAC_CONTROL` | `210` | `0xD2`
`E_IPJ_TEST_ID_AUX_ADC_CONTROL` | `211` | `0xD3`
`E_IPJ_TEST_ID_GPIO_CONTROL` | `212` | `0xD4`
`E_IPJ_TEST_ID_DEBUG_UART_CONTROL` | `213` | `0xD5`
`E_IPJ_TEST_ID_TEMPERATURE_CONTROL` | `214` | `0xD6`
`E_IPJ_TEST_ID_RF_PROFILE_CONTROL` | `215` | `0xD7`
`E_IPJ_TEST_ID_SENSOR_CONTROL` | `216` | `0xD8`
`E_IPJ_TEST_ID_CALIBRATION_CONTROL` | `217` | `0xD9`
`E_IPJ_TEST_ID_ERROR_CONTROL` | `218` | `0xDA`
`E_IPJ_TEST_ID_RF_SWITCH_CONTROL` | `219` | `0xDB`
`E_IPJ_TEST_ID_GPIO32_CONTROL` | `220` | `0xDC`
`E_IPJ_TEST_ID_DAC_CONTROL` | `221` | `0xDD`
`E_IPJ_TEST_ID_ADC_CONTROL` | `222` | `0xDE`
`E_IPJ_TEST_ID_DEBUG_INFO` | `223` | `0xDF`
`E_IPJ_TEST_ID_TAG_REPORT_GENERATION` | `224` | `0xE0`
`E_IPJ_TEST_ID_ANTENNA_CHARACTERIZATION` | `225` | `0xE1`
`E_IPJ_TEST_ID_CLOSED_LOOP_POWER_CONTROL` | `226` | `0xE2`
`E_IPJ_TEST_ID_SIMPLE_FORWARD_POWER_CALIBRATION` | `227` | `0xE3`
`E_IPJ_TEST_ID_SIMPLE_GROSS_GAIN_CALIBRATION` | `228` | `0xE4`
`E_IPJ_TEST_ID_STACK_USAGE` | `229` | `0xE5`

## `ipj_write_epc_length_control`

typedef uint32_t ipj_write_epc_length_control

A length value for writing tag EPCs.

For an example of how to use the Write EPC operation, see the Write EPC configuration example.

Key Reference: E_IPJ_KEY_WRITE_EPC_LENGTH_CONTROL

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_WRITE_EPC_LENGTH_CONTROL_AUTO` | `0` | `0x0`
`E_IPJ_WRITE_EPC_LENGTH_CONTROL_USER_VALUE` | `1` | `0x1`
`E_IPJ_WRITE_EPC_LENGTH_CONTROL_ZERO` | `2` | `0x2`
`E_IPJ_WRITE_EPC_LENGTH_CONTROL_NO_CHANGE` | `3` | `0x3`

## `ipj_product_id`

typedef uint32_t ipj_product_id

A product ID used to identify the model of a specific module.

Key Reference: E_IPJ_KEY_PRODUCT_ID

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_PRODUCT_ID_NONE` | `0` | `0x0`
`E_IPJ_PRODUCT_ID_RS500` | `1` | `0x1`
`E_IPJ_PRODUCT_ID_RESERVED_2` | `2` | `0x2`
`E_IPJ_PRODUCT_ID_RS2000` | `3` | `0x3`
`E_IPJ_PRODUCT_ID_IRD_1` | `4` | `0x4`
`E_IPJ_PRODUCT_ID_RS1000` | `5` | `0x5`

## `ipj_product_sku`

typedef uint32_t ipj_product_sku

A SKU used to describe the hardware configuration of a module.

For more details on SKUs for each module, see the Indy Module Datasheets.

Key Reference: E_IPJ_KEY_PRODUCT_SKU

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_PRODUCT_SKU_NONE` | `0` | `0x0`
`E_IPJ_PRODUCT_SKU_1` | `1` | `0x1`
`E_IPJ_PRODUCT_SKU_2` | `2` | `0x2`
`E_IPJ_PRODUCT_SKU_3` | `3` | `0x3`

## `ipj_response_timestamp_flag`

typedef uint32_t ipj_response_timestamp_flag

A flag describing which module responses contain timestamps.

Key Reference: E_IPJ_KEY_RESPONSE_CONTROL_TIMESTAMP

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_RESET` | `1` | `0x1`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_MODIFY_CONN` | `2` | `0x2`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_GET_INFO` | `4` | `0x4`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_BULK_SET` | `8` | `0x8`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_BULK_GET` | `16` | `0x10`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_START` | `32` | `0x20`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_RESUME` | `64` | `0x40`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_STOP` | `128` | `0x80`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_INVALID` | `256` | `0x100`
`E_IPJ_RES_TIMESTAMP_FLAG_BIT_FLASH` | `512` | `0x200`

## `ipj_report_timestamp_flag`

typedef uint32_t ipj_report_timestamp_flag

A flag describing which module reports contain timestamps.

Key Reference: E_IPJ_KEY_REPORT_CONTROL_TIMESTAMP

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_REP_TIMESTAMP_FLAG_BIT_TAG_OP` | `1` | `0x1`
`E_IPJ_REP_TIMESTAMP_FLAG_BIT_STOP` | `2` | `0x2`
`E_IPJ_REP_TIMESTAMP_FLAG_BIT_TEST` | `4` | `0x4`
`E_IPJ_REP_TIMESTAMP_FLAG_BIT_ERROR` | `8` | `0x8`
`E_IPJ_REP_TIMESTAMP_FLAG_BIT_STATUS` | `16` | `0x10`
`E_IPJ_REP_TIMESTAMP_FLAG_BIT_GPIO` | `32` | `0x20`

## `ipj_gpio_mode`

typedef uint32_t ipj_gpio_mode

A GPIO configuration mode.

For examples of how to use the GPIO functionality see the GPIO configuration examples.

Note

GPIO pulse mode not currently supported

Key Reference: E_IPJ_KEY_GPIO_MODE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_GPIO_MODE_DISABLED` | `0` | `0x0`
`E_IPJ_GPIO_MODE_INPUT` | `1` | `0x1`
`E_IPJ_GPIO_MODE_OUTPUT` | `2` | `0x2`
`E_IPJ_GPIO_MODE_OUTPUT_PULSE` | `3` | `0x3`
`E_IPJ_GPIO_MODE_INPUT_ACTION` | `4` | `0x4`
`E_IPJ_GPIO_MODE_OUTPUT_ACTION` | `5` | `0x5`
`E_IPJ_GPIO_MODE_OUTPUT_PULSE_ACTION` | `6` | `0x6`

## `ipj_gpio_state`

typedef uint32_t ipj_gpio_state

A state of a GPIO on a module.

For more information on how to use the GPIO functionality see the GPIO configuration examples.

Key Reference: E_IPJ_KEY_GPIO_STATE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_GPIO_STATE_LO` | `0` | `0x0`
`E_IPJ_GPIO_STATE_HI` | `1` | `0x1`
`E_IPJ_GPIO_STATE_FLOAT` | `2` | `0x2`

## `ipj_gpi_action`

typedef uint32_t ipj_gpi_action

An action to be performed when a GPIO event is triggered.

For more information on how to use the GPIO functionality to trigger an action, see the GPIO Input with Action configuration example.

Key Reference: E_IPJ_KEY_GPIO_HI_ACTION, E_IPJ_KEY_GPIO_LO_ACTION

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_GPI_ACTION_NONE` | `0` | `0x0`
`E_IPJ_GPI_ACTION_START_INVENTORY` | `1` | `0x1`
`E_IPJ_GPI_ACTION_STOP_INVENTORY` | `2` | `0x2`

## `ipj_idle_power_mode`

typedef uint32_t ipj_idle_power_mode

A specific idle low power mode for configuring a module.

For more details on using the low power modes, see the Power Management configuration examples.

For more details on low power mode features and specifications, see the Indy Module Datasheets.

Key Reference: E_IPJ_KEY_DEVICE_IDLE_POWER_MODE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_IDLE_POWER_MODE_STANDARD` | `0` | `0x0`
`E_IPJ_IDLE_POWER_MODE_LOW_LATENCY` | `1` | `0x1`

## `ipj_antenna`

typedef uint32_t ipj_antenna

An identifier for antennas on arbitrary IRI based readers.

For more details on antenna switching, see the Antenna Switching configuration example.

Key Reference: E_IPJ_KEY_ANTENNA_SEQUENCE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_ANTENNA_AUTO` | `0` | `0x0`
`E_IPJ_ANTENNA_1` | `1` | `0x1`
`E_IPJ_ANTENNA_2` | `2` | `0x2`
`E_IPJ_ANTENNA_3` | `3` | `0x3`
`E_IPJ_ANTENNA_4` | `4` | `0x4`

## `ipj_antenna_rs2000`

typedef uint32_t ipj_antenna_rs2000

An identifier for antennas on Indy RS2000 modules.

For more details on antenna switching, see the Antenna Switching configuration example.

Key Reference: E_IPJ_KEY_ANTENNA_SEQUENCE

Define | Decimal | Hex
--- | --- | ---
`E_IPJ_ANTENNA_RS2000_AUTO` | `0` | `0x0`
`E_IPJ_ANTENNA_RS2000_SMT_1` | `1` | `0x1`
`E_IPJ_ANTENNA_RS2000_SMT_2` | `2` | `0x2`
`E_IPJ_ANTENNA_RS2000_UFL_1` | `3` | `0x3`
`E_IPJ_ANTENNA_RS2000_UFL_2` | `4` | `0x4`

### Navigation

- next
- previous |
- Indy ITK 1.8.0 documentation »