API Reference

Overview

Controlling applications communicate with the Impinj ItemEncode device using the ItemEncode API. The API is a thin layer to provide a connection to the ItemEncode device using Google Protocol Buffers messages. The API is generated in multiple Host languages. For language specific API documentation, please see the doc folder within that language’s section of the ItemEncode package. This section will cover the ItemEncode Protocol Buffer messages. Please note that the Command/Response pairs will be wrapped in an API function for the Host language.

_images/APIDiagram.png

See also

For more information about Google Protocol Buffers, please see the Protocol Buffers website.

Enumerations

CartonContentsErrorType

Enum Value Description
CARTON_CONTENTS_ERROR_EXTRA_LEADING_ENTER 1  
CARTON_CONTENTS_ERROR_EXTRA_TRAILING_ENTER 2  
CARTON_CONTENTS_ERROR_MISSING_LEADING_ENTER 3  
CARTON_CONTENTS_ERROR_MISSING_TRAILING_ENTER 4  

CartonContentsResult

Enum Value Description
CARTON_CONTENTS_RESULT_OK 1 This indicates that the contents of this packet describes a carton for which the device had good data.
CARTON_CONTENTS_RESULT_ERROR_NO_ENTER 3 The stop trigger was seen for this carton, but no corresponding start was seen. An example would be in a belt stoppage scenario during startup
CARTON_CONTENTS_RESULT_ERROR_NO_START 2 DEPRECATED

DeviceExceptionEventType

NOT YET SUPPORTED

Enum Value Description
DEVICE_EXCEPTION_EVENT_TYPE_UNKNOWN 1  
DEVICE_EXCEPTION_EVENT_TYPE_SYSTEM_FAULT 2  
DEVICE_EXCEPTION_EVENT_TYPE_OPERATION_START_TRIGGER_FAULT 3 Generated when a GPI start trigger fires before STP is done with the current operation and returned to the engaged state.

DeviceFaultType

Enum Value Description
DEVICE_FAULT_TYPE_NONE 0  
DEVICE_FAULT_TYPE_NETWORK_DISCONNECT 1  
DEVICE_FAULT_TYPE_APPLICATION_FAILURE 2  
DEVICE_FAULT_TYPE_FPGA_FAILURE 3  

DeviceMode

Enum Value Description
DEVICE_MODE_INVENTORY 0  
DEVICE_MODE_ENCODE 1  
DEVICE_MODE_VERIFY_TAGCHIP_BASIC 2  
DEVICE_MODE_VERIFY_TAGCHIP_DATA 3  
DEVICE_MODE_ITEM_VERIFY 6  

DeviceOperatingState

Enum Value Description
DEVICE_OPERATING_STATE_READY 0  
DEVICE_OPERATING_STATE_OPERATING 1  
DEVICE_OPERATING_STATE_ENGAGED 2  
DEVICE_OPERATING_STATE_FAULT 3  

ErrorCode

Enum Value Description
ERROR_CODE_SUCCESS 0  
ERROR_CODE_INVALID_COMMAND 1  
ERROR_CODE_INVALID_SET_KEY 2  
ERROR_CODE_INVALID_GET_KEY 3  
ERROR_CODE_INVALID_ADDRESS 4  
ERROR_CODE_INVALID_VALUE 5  
ERROR_CODE_FIRMWARE_INVALID 6  
ERROR_CODE_COMMAND_REFUSED 7  
ERROR_CODE_SET_KEY_READ_ONLY 8  
ERROR_CODE_NO_HANDSHAKE 9  
ERROR_CODE_NO_DEVICE_CONNECTION 10  
ERROR_CODE_UNSUPPORTED 11  
ERROR_CODE_NETWORK_INIT 12 Failure when initializing the device network connection.

GPIOPolarity

Enum Value Description
GPIO_POLARITY_ACTIVE_LOW 0  
GPIO_POLARITY_ACTIVE_HIGH 1  

GPIOSignalMode

The way that GPIOs are used, with functions on the same GPIOs or on separate GPIOs.

Enum Value Description
GPIO_SIGNAL_MODE_COMBINED 0  
GPIO_SIGNAL_MODE_SEPARATE 1  
GPIO_SIGNAL_MODE_PRESENCE_DETECTION 2  

GPIOState

Enum Value Description
GPIO_STATE_LOW 0  
GPIO_STATE_HIGH 1  

Gen2Mode

Enum Value Description
GEN2_MODE_MAX_THROUGHPUT 0  
GEN2_MODE_HYBRID 1  
GEN2_MODE_DENSE_READER_M4 2  
GEN2_MODE_DENSE_READER_M8 3  
GEN2_MODE_MAX_MILLER 4  
GEN2_MODE_DENSE_READER_M4_2 5  
GEN2_MODE_MAX_THROUGHPUT_M4 6  
GEN2_MODE_AUTO_SET 1000 DEPRECATED

Gen2Session

Enum Value Description
GEN2_SESSION_0 0  
GEN2_SESSION_1 1  
GEN2_SESSION_2 2  
GEN2_SESSION_3 3  

InventorySearchMode

How to inventory tags.

Enum Value Description
INVENTORY_SEARCH_MODE_DUAL_TARGET 1 Inventory tags from A to B state and back to A.
INVENTORY_SEARCH_MODE_SINGLE_TARGET_A_TO_B 2 Inventory tags from A to B state.
INVENTORY_SEARCH_MODE_SINGLE_TARGET_B_TO_A 3 Inventory tags from B to A state.
INVENTORY_SEARCH_MODE_SINGLE_TARGET_A_TO_B_MONZA_TAGFOCUS 4 Inventory tags from A to B state with boost.
INVENTORY_SEARCH_MODE_SINGLE_TARGET_B_TO_A_MONZA_TAGFOCUS 5 Inventory tags from B to A state with boost.
INVENTORY_SEARCH_MODE_CARTON_STAGE_1 7 ItemVerify Inventory Search Mode 1
INVENTORY_SEARCH_MODE_CARTON_STAGE_2 8 ItemVerify Inventory Search Mode 2

LowEncodeVolumeEventType

Enum Value Description
LOW_ENCODE_VOLUME_EVENT_MONZA 1  
LOW_ENCODE_VOLUME_EVENT_NON_MONZA 2  

MonzaR6PMemoryMapConfig

Enum Value Description
MONZA_R6P_MEMORY_MAP_CONFIG_96_BIT_EPC_64_BIT_USER 0  
MONZA_R6P_MEMORY_MAP_CONFIG_128_BIT_EPC_32_BIT_USER 1  

OperationEventType

NOT YET SUPPORTED

Enum Value Description
OPERATION_EVENT_TYPE_START_TRIGGER 1  
OPERATION_EVENT_TYPE_STOP_TRIGGER 2  
OPERATION_EVENT_TYPE_COMPLETE 3 An event for the end of the operation, and when no more reports will be delivered.

OperationMode

How the reader will be used.

Enum Value Description
OPERATION_MODE_BATCH 0 Use with a start and stop for a quantity of tags.
OPERATION_MODE_SINGLE 1 Use with a start and stop for optimized encoding or verification when a single tag is in the FoV.
OPERATION_MODE_CONTINUOUS 2 Use this mode to encode a continuous stream of tags.

OperationSummaryResult

Enum Value Description
OPERATION_SUMMARY_RESULT_PASS 0  
OPERATION_SUMMARY_RESULT_FAIL 1  

OperationTriggerType

NOT YET SUPPORTED The source of the operation start/stop.

Enum Value Description
OPERATION_TRIGGER_TYPE_CLIENT 1  
OPERATION_TRIGGER_TYPE_GPI 2  
OPERATION_TRIGGER_TYPE_TIMEOUT 4  

PasswordGenerationMethod

Enum Value Description
PASSWORD_GENERATION_METHOD_STATIC 1  

RegulatoryRegion

RF regulatory region.

Enum Value Description
REGULATORY_REGION_FCC_PART_15_247 0  
REGULATORY_REGION_ETSI_EN_300_220 1  
REGULATORY_REGION_ETSI_EN_302_208_LBT 2  
REGULATORY_REGION_HONG_KONG_920_925_MHZ 3  
REGULATORY_REGION_TAIWAN_922_928_MHZ 4  
REGULATORY_REGION_JAPAN_952_954_MHZ 5  
REGULATORY_REGION_JAPAN_952_954_MHZ_LOWPOWER 6  
REGULATORY_REGION_ETSI_EN_302_208_V1_2_1 7  
REGULATORY_REGION_KOREA_917_921_MHZ 8  
REGULATORY_REGION_MALAYSIA_919_921_MHZ 9  
REGULATORY_REGION_CHINA_920_925_MHZ 10  
REGULATORY_REGION_JAPAN_952_956_MHZ_NO_LBT 11  
REGULATORY_REGION_SOUTH_AFRICA_915_919_MHZ 12  
REGULATORY_REGION_BRAZIL_902_907_AND_915_928_MHZ 13  
REGULATORY_REGION_THAILAND_920_925_MHZ 14  
REGULATORY_REGION_SINGAPORE_920_925_MHZ 15  
REGULATORY_REGION_AUSTRALIA_920_926_MHZ 16  
REGULATORY_REGION_INDIA_865_867_MHZ 17  
REGULATORY_REGION_URUGUAY_916_928_MHZ 18  
REGULATORY_REGION_VIETNAM_920_925_MHZ 19  
REGULATORY_REGION_ISRAEL_915_917_MHZ 20  
REGULATORY_REGION_PHILIPPINES_918_920_MHZ 21  
REGULATORY_REGION_INDONESIA_923_925_MHZ 22  
REGULATORY_REGION_NEW_ZEALAND_921P5_928_MHZ 23  
REGULATORY_REGION_JAPAN_916_921_MHZ_NO_LBT 24  
REGULATORY_REGION_LATIN_AMERICA_902_928_MHZ 25  

ReportType

Use this type when registering a report handler.

Enum Value Description
REPORT_TYPE_ALL 0  
REPORT_TYPE_DEVICE_EVENT 1  
REPORT_TYPE_OPERATION_SUMMARY 2  
REPORT_TYPE_TAG_OPERATION 3  
REPORT_TYPE_CARTON_CONTENTS 4  

SerialNumberRangeFormat

Serial Number Range format specifies whether the EPC will be formatted in binary coded hexadecimal or binary coded decimal.

Enum Value Description
SERIAL_NUMBER_RANGE_FORMAT_HEX 0  
SERIAL_NUMBER_RANGE_FORMAT_DEC 1  

SerializationJobCompletionCriteria

Enum Value Description
SERIALIZATION_JOB_COMPLETION_CRITERIA_NONE 4  

SerializationJobType

Enum Value Description
SERIALIZATION_JOB_TYPE_STATIC 1  
SERIALIZATION_JOB_TYPE_TID_TABLE 4  
SERIALIZATION_JOB_TYPE_ORDERED_LIST 5  

TagOperationReportTrigger

Enum Value Description
TAG_OPERATION_REPORT_TRIGGER_IMMEDIATE 1 Send reports as operations are performed.

TagOperationReportType

Enum Value Description
TAG_OPERATION_REPORT_TYPE_INVENTORY 0  
TAG_OPERATION_REPORT_TYPE_VERIFY 1  
TAG_OPERATION_REPORT_TYPE_ENCODE 2  

TagOperationResult

Enum Value Description
TAG_OPERATION_RESULT_PASS 0  
TAG_OPERATION_RESULT_PASS_ALREADY_DONE 1  
TAG_OPERATION_RESULT_RETRY 2  
TAG_OPERATION_RESULT_RETRY_INSUFFICIENT_POWER 3  
TAG_OPERATION_RESULT_RETRY_NO_RESPONSE_FROM_TAG 4  
TAG_OPERATION_RESULT_RETRY_SERIALIZATION_JOB_QUEUE_EMPTY 5  
TAG_OPERATION_RESULT_RETRY_TID_TABLE_NO_MATCH 6  
TAG_OPERATION_RESULT_RETRY_ORDERED_LIST_EMPTY 7  
TAG_OPERATION_RESULT_FAIL 8  
TAG_OPERATION_RESULT_FAIL_INSUFFICIENT_POWER 9  
TAG_OPERATION_RESULT_FAIL_NO_RESPONSE_FROM_TAG 10  
TAG_OPERATION_RESULT_FAIL_MEMORY_BANK_LOCKED 11  
TAG_OPERATION_RESULT_FAIL_MEMORY_BANK_MEMORY_OVERRUN 12  
TAG_OPERATION_RESULT_FAIL_GEN2_INSUFFICIENT_PRIVILEGES 13  
TAG_OPERATION_RESULT_FAIL_SERIALIZATION_JOB_QUEUE_EMPTY 14  
TAG_OPERATION_RESULT_FAIL_TID_TABLE_NO_MATCH 15 There was no TIDTableEntry for this tag.
TAG_OPERATION_RESULT_FAIL_ORDERED_LIST_EMPTY 16 The device has run out of OrderedListEntry.
TAG_OPERATION_RESULT_FAIL_TAG_CHIP_NOT_SUPPORTED 17 This tag chip is not supported.
TAG_OPERATION_RESULT_FAIL_TAG_CHIP_SUPPORTED_LICENSE_KEY_NOT_INSTALLED 18 This tag chip is supported, but the corresponding feature key has not been installed.
TAG_OPERATION_RESULT_FAIL_TAG_NOT_INVENTORIED 19 The device was expecting to see a tag (Single mode), but did not.
TAG_OPERATION_RESULT_FAIL_VOLUME_EXHAUSTED 20 The remaining encoding volume for this tag type has exhausted.
TAG_OPERATION_RESULT_FAIL_TID_PARITY_CHECK 21  
TAG_OPERATION_RESULT_FAIL_SERIAL_NUMBER_RANGE_EMPTY 22 The device has run out of serial numbers.
TAG_OPERATION_RESULT_FAIL_VOYANTIC_TEST_RESULT_MISSING 23 Device was configured to expect performance information packet, but did not receive one for this tid
TAG_OPERATION_RESULT_FAIL_VOYANTIC_TEST_RESULT_FAILED 24 The upstream performance indicator reported that this tag had poor performance. This will only come from a tagchip basic verifier who receives a performance report that declares a failure.
TAG_OPERATION_RESULT_VOID_TAG_PASS 25 The device attempted to void the tag, and was successful.
TAG_OPERATION_RESULT_VOID_TAG_FAIL 26 The device attempted to void the tag and failed to complete the task
TAG_OPERATION_RESULT_FAIL_TID_TABLE_INVALID_CONFIG 27 The encoding configuration for this tag was invalid.
TAG_OPERATION_RESULT_FAIL_FILTER_NO_MATCH 28 This tag didn’t match one of the configured filters.
TAG_OPERATION_RESULT_FAIL_VOLUME_LICENSE_REVOKED 29 The Volume License for this tag has been revoked. Please contact Impinj Support for assistance.
TAG_OPERATION_RESULT_FAIL_INVENTORIED_EPC_MISMATCH 30 The device has detected that the backscattered EPC does not match the EPC writes that were already performed.
TAG_OPERATION_RESULT_FAIL_CANNOT_CHANGE_MEMORY_MAP_CONFIG 31 The device has detected that the Monza R6P memory map was previously configured to a different state than what was requested.

VersionType

The local library or remote device component corresponding to the version.

Enum Value Description
VERSION_TYPE_KODIAK_HOST 0 Version of the tool used to create the API on the host.
VERSION_TYPE_KODIAK_READER 1 Version of the tool used to create the API on the reader.
VERSION_TYPE_FRAME_READER 2 Version of the protocol used by the reader.
VERSION_TYPE_API_HOST 3 Version of the API on the host.
VERSION_TYPE_API_READER 4 Version of the API on the reader.
VERSION_TYPE_FIRMWARE 5 Version of the reader firmware.
VERSION_TYPE_FIRMWARE_CUST 6 Version of custom application.
VERSION_TYPE_UPGRADE_AGENT 7 Version of the tool which upgrades reader software.
VERSION_TYPE_FPGA_IMAGE 8  

Messages

AddLicenseKeyCommand

Label Type Field Default Description
optional LicenseKey license_key    

AddLicenseKeyResp

Label Type Field Default Description
optional Reply reply    

AddOrderedListEntriesCommand

Send a list of tag operations to perform.

Label Type Field Default Description
optional OrderedListEntries ordered_list_entries    

AddOrderedListEntriesResp

Returns SUCCESS if the OrderedListEntries were added. See AddOrderedListEntriesCommand.

Label Type Field Default Description
optional Reply reply    

AddSerializationJobCommand

Set the SerializationJob

Label Type Field Default Description
optional SerializationJob serialization_job    

AddSerializationJobResp

See AddSerializationJobCommand.

Label Type Field Default Description
optional Reply reply    

AddTIDTableEntriesCommand

Send a list of tag operations to perform.

Label Type Field Default Description
optional TIDTableEntries table_entries    

AddTIDTableEntriesResp

Returns SUCCESS if the TID entry was added. See AddTIDTableEntriesCommand.

Label Type Field Default Description
optional Reply reply    

AntennaConfig

An antenna’s RF, timing, and Gen 2 behavior parameters.

Label Type Field Default Description
required uint32 antenna_ID   The 1-based ID of the reader antenna.
optional Gen2Mode gen2_mode GEN2_MODE_MAX_THROUGHPUT  
optional InventorySearchMode inventory_search_mode INVENTORY_SEARCH_MODE_SINGLE_TARGET_A_TO_B_MONZA_TAGFOCUS  
optional Gen2Session gen2_session GEN2_SESSION_1  
optional int32 transmit_power 3000 Transmit power in cdBm.
optional int32 receive_sensitivity   Receive sensitivity in cdBm. If not specified, no RSSI filtering is done.
optional uint32 tag_population_estimate 32  
optional uint32 minimum_dwell_time 0 Minimum time to dwell on the antenna in milliseconds. A value of 0 indicates no minimum.
optional uint32 maximum_dwell_time 0 Maximum time to dwell on the antenna in milliseconds. A value of 0 indicates no maximum.
optional bool enable_query_for_q_increase false Indicates whether a query should be used instead of a query adjust when the reader wishes to increase the Q value during the round.
optional bool enable_query_for_q_decrease false Indicates whether a query should be used instead of a query adjust when the reader wishes to decrease the Q value during the round.
optional bool enable_query_at_u_cycle_end false Indicates whether a query should be used instead of a query adjust for the flush queries at the end of the round.
optional bool enable_adaptive_tag_population_estimate false Indicates whether the tag_population_estimate in the AntennaConfig should be updated with the actual number of tags seen.

AntennasConfig

A list of antenna configurations.

Label Type Field Default Description
repeated AntennaConfig antenna_config   The device will cycle through the configurations in the order in which they appear in the list. The amount of time spent on each antenna is determined by the reader, but constrained by the minimum_dwell_time and maximum_dwell_time if those parameters are set. It is valid to provide multiple AntennaConfig messages that contain the same antenna_id in which case they will simply be treated as independent AntennaConfig entries.

BlockPermalockConfig

Gen 2 BlockPermalock command (BlockPtr, BlockRange) on User Memory Bank - Read/Permalock behavior.

Label Type Field Default Description
required uint32 block_pointer   The starting address for BlockMask in units of 16-bit blocks.
required bytes block_mask   The blocks to lock, starting at BlockPointer and ending ((16*(BlockMask array length)) - 1) blocks later.

CartonContentsError

Label Type Field Default Description
optional CartonContentsErrorType error_type    
optional Timestamp extra_timestamp    
optional Timestamp min_timestamp    
optional Timestamp max_timestamp    

CartonContentsJob

A Carton contents job is what you use to provide you with an estimate of what tags are in a given carton

Label Type Field Default Description
optional uint32 job_id 1  
optional uint32 enter_trigger_offset   Distance in millimeters from the enter trigger to the center of the tunnel
optional uint32 exit_trigger_offset   Distance in millimeters from the exit trigger to the center of the tunnel
optional uint32 carton_velocity   Speed of the cartons measured in millimeters / second
optional bool read_tid true Setting to false disables reading the TID. This can improve overall carton accuracy.
optional uint32 carton_spacing   DEPRECATED
optional uint32 start_trigger_offset   DEPRECATED
optional uint32 stop_trigger_offset   DEPRECATED

CartonContentsReport

Label Type Field Default Description
optional CartonContentsResult carton_contents_result    
optional Timestamp enter_timestamp   Timestamp of the start trigger
optional Timestamp exit_timestamp   Timestamp of the stop trigger
optional uint32 carton_size   Detected carton size in millimeters
repeated CartonContentsTag carton_contents_tag   A list of all tags seen for the duration the carton was between the entry and exit sensors.
repeated CartonContentsError carton_contents_error    
optional Timestamp start_timestamp   DEPRECATED
optional Timestamp stop_timestamp   DEPRECATED

CartonContentsTag

Label Type Field Default Description
optional bytes tid    
optional bytes epc    
optional uint32 confidence   Confidence is given as a value between 0 and 100 (inclusive) to indicate whether the given tag is in the carton for which this report corresponds
optional uint32 metric_1   A metric to add color to the confidence
optional uint32 metric_2   A metric to add color to the confidence
optional uint32 metric_3   A metric to add color to the confidence

Command

Label Type Field Default Description
optional ConnectCommand connect   Connect to device.
optional GetVersionsReaderCommand get_versions_reader   Return all version information reported by the device and by the host-side library.
optional StartCommand start   Start the encode or inventory run. The device must be engaged with GPI or by calling engage before starting.
optional StopCommand stop   Stop the encode or inventory run. The device must be operating.
optional GetDeviceStateCommand get_device_state   Get the state (operating, fault, etc.) of the device. Contains a fault description, if any.
optional SetDeviceConfigCommand set_device_config    
optional GetDeviceConfigCommand get_device_config    
optional SetAntennaConfigCommand set_antenna_config    
optional GetAntennaConfigCommand get_antenna_config    
optional EngageCommand engage    
optional DisengageCommand disengage    
optional SetOperationResultGPOCommand set_operation_result_gpo   When the GPOConfig enable_operation_result_gpo is set false, this command lets the client application set the pass/fail GPO based on its own pass/fail conditions.
optional AddSerializationJobCommand add_serialization_job    
optional RemoveSerializationJobCommand remove_serialization_job    
optional AddTIDTableEntriesCommand add_tid_table_entries    
optional AddOrderedListEntriesCommand add_ordered_list_entries    
optional SetInventoryJobCommand set_inventory_job    
optional SetCartonContentsJobCommand set_carton_contents_job    
optional GetOperationDataCommand get_operation_data    
optional AddLicenseKeyCommand add_license_key    

ConnectCommand

Sent on the initial device connection to verify the health of the channel.

Label Type Field Default Description
optional HandShake hand_shake    

ConnectResp

Indicates that the connection was successful. See ConnectCommand.

Label Type Field Default Description
optional Reply reply    
optional HandShake hand_shake    

DeviceConfig

Defines the behavior of the device. See SetDeviceConfigResp.

Label Type Field Default Description
optional Region region    
required DeviceMode device_mode DEVICE_MODE_INVENTORY  
required OperationMode operation_mode OPERATION_MODE_CONTINUOUS  
optional OperationResponsibility operation_responsibility    
optional TriggerConfig trigger_config    
optional GPIConfig GPI_config    
optional GPOConfig GPO_config    
optional ReportConfig report_config    

DeviceEventConfig

Enable or disable classes of reports.

Label Type Field Default Description
optional bool enable_operation_events true  
optional bool enable_GPI_events false  
optional LowEncodeVolumeEventConfig low_encode_volume_event_config    

DeviceEventReport

Label Type Field Default Description
optional OperationEvent operation_event    
optional GPIEvent GPI_event    
optional DeviceExceptionEvent device_exception_event    
optional LowEncodeVolumeEvent low_encode_volume_event    

DeviceExceptionEvent

NOT YET SUPPORTED

Label Type Field Default Description
required Timestamp timestamp    
required DeviceExceptionEventType device_exception_event_type    
required string exception_detail    

DeviceState

The health or fault state of the device.

Label Type Field Default Description
optional DeviceOperatingState device_operating_state    
optional DeviceFaultType device_fault    
optional string fault_details    

DisengageCommand

Called after StopCommand, return the device to its initial state.

Label Type Field Default Description
optional bool reserved    

DisengageResp

See DisengageCommand.

Label Type Field Default Description
optional Reply reply    

EPCMemory

Describes the EPC memory of a tag.

Label Type Field Default Description
optional bytes data    
optional bytes mask   Bit mask permitting read-modify-write of the existing EPC data. For each bit use a ‘1’ to update/write new EPC bit and a ‘0’ to keep the existing EPC bit. The default is to update the entire EPC (96 bits).
optional Serialization serialization    
optional PCWord pc_word   Defines the PC bits (hence the inventoried EPC length).

EngageCommand

Tell the device to do any preparation possible before a StartCommand is sent so that the operation begins as soon after the start as possible.

Label Type Field Default Description
optional bool reserved    

EngageResp

See EngageCommand.

Label Type Field Default Description
optional Reply reply    

Filter

Label Type Field Default Description
optional bytes data   Data to be matched.
optional bytes mask   Which bits to match.
optional uint32 word_offset 0 This offset specifies the word address to start the data and mask at.

GPIConfig

Define how input functions map to signal lines and defines input polarities.

Label Type Field Default Description
optional GPIOSignalMode signaling_mode GPIO_SIGNAL_MODE_COMBINED  
optional GPIOPolarity GPI1_polarity GPIO_POLARITY_ACTIVE_LOW  
optional GPIOPolarity GPI2_polarity GPIO_POLARITY_ACTIVE_LOW  
optional GPIOPolarity GPI3_polarity GPIO_POLARITY_ACTIVE_LOW  

GPIEvent

Generated when any of the gpi inputs change

Label Type Field Default Description
required Timestamp timestamp    
required uint32 gpi_state    

GPOConfig

Define how output functions map to signal lines and defines output polarities.

Label Type Field Default Description
optional GPIOSignalMode signaling_mode GPIO_SIGNAL_MODE_SEPARATE Operation pass/fail on the same GPO or separate GPOs.
optional GPIOPolarity GPO1_polarity GPIO_POLARITY_ACTIVE_LOW Operation Status - Start and Complete
optional GPIOPolarity GPO2_polarity GPIO_POLARITY_ACTIVE_LOW In separate output mode, GPO2 will indicate with this polarity that the operation passed. In combined mode when the operation clock transitions, this setting indicates pass and the opposite polarity failure.
optional GPIOPolarity GPO3_polarity GPIO_POLARITY_ACTIVE_LOW In separate output mode, a failure will set GPO3 low or high depending on this setting.
optional uint32 GPO_pulse_duration 1 The output pulse duration in milliseconds. A value of zero means toggle as fast as possible.
optional bool enable_operation_result_gpo true If set to true, the GPO will change when the operation is complete. If false the client may set pass/fail with the set_operation_result_gpo command.

GetAntennaConfigCommand

Request the antenna configuration.

Label Type Field Default Description
optional bool reserved    

GetAntennaConfigResp

Return the configuration which was set on all antennas.

Label Type Field Default Description
optional Reply reply    
optional AntennasConfig antennas_config    

GetDeviceConfigCommand

Get the DeviceConfig

Label Type Field Default Description
optional bool reserved    

GetDeviceConfigResp

Return the device configuration. See GetDeviceConfigCommand.

Label Type Field Default Description
optional Reply reply    
optional DeviceConfig device_config    

GetDeviceStateCommand

Request the health of the device. See GetDeviceStateResp

Label Type Field Default Description
optional bool reserved    

GetDeviceStateResp

The health of the device. See GetDeviceStateCommand.

Label Type Field Default Description
optional Reply reply    
optional DeviceState device_state    

GetOperationDataCommand

Label Type Field Default Description
optional bool reserved    

GetOperationDataResp

Label Type Field Default Description
optional Reply reply    
optional OperationData operation_data    

GetVersionsReaderCommand

Get versions of device firmware, API. See GetVersionsReaderResp

Label Type Field Default Description
optional bool reserved    

GetVersionsReaderResp

The device firmware and API versions. See GetVersionsReaderCommand.

Label Type Field Default Description
optional Reply reply    
optional Versions versions   A list of remote device API and firmware versions.

HandShake

API description sent as part of the connection. The client app does not need to create or send this message.

Label Type Field Default Description
required string API_name    
required uint32 API_version    

InterDeviceCommunicationMetrics

Label Type Field Default Description
optional string serial_number    
optional uint64 received_message_count    

InvalidResp

The command sent to the device was not recognized as valid.

Label Type Field Default Description
optional bool reserved    

InventoryJob

What to report during an inventory.

Label Type Field Default Description
optional uint32 job_id 1  
optional UserMemory user_memory    

LicenseKey

Label Type Field Default Description
required bytes license_key_payload    

LockConfig

The Gen 2 lock payload.

Label Type Field Default Description
required bytes lock_config_payload   A binary string representation of the 20-bit Gen 2 lock command payload.

LowEncodeVolumeEvent

Generated when the remaining number of encodes falls below a threshold

Label Type Field Default Description
optional LowEncodeVolumeEventType low_encode_volume_event_type    
optional uint64 remaining_monza_encodes    
optional uint64 remaining_non_monza_encodes    

LowEncodeVolumeEventConfig

Configuration of Low Encode Volume Events

Label Type Field Default Description
optional bool enable_low_encode_volume_events true  
optional uint64 monza_threshold 200000 The threshold at which the device will start sending reports that the remaining Monza encode volume is low.
optional uint64 non_monza_threshold 200000 The threshold at which the device will start sending reports that the remaining Non Monza encode volume is low.
optional uint32 monza_reminder_period 50000 The period at which the the device will send a reminder report that the remaining Monza encode volume is low. The value is the number of attempted encodes since last report. Set to 0 to disable reminders.
optional uint32 non_monza_reminder_period 50000 The period at which the the device will send a reminder report that the remaining Non Monza encode volume is low. The value is the number of attempted encodes since last report. Set to 0 to disable reminders.

MonzaR6AFeatureConfig

Tag specific feature configuration for Monza R6-A tags. For further details, see: https://support.impinj.com/hc/en-us/articles/115001376564-Monza-R6-A-Product-Brief-Datasheet

Label Type Field Default Description
optional bool enable_auto_tune   Enable Auto-tune
optional bool enable_short_range_mode   Enable Short-Range mode

MonzaR6FeatureConfig

Tag specific feature configuration for Monza R6 tags. For further details, see: https://support.impinj.com/hc/en-us/articles/202765328-Monza-R6-Product-Datasheet

Label Type Field Default Description
optional bool enable_auto_tune   Enable Auto-tune

MonzaR6PFeatureConfig

Tag specific feature configuration for Monza R6P tags. All three features must be specified. For further details, see: https://support.impinj.com/hc/en-us/articles/204793258-Monza-R6-P-Product-Datasheet

Label Type Field Default Description
optional bool enable_auto_tune   Enable Auto-tune
optional bool enable_short_range_mode   Enable Short-Range mode
optional MonzaR6PMemoryMapConfig memory_map_config   Configure tag memory map

MonzaS6CFeatureConfig

Tag specific feature configuration for Monza S6C tags. Both features must be specified. For further details, see: https://support.impinj.com/hc/en-us/articles/205744047-Monza-S6-C-Product-Datasheet

Label Type Field Default Description
optional bool enable_auto_tune   Enable Auto-tune
optional bool enable_short_range_mode   Enable Short-Range mode

MonzaSelfSerialization

Monza Self-Serialization between 34-bits and 96-bits in length.

Label Type Field Default Description
optional string serialization_prefix   Up to a 4-bit prefix, always left most MSB of 38-bit serial number, e.g. “10”.

OperationData

Label Type Field Default Description
optional OperationDataDetails operation_details    
repeated string data    

OperationDataDetails

Label Type Field Default Description
optional string serial_number    
optional string firmware_version    
optional string region    
repeated string installed_features    
optional uint32 non_monza_volume_key_id    
optional OperationMetrics operation_metrics    
optional uint32 monza_volume_key_id    

OperationEvent

NOT YET SUPPORTED A change in the device operating state driven by completion of the tag operation or a start or stop driven by GPI.

Label Type Field Default Description
required Timestamp timestamp    
required OperationEventType operation_event_type    
optional OperationTriggerType operation_trigger_type    

OperationMetrics

Label Type Field Default Description
optional uint64 remaining_non_monza_encodes    
repeated TagMetrics tag_metrics    
repeated InterDeviceCommunicationMetrics inter_device_communication_metrics    
optional uint64 remaining_monza_encodes    

OperationResponsibility

Define which areas of tag memory this device is responsible for writing and which operations to perform.

Label Type Field Default Description
optional bytes EPC_memory_mask [FFFF] Hex representation of 32-bit Blocks (F = 1111 = encode 4 32-bit blocks).
optional bool EPC_memory_pc_word true Encode or verify configured PC Word
optional bool TID_config_word true Write TID config word
optional bytes user_memory_mask [FFFFFFFFFFFFFFFF] Hex representation of 32-bit Blocks (F = 1111 = encode 4 32-bit blocks)
optional bool secure_password true If true, use the secured password to move tag to secure state on this device.
optional bool access_password true Encode or verify configured 32-bit Access password
optional bool kill_password true Encode or verify configured 32-bit Kill password
optional bool lock_config true Set or verify (read reserved memory) Lock config
optional bool blockpermalock_config true Set or verify (read reserved memory) BlockPermalock config
optional bool kill_tag true  
optional bool tag_specific_feature_config true Tag specific feature configuration for Monza 6 (and possibly) later tags
optional uint32 tags_in_view_count 6 The approximate number of tags in the field of view. This parameter is only valid In continuous mode; a report will be sent when a tag is removed from a list of this size. A larger number will delay reports, but allow retries if a tag remains in view.
optional uint32 tags_in_pipeline_view_count 0 The approximate number of total tags expected in the STP pipeline. This parameter is only significant in systems that have multiple devices working together to pipeline the encoding process, the value should be set to exceed the total number of tags between the first and last STP devices. By default this is set to 0 (disabling the feature).
repeated STPDevice downstream_pipeline_devices   A list of downstream STP devices in pipeline which will be sent operation notifications, only necessary when ‘tags_in_pipeline_view_count’ is used. The order the devices will determine the order the notifications are sent.
optional STPDevice device_of_record   Downstream STP device that allows non Monza encoding
optional uint32 voyantic_tagsurance_test_results_cache_size   The approximate number of tags expected in the pipeline between a third party tester and the first ItemEncode device. Setting this to 0 disables the listening feature. Setting this to any other value indicates that this ItemEncode device should expect rf performance reports for every tag it sees
optional VoidTagResponsibility void_tag_responsibility   In cases where there is voiding possible, this is how the user specifies the responsibility of this device

OperationSummaryReport

If enabled in ReportConfig, this report is sent when the device operation stops.

Label Type Field Default Description
required Timestamp timestamp    
required OperationSummaryResult operation_result    
optional string operation_result_detail    
optional uint32 operation_elapsed_time    
optional uint32 tag_operation_total_count    
optional uint32 tag_operation_pass_count    
optional uint32 tag_operation_fail_count    

OperationSummaryReportConfig

Enable a summary report at the end of the device operation.

Label Type Field Default Description
required bool enable_operation_summary_reports true  

OrderedListEntries

Label Type Field Default Description
repeated OrderedListEntry ordered_list_entries    

OrderedListEntry

Label Type Field Default Description
required EPCMemory EPC_memory    
optional UserMemory user_memory    
optional Password secure_password    
optional Password access_password    
optional Password kill_password    
optional LockConfig lock_config    
optional BlockPermalockConfig blockpermalock_config   NOT YET SUPPORTED
optional TIDMemory TID_memory    
optional MonzaR6PFeatureConfig monza_r6p_feature_config   MonzaR6PFeatureConfig will only be acted upon when encoding a Monza R6P tag. Will be ignored for all other tag types.
optional MonzaS6CFeatureConfig monza_s6c_feature_config   MonzaS6CFeatureConfig will only be acted upon when encoding a Monza S6C tag. Will be ignored for all other tag types.
optional MonzaR6FeatureConfig monza_r6_feature_config   MonzaR6FeatureConfig will only be acted upon when encoding a Monza R6 tag. Will be ignored for all other tag types.
optional MonzaR6AFeatureConfig monza_r6a_feature_config   MonzaR6AFeatureConfig will only be acted upon when encoding a Monza R6A tag. Will be ignored for all other tag types.

PCWord

EPC PC word, see Gen2 specification for packing of bits

Label Type Field Default Description
optional bytes data   32 bit PC Word.
optional bytes mask   DEPRECATED

Packet

Label Type Field Default Description
optional Command command    
optional Response response    
optional Report report    
optional Update update    

Password

A password for accessing, securing, or locking a tag.

Label Type Field Default Description
optional PasswordGenerationMethod password_generation_method PASSWORD_GENERATION_METHOD_STATIC  
required bytes data   A 32-bit password or passcode for Hash with TID as salt.

Region

Details needed to specify all region parameters.

Label Type Field Default Description
required RegulatoryRegion region_id REGULATORY_REGION_FCC_PART_15_247  
repeated uint32 fixed_frequency_list    

RemoveSerializationJobCommand

NOT YET SUPPORTED

Label Type Field Default Description
optional uint32 job_id    

RemoveSerializationJobResp

NOT YET SUPPORTED

Label Type Field Default Description
optional Reply reply    

Reply

A response sent by all commands.

Label Type Field Default Description
required ErrorCode error_code    
optional string error_string   Human-readable text describing what happened.

Report

Label Type Field Default Description
optional DeviceEventReport device_event_report    
optional TagOperationReport tag_operation_report    
optional OperationSummaryReport operation_summary_report    
optional CartonContentsReport carton_contents_report    

ReportConfig

Define what to report to the client application.

Label Type Field Default Description
optional DeviceEventConfig device_event_config    
optional OperationSummaryReportConfig operation_summary_report_config    
optional TagOperationReportConfig tag_operation_report_config    

Response

Label Type Field Default Description
optional ConnectResp connect    
optional GetVersionsReaderResp get_versions_reader    
optional StartResp start    
optional StopResp stop    
optional InvalidResp invalid    
optional GetDeviceStateResp get_device_state    
optional SetDeviceConfigResp set_device_config    
optional GetDeviceConfigResp get_device_config    
optional SetAntennaConfigResp set_antenna_config    
optional GetAntennaConfigResp get_antenna_config    
optional EngageResp engage    
optional DisengageResp disengage    
optional SetOperationResultGPOResp set_operation_result_gpo    
optional AddSerializationJobResp add_serialization_job    
optional RemoveSerializationJobResp remove_serialization_job    
optional AddTIDTableEntriesResp add_tid_table_entries    
optional AddOrderedListEntriesResp add_ordered_list_entries    
optional SetInventoryJobResp set_inventory_job    
optional SetCartonContentsJobResp set_carton_contents_job    
optional GetOperationDataResp get_operation_data    
optional AddLicenseKeyResp add_license_key    

STPDevice

Label Type Field Default Description
required string hostname   This must be an IP address (for now) in the format ‘ddd.ddd.ddd.ddd’, for example: 192.168.1.10

SerialNumberRange

Serial number range can be up to 496-bits or full length of EPC (pad left with zeros)

Label Type Field Default Description
optional uint64 serial_number_range_start    
optional uint64 serial_number_range_end    
optional uint32 bit_offset    
optional SerialNumberRangeFormat serial_number_range_format    

Serialization

How serial numbers are determined.

Label Type Field Default Description
required uint32 serialization_bits   Length of serial number to generate e.g. 38-bits
optional MonzaSelfSerialization monza_self_serialization   Monza Self-Serialization between 34-bits and 96-bits in length.
optional SerialNumberRange serial_number_range   Serial Number Range can be up to 496-bits or full length of EPC (pad left with zeros).

SerializationJob

What to write and whether to set passwords and lock the tag.

Label Type Field Default Description
required uint32 job_id    
required SerializationJobType job_type    
optional SerializationJobCompletionCriteria job_completion_criteria SERIALIZATION_JOB_COMPLETION_CRITERIA_NONE  
optional uint32 operation_quantity   NOT YET SUPPORTED
optional EPCMemory EPC_memory    
optional TIDMemory TID_memory    
optional UserMemory user_memory    
optional Password secure_password    
optional Password access_password    
optional Password kill_password    
optional LockConfig lock_config    
optional BlockPermalockConfig blockpermalock_config   NOT YET SUPPORTED
optional bool kill_tag    
optional MonzaR6PFeatureConfig monza_r6p_feature_config   MonzaR6PFeatureConfig will only be acted upon when encoding a Monza R6P tag. Will be ignored for all other tag types.
optional MonzaS6CFeatureConfig monza_s6c_feature_config   MonzaS6CFeatureConfig will only be acted upon when encoding a Monza S6C tag. Will be ignored for all other tag types.
optional MonzaR6FeatureConfig monza_r6_feature_config   MonzaR6FeatureConfig will only be acted upon when encoding a Monza R6 tag. Will be ignored for all other tag types.
optional MonzaR6AFeatureConfig monza_r6a_feature_config   MonzaR6AFeatureConfig will only be acted upon when encoding a Monza R6A tag. Will be ignored for all other tag types.
optional uint32 TID_table_size 100  
repeated TIDTableEntry TID_table_entries    
repeated OrderedListEntry ordered_list_entries    
optional VoidTagConfig void_tag_config    
optional SerializationJobFilters filters    

SerializationJobFilters

Label Type Field Default Description
repeated Filter tid_filters    
repeated Filter epc_filters    

SetAntennaConfigCommand

Set the configuration for one or more antennas.

Label Type Field Default Description
optional AntennasConfig antennas_config    

SetAntennaConfigResp

See SetAntennaConfigCommand.

Label Type Field Default Description
optional Reply reply    

SetCartonContentsJobCommand

Label Type Field Default Description
optional CartonContentsJob carton_contents_job    

SetCartonContentsJobResp

Label Type Field Default Description
optional Reply reply    

SetDeviceConfigCommand

Set the device’s behavior.

Label Type Field Default Description
required DeviceConfig device_config    

SetDeviceConfigResp

See SetDeviceConfigCommand.

Label Type Field Default Description
optional Reply reply    

SetInventoryJobCommand

Label Type Field Default Description
optional InventoryJob inventory_job    

SetInventoryJobResp

Label Type Field Default Description
optional Reply reply    

SetOperationResultGPOCommand

Label Type Field Default Description
optional OperationSummaryResult operation_summary_result    

SetOperationResultGPOResp

See SetOperationResultGPOCommand.

Label Type Field Default Description
optional Reply reply    

StartCommand

Start the encode or inventory operation.

Label Type Field Default Description
optional bool reserved    

StartResp

The reply to StartCommand.

Label Type Field Default Description
optional Reply reply    

StartTriggerConfig

Always accept the start command from the client or optionally a GPI start trigger.

Label Type Field Default Description
optional bool enable_gpi_start_trigger true  

StopCommand

Stop the current device encode or inventory operation.

Label Type Field Default Description
optional bool reserved    

StopResp

See StopCommand.

Label Type Field Default Description
optional Reply reply    

StopTriggerConfig

Always accept stop command from the client or optionally from GPI, count, or timeout.

Label Type Field Default Description
optional bool enable_gpi_stop_trigger true  
optional uint32 timeout 0 Timeout in milliseconds. 0 = no timeout.

TIDMemory

Describes the TID memory of a tag.

Label Type Field Default Description
required bytes data   The data to write to a tag. The length of this binary string must be a multiple of 16-bits
optional uint32 word_offset 0 If you don’t want to start the data the beginning of memory, specify this offset so that the data and mask start at your specified word offset

TIDTableEntries

A list of tag operations to perform.

Label Type Field Default Description
repeated TIDTableEntry tid_table_entries    

TIDTableEntry

Describes the operation to perform on a single tag.

Label Type Field Default Description
required bytes TID   The TID of the tag for these encoding actions to be performed on.
optional EPCMemory EPC_memory    
optional TIDMemory TID_memory   This is the TID memory to write. In tags such as Monza4QT or UCodeX, there is writable memory in the TID memory bank after the read-only unique serialized TID bits.
optional UserMemory user_memory    
optional Password secure_password    
optional Password access_password    
optional Password kill_password    
optional LockConfig lock_config    
optional BlockPermalockConfig blockpermalock_config   NOT YET SUPPORTED
optional bool kill_tag    
optional bool void_tag    
optional MonzaR6PFeatureConfig monza_r6p_feature_config   MonzaR6PFeatureConfig will only be acted upon when encoding a Monza R6P tag. Will be ignored for all other tag types.
optional MonzaS6CFeatureConfig monza_s6c_feature_config   MonzaS6CFeatureConfig will only be acted upon when encoding a Monza S6C tag. Will be ignored for all other tag types.
optional MonzaR6FeatureConfig monza_r6_feature_config   MonzaR6FeatureConfig will only be acted upon when encoding a Monza R6 tag. Will be ignored for all other tag types.
optional MonzaR6AFeatureConfig monza_r6a_feature_config   MonzaR6AFeatureConfig will only be acted upon when encoding a Monza R6A tag. Will be ignored for all other tag types.

TagMetrics

Label Type Field Default Description
optional bytes tag_chip    
optional TagModeMetrics verify_basic_metrics    
optional TagModeMetrics verify_data_metrics    
optional TagModeMetrics encode_metrics    
optional TagModeMetrics inventory_metrics    
optional TagModeMetrics carton_contents_metrics    

TagModeMetrics

Label Type Field Default Description
optional uint64 total_count    
optional uint64 pass_count    
optional uint64 fail_count    
optional uint64 void_count    

TagOperationReport

Timestamp, antenna id, frequency, RSSI should be last values on last attempt. All *_result bools should be included and set to true when they are enabled in the OperationResponsibility and confirmed as complete.

Label Type Field Default Description
required TagOperationReportType tag_operation_report_type    
optional TagOperationResult tag_operation_result    
optional string tag_operation_result_detail    
optional bytes TID   big endian 16-bit words representing the TID.
optional bytes EPC   big endian 16-bit words representing the EPC.
optional bytes EPC_attempted    
optional bytes user_memory_inv   big endian 16-bit words representing the user memory. Used in Inventory mode, note that ‘user_memory_result’ is unrelated.
optional bool EPC_memory_result    
optional bool access_password_result    
optional bool kill_password_result    
optional bool lock_config_result    
optional bool user_memory_result    
optional bool blockpermalock_result    
optional bool kill_tag_result    
optional bool pc_word_result    
optional bool tag_specific_feature_config_result    
optional bool tid_write_result    
optional Timestamp timestamp    
optional uint32 antenna_ID    
optional uint32 frequency   Units are kHz
optional int32 RSSI   RSSI of the Ack response (EPC) in units of dBm * 100.
optional uint32 job_id    

TagOperationReportConfig

Configure what types of reports to send from the device.

Label Type Field Default Description
required bool enable_tag_operation_reports true  
optional bool enable_tag_operation_retry_reports false  
optional TagOperationReportTrigger tag_operation_report_trigger TAG_OPERATION_REPORT_TRIGGER_IMMEDIATE  
optional bool enable_reporting_over_serial_port false Send a brief one-line ASCII report over the device’s serial port. Only used for single operating mode. See OperationMode.
optional bool send_serial_report_after_GPO_deassert false Send after GPO pass/fail assert or deassert.
optional bool enable_epc_in_serial_report false This only has meaning if enable_reporting_over_serial_port is true. When this is false, the EPC reported in the serial tag report is the empty string instead of the actual EPC read. This is useful for reducing the amount of traffic over the serial port if the EPC is not useful for a particular application.
optional bool enable_tag_operation_pass_already_done_reports false  

Timestamp

The time that an event happened on the device. Used in reports so a client application knows when tag operations occur.

Label Type Field Default Description
optional uint64 useconds_since_epoch   Microseconds since Jan. 1 1970.

TriggerConfig

Define how GPI signals affect operations start and stop.

Label Type Field Default Description
optional StartTriggerConfig start_trigger_config    
optional StopTriggerConfig stop_trigger_config    

Update

Label Type Field Default Description
optional AddTIDTableEntriesCommand add_tid_table_entries    

UserMemory

Label Type Field Default Description
optional bytes data   data length must be a multiple of 16-bits, used in Encode and Verify modes
optional bytes mask   DEPRECATED
optional uint32 word_offset 0 If you don’t want to start the data the beginning of memory, specify this offset so that the data and mask start at your specified word offset.
optional uint32 word_count_inv 0 Number of words to read, used in Inventory mode, the default of 0 means don’t ready anything.

Version

A version of part of the system. The version number is usually in the form “major.minor.maintenance.build-ident”.

Label Type Field Default Description
required VersionType version_ID    
optional uint32 major   Also used for single number versions.
optional uint32 minor    
optional uint32 maintenance    
optional uint32 build    
optional string ident   A semicolon-separated list of additional version information, such as the name of the component and if a “Final” or “Dev” build was done.

Versions

A list of local API library and device versions.

Label Type Field Default Description
repeated Version version_list    

VoidTagConfig

Label Type Field Default Description
optional bool kill_tag   If kill_tag is set, it overrides the other possible voiding operations, and none of the other ones will be attempted.
optional bool permalock_all_banks   Attempt to permalock all the memory banks after writing a 0 length to the PC word and 0xDEADDEAD to the first 2 words of EPC memory.

VoidTagResponsibility

Label Type Field Default Description
optional bool pc_word_to_zero true Set EPC Length to 0.
optional bool first_epc_words true Encode first two EPC words to DEAD DEAD.
optional bool permalock true Permalock the entire tag.
optional bool kill true Kill the tag.

Table Of Contents

Previous topic

Encode Volume Keys