<?xml version="1.0" encoding="UTF-8"?>
<llrpdef
xmlns="http://www.llrp.org/ltk/schema/core/encoding/binary/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:llrpdef="http://www.llrp.org/ltk/schema/core/encoding/binary/1.0"
xsi:schemaLocation="http://www.llrp.org/ltk/schema/core/encoding/binary/1.0 http://www.llrp.org/ltk/schema/core/encoding/binary/1.0/llrpdef.xsd"
>
<namespaceDefinition
prefix="llrp"
URI="http://www.llrp.org/ltk/schema/core/encoding/xml/1.0"
schemaLocation="http://www.llrp.org/ltk/schema/core/encoding/xml/1.0/llrp.xsd"/>
<parameterDefinition name="UTCTimestamp" typeNum="128" required="false">
<annotation>
<documentation>
reference 7.1.3.1.1.1 and 16.2.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p> The timestamps in LLRP messages or parameters can be either the uptime or the UTC time [UTC]. If a Reader has an UTC clock, all timestamps reported by the Reader <h:b>SHALL</h:b> use an UTC timestamp parameter. If a Reader has no UTC clock capability, all timestamps reported by the Reader. <h:b>SHALL</h:b> use the uptime parameter. </h:p>
</description>
</annotation>
<field type="u64" name="Microseconds" format="Datetime"/>
</parameterDefinition>
<parameterDefinition name="Uptime" typeNum="129" required="false">
<annotation>
<documentation>
reference 7.1.3.1.1.2 and 16.2.2.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p> The timestamps in LLRP messages or parameters can be either the uptime or the UTC time [UTC]. If a Reader has an UTC clock, all timestamps reported by the Reader <h:b>SHALL</h:b> use an UTC timestamp parameter. If a Reader has no UTC clock capability, all timestamps reported by the Reader <h:b>SHALL</h:b> use the uptime parameter.</h:p>
</description>
</annotation>
<field type="u64" name="Microseconds"/>
</parameterDefinition>
<enumerationDefinition name="AirProtocols">
<annotation>
<documentation>
reference 7.1.4
</documentation>
<description>
<h:p>This is the identifier of the air protocol. </h:p>
</description>
</annotation>
<entry value="0" name="Unspecified"/>
<entry value="1" name="EPCGlobalClass1Gen2"/>
</enumerationDefinition>
<messageDefinition name="CUSTOM_MESSAGE" typeNum="1023" required="false">
<annotation>
<documentation>
reference 8.1 and 16.1.42
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message carries a vendor defined format from Reader to Client or Client to Reader. </h:p>
<h:p>No requirements are made as to the content or parameters contained within the Data portion of these messages. Clients <h:b>MAY</h:b> ignore CUSTOM_MESSAGEs. Readers <h:b>SHALL</h:b> accept CUSTOM_MESSAGE and return an ERROR_MESSAGE if CUSTOM_MESSAGE is unsupported by the Reader or the CUSTOM_MESSAGE contains fields and/or parameters that are unsupported by the Reader.</h:p>
</description>
</annotation>
<field type="u32" name="VendorIdentifier"/>
<field type="u8" name="MessageSubtype"/>
<field type="bytesToEnd" name="Data" format="Hex"/>
</messageDefinition>
<parameterDefinition name="Custom" typeNum="1023" required="false">
<annotation>
<documentation>
reference 8.2 and 16.2.9
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Certain Messages and Parameter Sets within LLRP allow for the insertion of vendor defined parameters</h:p>
<h:p>Clients <h:b>SHALL</h:b> accept messages (except for CUSTOM_MESSAGE) that contain custom parameters but <h:b>MAY</h:b> ignore all custom parameters within these messages. Readers <h:b>SHALL</h:b> accept messages (except for CUSTOM_MESSAGE) that contain custom parameters and <h:b>SHALL</h:b> return an error when such parameters are unsupported. </h:p>
</description>
</annotation>
<field type="u32" name="VendorIdentifier"/>
<field type="u32" name="ParameterSubtype"/>
<field type="bytesToEnd" name="Data" format="Hex"/>
</parameterDefinition>
<messageDefinition name="GET_READER_CAPABILITIES" typeNum="1" required="true" responseType="GET_READER_CAPABILITIES_RESPONSE">
<annotation>
<documentation>
reference 9.1.1 and 16.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is sent from the Client to the Reader. The Client is able to request only a subset or all the capabilities from the Reader.</h:p>
</description>
</annotation>
<field type="u8" name="RequestedData"
enumeration="GetReaderCapabilitiesRequestedData"/>
<parameter repeat="0-N" type="Custom"/>
</messageDefinition>
<enumerationDefinition name="GetReaderCapabilitiesRequestedData">
<annotation>
<documentation>
reference 9.1.1
</documentation>
</annotation>
<entry value="0" name="All"/>
<entry value="1" name="General_Device_Capabilities"/>
<entry value="2" name="LLRP_Capabilities"/>
<entry value="3" name="Regulatory_Capabilities"/>
<entry value="4" name="LLRP_Air_Protocol_Capabilities"/>
</enumerationDefinition>
<messageDefinition name="GET_READER_CAPABILITIES_RESPONSE" typeNum="11" required="true">
<annotation>
<documentation>
reference 9.1.2 and 16.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response from the Reader to the GET_READER_CAPABILITIES message. The response contains the LLRPStatus Parameter and the list of parameters for the requested capabilities conveyed via RequestedData in the GET_READER_CAPABILITIES message. </h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
<parameter repeat="0-1" type="GeneralDeviceCapabilities"/>
<parameter repeat="0-1" type="LLRPCapabilities"/>
<parameter repeat="0-1" type="RegulatoryCapabilities"/>
<choice repeat="0-1" type="AirProtocolLLRPCapabilities"/>
<parameter repeat="0-N" type="Custom"/>
</messageDefinition>
<parameterDefinition name="GeneralDeviceCapabilities" typeNum="137" required="true">
<annotation>
<documentation>
reference 9.2.1 and 16.2.3.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the general capabilities of the device like supported air protocols, version of the Reader firmware, device hardware and software information, and receive sensitivity table. </h:p>
</description>
</annotation>
<field type="u16" name="MaxNumberOfAntennaSupported"/>
<field type="u1" name="CanSetAntennaProperties"/>
<field type="u1" name="HasUTCClockCapability"/>
<reserved bitCount="14"/>
<field type="u32" name="DeviceManufacturerName"/>
<field type="u32" name="ModelName"/>
<field type="utf8v" name="ReaderFirmwareVersion" format="UTF8"/>
<parameter repeat="1-N" type="ReceiveSensitivityTableEntry"/>
<parameter repeat="0-N" type="PerAntennaReceiveSensitivityRange"/>
<parameter repeat="1" type="GPIOCapabilities"/>
<parameter repeat="1-N" type="PerAntennaAirProtocol"/>
</parameterDefinition>
<parameterDefinition name="ReceiveSensitivityTableEntry" typeNum="139" required="true">
<annotation>
<documentation>
reference 9.2.1.1 and 16.2.3.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter specifies the index into the Receive Sensitivity Table for a receive sensitivity value. The receive sensitivity is expressed in dB and the value is relative to the maximum sensitivity. If the Reader does not allow control of receive sensitivity, a table of one entry is returned, the entry having the value of zero.</h:p>
<h:p>If the Reader allows control of receive sensitivity and the Reader also supports multiple antennas where the antennas can have different receive sensitivity values, then the Receive Sensitivity Table should be a set of values representing the union of sensitivity values for all antennas.</h:p>
</description>
</annotation>
<field type="u16" name="Index"/>
<field type="s16" name="ReceiveSensitivityValue"/>
</parameterDefinition>
<parameterDefinition name="PerAntennaReceiveSensitivityRange" typeNum="149" required="false">
<annotation>
<documentation>
reference 9.2.1.2 and 16.2.3.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>For a particular antenna, this parameter specifies the Reader's valid index range in the Receive Sensitivity Table. A Reader should report this parameter if the Reader allows control of receive sensitivity (i.e., the Reader reports a Receive Sensitivity Table with more than one entry) and the Reader supports multiple antennas where the antennas can have different receive sensitivity values.</h:p>
<h:p>If this parameter is omitted, then the Client <h:b>SHALL</h:b> assume that for all of the Reader's antennas the index range is the same as in the Receive Sensitivity Table.</h:p>
</description>
</annotation>
<field type="u16" name="AntennaID"/>
<field type="u16" name="ReceiveSensitivityIndexMin"/>
<field type="u16" name="ReceiveSensitivityIndexMax"/>
</parameterDefinition>
<parameterDefinition name="PerAntennaAirProtocol" typeNum="140" required="true">
<annotation>
<documentation>
reference 9.2.1.3 and 16.2.3.1.3
</documentation>
<description>
<h:p>Describes the air-protocols supporter on a per-antenna basis.</h:p>
</description>
</annotation>
<field type="u16" name="AntennaID"/>
<field type="u8v" name="ProtocolID"
enumeration="AirProtocols"/>
</parameterDefinition>
<parameterDefinition name="GPIOCapabilities" typeNum="141" required="true">
<annotation>
<documentation>
reference 9.2.1.4 and 16.2.3.1.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter describes the GPIO capabilities of the Reader. A value of zero for NumGPIs indicates that the Reader does not have general purpose inputs. A value of zero for NumGPOs indicates that the Reader does not have general purpose outputs.</h:p>
</description>
</annotation>
<field type="u16" name="NumGPIs"/>
<field type="u16" name="NumGPOs"/>
</parameterDefinition>
<parameterDefinition name="LLRPCapabilities" typeNum="142" required="true">
<annotation>
<documentation>
reference 9.2.2 and 16.2.3.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter describes the LLRP protocol capabilities of the Reader. These include optional LLRP commands and parameters, capacities of data structures used in LLRP operations, and air protocol specific capabilities used by LLRP.</h:p>
<h:p>Readers <h:b>MAY</h:b> support RFSurvey, <h:b>MAY</h:b> support tag inventory state aware singulation, <h:b>MAY</h:b> support UTC clocks, <h:b>MAY</h:b> support buffer fill warning reports, <h:b>MAY</h:b> support EventAndReportHolding upon reconnect, and <h:b>MAY</h:b> support ClientRequestOpspec. Readers <h:b>SHALL</h:b> support at least one ROSpec, one AISpec per ROSpec, one InventoryParameterSpec per AISpec, one AccessSpec, and one OpSpec per AccessSpec.</h:p>
</description>
</annotation>
<field type="u1" name="CanDoRFSurvey"/>
<field type="u1" name="CanReportBufferFillWarning"/>
<field type="u1" name="SupportsClientRequestOpSpec"/>
<field type="u1" name="CanDoTagInventoryStateAwareSingulation"/>
<field type="u1" name="SupportsEventAndReportHolding"/>
<reserved bitCount="3"/>
<field type="u8" name="MaxNumPriorityLevelsSupported"/>
<field type="u16" name="ClientRequestOpSpecTimeout"/>
<field type="u32" name="MaxNumROSpecs"/>
<field type="u32" name="MaxNumSpecsPerROSpec"/>
<field type="u32" name="MaxNumInventoryParameterSpecsPerAISpec"/>
<field type="u32" name="MaxNumAccessSpecs"/>
<field type="u32" name="MaxNumOpSpecsPerAccessSpec"/>
</parameterDefinition>
<parameterDefinition name="RegulatoryCapabilities" typeNum="143" required="true">
<annotation>
<documentation>
reference 9.2.4 and 16.2.3.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the RF regulation specific attributes. They include regulatory standard, frequency band information, power levels supported, frequencies supported, and any air protocol specific values that are determined based on regulatory restriction. </h:p>
<h:p> The regulatory standard is encoded using two Integer fields, (Country Code, Communications standard) and it specifies the current operational regulatory mode of the device. This should not be used to reflect the ability to operate in regulatory environments which require configuration different from the current. This version of the LLRP protocol will have support for only the UHF band. </h:p>
</description>
</annotation>
<field type="u16" name="CountryCode"/>
<field type="u16" name="CommunicationsStandard"
enumeration="CommunicationsStandard"/>
<parameter repeat="0-1" type="UHFBandCapabilities"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<enumerationDefinition name="CommunicationsStandard">
<annotation>
<documentation>
reference 9.2.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This field carries the enumerations of the communications standard.</h:p>
</description>
</annotation>
<entry value="0" name="Unspecified"/>
<entry value="1" name="US_FCC_Part_15"/>
<entry value="2" name="ETSI_302_208"/>
<entry value="3" name="ETSI_300_220"/>
<entry value="4" name="Australia_LIPD_1W"/>
<entry value="5" name="Australia_LIPD_4W"/>
<entry value="6" name="Japan_ARIB_STD_T89"/>
<entry value="7" name="Hong_Kong_OFTA_1049"/>
<entry value="8" name="Taiwan_DGT_LP0002"/>
<entry value="9" name="Korea_MIC_Article_5_2"/>
</enumerationDefinition>
<parameterDefinition name="UHFBandCapabilities" typeNum="144" required="true">
<annotation>
<documentation>
reference 9.2.4.1 and 16.2.3.4.1
</documentation>
<description>
<h:p>Describes the frequency, power, and air-protocol capabilities for the regulatory region.</h:p>
</description>
</annotation>
<parameter repeat="1-N" type="TransmitPowerLevelTableEntry"/>
<parameter repeat="1" type="FrequencyInformation"/>
<choice repeat="1-N" type="AirProtocolUHFRFModeTable"/>
</parameterDefinition>
<parameterDefinition name="TransmitPowerLevelTableEntry" typeNum="145" required="true">
<annotation>
<documentation>
reference 9.2.4.1.1 and 16.2.3.4.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter specifies the index into the TransmitPowerLevelTable for a transmit power value. The transmit power is expressed in dBm*100 to allow fractional dBm representation and is the conducted power at the connector of the Reader.</h:p>
</description>
</annotation>
<field type="u16" name="Index"/>
<field type="s16" name="TransmitPowerValue"/>
</parameterDefinition>
<parameterDefinition name="FrequencyInformation" typeNum="146" required="true">
<annotation>
<documentation>
reference 9.2.4.1.2 and 16.2.3.4.1.2
</documentation>
<description>
<h:p>Describes the fixed frequency or hopping frequencies supported in this UHFBand.</h:p>
</description>
</annotation>
<field type="u1" name="Hopping"/>
<reserved bitCount="7"/>
<parameter repeat="0-N" type="FrequencyHopTable"/>
<parameter repeat="0-1" type="FixedFrequencyTable"/>
</parameterDefinition>
<parameterDefinition name="FrequencyHopTable" typeNum="147" required="true">
<annotation>
<documentation>
reference 9.2.4.1.2.1 and 16.2.3.4.1.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the frequency hop table parameters. This is used for Readers operating in regions with frequency hopping regulatory requirements. If the Reader is capable of storing multiple hop tables, the Reader may send all of them to the Client.</h:p>
<h:ul>
<h:li><h:p>HopTableID which is the index of the frequency hop table returned by the Reader.</h:p></h:li>
<h:li><h:p>This is followed by a list of the frequencies (in kKHhz) in hop table order. The one-based position of a frequency in the list is defined as its ChannelIndex (i.e. the first frequency is referred to as ChannelIndex one).</h:p></h:li>
</h:ul>
</description>
</annotation>
<field type="u8" name="HopTableID"/>
<reserved bitCount="8"/>
<field type="u32v" name="Frequency"/>
</parameterDefinition>
<parameterDefinition name="FixedFrequencyTable" typeNum="148" required="true">
<annotation>
<documentation>
reference 9.2.4.1.2.2 and 16.2.3.4.1.2.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the fixed frequency list that can be used by the Reader. The one-based position of a frequency in the list is defined as its ChannelIndex (i.e. the first frequency is referred to as ChannelIndex one).</h:p>
</description>
</annotation>
<field type="u32v" name="Frequency"/>
</parameterDefinition>
<messageDefinition name="ADD_ROSPEC" typeNum="20" required="true" responseType="ADD_ROSPEC_RESPONSE">
<annotation>
<documentation>
reference 10.1.1 and 16.1.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>An ADD_ROSPEC message communicates the information of a ROSpec to the Reader. LLRP supports configuration of multiple ROSpecs. Each ROSpec is uniquely identified using a ROSpecID, generated by the Client. The ROSpec starts at the Disabled state waiting for the ENABLE_ROSPEC message for the ROSpec from the Client, upon which it transitions to the Inactive state.</h:p>
<h:p>The Client <h:b>SHALL</h:b> add a ROSpec in a Disabled State - i.e., CurrentState field in the ROSpec Parameter (section 10.2.1) <h:b>SHALL</h:b> be set to disabled. If the CurrentState value is different than disabled, an error <h:b>SHALL</h:b> be returned in the ADD_ROSPEC_RESPONSE (e.g. P_FieldError).</h:p>
</description>
</annotation>
<parameter repeat="1" type="ROSpec"/>
</messageDefinition>
<messageDefinition name="ADD_ROSPEC_RESPONSE" typeNum="30" required="true">
<annotation>
<documentation>
reference 10.1.2 and 16.1.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to an ADD_ROSPEC message. If all the parameters specified in the ADD_ROSPEC command are successfully set, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="DELETE_ROSPEC" typeNum="21" required="true" responseType="DELETE_ROSPEC_RESPONSE">
<annotation>
<documentation>
reference 10.1.3 and 16.1.5
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This command is issued by the Client to the Reader. This command deletes the ROSpec at the Reader corresponding to ROSpecID passed in this message.</h:p>
<h:p>ROSpecID: Zero indicates to delete all ROSpecs.</h:p>
</description>
</annotation>
<field type="u32" name="ROSpecID"/>
</messageDefinition>
<messageDefinition name="DELETE_ROSPEC_RESPONSE" typeNum="31" required="true">
<annotation>
<documentation>
reference 10.1.4 and 16.1.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a DELETE_ROSPEC command. If there was a ROSpec corresponding to the ROSpecID that the Reader was presently executing, and the Reader was successful in stopping that execution, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="START_ROSPEC" typeNum="22" required="true" responseType="START_ROSPEC_RESPONSE">
<annotation>
<documentation>
reference 10.1.5 and 16.1.7
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Client to the Reader. Upon receiving the message, the Reader starts the ROSpec corresponding to ROSpecID passed in this message, if the ROSpec is in the enabled state.</h:p>
<h:p>ROSpecID: Zero is disallowed.</h:p>
</description>
</annotation>
<field type="u32" name="ROSpecID"/>
</messageDefinition>
<messageDefinition name="START_ROSPEC_RESPONSE" typeNum="32" required="true">
<annotation>
<documentation>
reference 10.1.6 and 16.1.8
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a START_ROSPEC command. If there was a ROSpec corresponding to the ROSpecID in the enabled state, and the Reader was able to start executing that ROSpec, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="STOP_ROSPEC" typeNum="23" required="true" responseType="STOP_ROSPEC_RESPONSE">
<annotation>
<documentation>
reference 10.1.7 and 16.1.9
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Client to the Reader. Upon receiving the message, the Reader stops the execution of the ROSpec corresponding to the ROSpecID passed in this message. STOP_ROSPEC overrides all other priorities and stops the execution. This basically moves the ROSpec's state to Inactive. This message does not the delete the ROSpec.</h:p>
<h:p>ROSpecID: Zero is disallowed.</h:p>
</description>
</annotation>
<field type="u32" name="ROSpecID"/>
</messageDefinition>
<messageDefinition name="STOP_ROSPEC_RESPONSE" typeNum="33" required="true">
<annotation>
<documentation>
reference 10.1.8 and 16.1.10
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a STOP_ROSPEC command. If the Reader was currently executing the ROSpec corresponding to the ROSpecID, and the Reader was able to stop executing that ROSpec, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="ENABLE_ROSPEC" typeNum="24" required="true" responseType="ENABLE_ROSPEC_RESPONSE">
<annotation>
<documentation>
reference 10.1.9 and 16.1.11
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Client to the Reader. Upon receiving the message, the Reader moves the ROSpec corresponding to the ROSpecID passed in this message from the disabled to the enabled state.</h:p>
<h:p>ROSpecID: If set to zero, all ROSpecs are enabled.</h:p>
</description>
</annotation>
<field type="u32" name="ROSpecID"/>
</messageDefinition>
<messageDefinition name="ENABLE_ROSPEC_RESPONSE" typeNum="34" required="true">
<annotation>
<documentation>
reference 10.1.10 and 16.1.12
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a ENABLE_ROSPEC command. If there was a ROSpec corresponding to the ROSpecID, and the Reader was able to enable that ROSpec, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="DISABLE_ROSPEC" typeNum="25" required="true" responseType="DISABLE_ROSPEC_RESPONSE">
<annotation>
<documentation>
reference 10.1.11 and 16.1.13
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Client to the Reader. Upon receiving the message, the Reader moves the ROSpec corresponding to the ROSpecID passed in this message to the disabled state.</h:p>
<h:p>ROSpecID: If set to Zero, all ROSpecs are disabled.</h:p>
</description>
</annotation>
<field type="u32" name="ROSpecID"/>
</messageDefinition>
<messageDefinition name="DISABLE_ROSPEC_RESPONSE" typeNum="35" required="true">
<annotation>
<documentation>
reference 10.1.12 and 16.1.14
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a DISABLE_ROSPEC command. If there was a ROSpec corresponding to the ROSpecID, and the Reader was able to disable that ROSpec, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="GET_ROSPECS" typeNum="26" required="true" responseType="GET_ROSPECS_RESPONSE">
<annotation>
<documentation>
reference 10.1.13 and 16.1.15
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the request from the Client to the Reader to retrieve all the ROSpecs that have been configured at the Reader.</h:p>
</description>
</annotation>
</messageDefinition>
<messageDefinition name="GET_ROSPECS_RESPONSE" typeNum="36" required="true">
<annotation>
<documentation>
reference 10.1.14 and 16.1.16
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a GET_ROSPECS command. If there are no ROSpecs configured at the Reader, the response is just the LLRPStatus parameter with the success code. Else, a list of ROSpec parameter is returned by the Reader, along with the success code in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
<parameter repeat="0-N" type="ROSpec"/>
</messageDefinition>
<parameterDefinition name="ROSpec" typeNum="177" required="true">
<annotation>
<documentation>
reference 10.2.1 and 16.2.4.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc.">
<h:p>This parameter carries the information of the Reader inventory and survey operation.</h:p>
</description>
</annotation>
<field type="u32" name="ROSpecID"/>
<field type="u8" name="Priority"/>
<field type="u8" name="CurrentState"
enumeration="ROSpecState"/>
<parameter repeat="1" type="ROBoundarySpec"/>
<choice repeat="1-N" type="SpecParameter"/>
<parameter repeat="0-1" type="ROReportSpec"/>
</parameterDefinition>
<enumerationDefinition name="ROSpecState">
<annotation>
<documentation>
reference 10.2.1
</documentation>
</annotation>
<entry value="0" name="Disabled"/>
<entry value="1" name="Inactive"/>
<entry value="2" name="Active"/>
</enumerationDefinition>
<choiceDefinition name="SpecParameter">
<parameter type="AISpec"/>
<parameter type="RFSurveySpec"/>
<parameter type="Custom"/>
</choiceDefinition>
<parameterDefinition name="ROBoundarySpec" typeNum="178" required="true">
<annotation>
<documentation>
reference 10.2.1.1 and 16.2.4.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the lifetime of the command, ROStartTrigger and ROStopTrigger parameters.</h:p>
</description>
</annotation>
<parameter repeat="1" type="ROSpecStartTrigger"/>
<parameter repeat="1" type="ROSpecStopTrigger"/>
</parameterDefinition>
<parameterDefinition name="ROSpecStartTrigger" typeNum="179" required="true">
<annotation>
<documentation>
reference 10.2.1.1.1 and 16.2.4.1.1.1
</documentation>
<description>
<h:p>Describes the condition upon which the ROSpec will start execution.</h:p>
</description>
</annotation>
<field type="u8" name="ROSpecStartTriggerType"
enumeration="ROSpecStartTriggerType"/>
<parameter repeat="0-1" type="PeriodicTriggerValue"/>
<parameter repeat="0-1" type="GPITriggerValue"/>
</parameterDefinition>
<enumerationDefinition name="ROSpecStartTriggerType">
<annotation>
<documentation>
reference 10.2.1.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description</h:p>
<h:ul>
<h:li><h:p>0: Null. No start trigger. The only way to start this ROSpec is with a START_ROSPEC from the Client.</h:p></h:li>
<h:li><h:p>1: Immediate</h:p></h:li>
<h:li><h:p>2: Periodic</h:p></h:li>
<h:li><h:p>3: GPI</h:p></h:li>
</h:ul>
</description>
</annotation>
<entry value="0" name="Null"/>
<entry value="1" name="Immediate"/>
<entry value="2" name="Periodic"/>
<entry value="3" name="GPI"/>
</enumerationDefinition>
<parameterDefinition name="PeriodicTriggerValue" typeNum="180" required="true">
<annotation>
<documentation>
reference 10.2.1.1.1.1 and 16.2.4.1.1.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Periodic trigger is specified using UTC time, offset and period.</h:p>
<h:p>For one-shot inventory, period is set to 0, and for periodic inventory operation period > 0.</h:p>
<h:p>If UTC time is not specified, the first start time is determined as (time of message receipt + offset), else, the first start time is determined as (UTC time + offset). Subsequent start times = first start time + k * period (where, k > 0).</h:p>
<h:p>If the Reader does not support UTC clock (as indicated by HasUTCClockCapability), and it receives the UTC time as part of the PeriodicTriggerValue parameter from the Client, the Reader <h:b>SHALL</h:b> return an error.</h:p>
</description>
</annotation>
<field type="u32" name="Offset"/>
<field type="u32" name="Period"/>
<parameter repeat="0-1" type="UTCTimestamp"/>
</parameterDefinition>
<parameterDefinition name="GPITriggerValue" typeNum="181" required="true">
<annotation>
<documentation>
reference 10.2.1.1.1.2 and 16.2.4.1.1.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This trigger is tied to an event on the General Purpose Input (GPI) of the Reader. The event is represented as a boolean type, and it is up to the internal implementation of the Reader to map exact physical event to a boolean type. For example, a 0 to 1 and a 1 to 0 transition on an input pin of the Reader could be mapped to a boolean true and a boolean false event respectively.</h:p>
<h:p>This trigger parameter has a timeout value field. The timeout is useful for specifying a fail-safe timeout when this trigger is used as a stop trigger. When the timeout is 0, it indicates that there is no timeout. When used as a start trigger, the timeout value <h:b>SHALL</h:b> be ignored.</h:p>
<h:p>Readers that do not support GPIs <h:b>SHALL</h:b> return zero for numGPIs in the capabilities discovery. If the Client sets up the GPI trigger for such a Reader, the Reader <h:b>SHALL</h:b> send an error message for the ADD_ROSPEC message and not add the ROSpec.</h:p>
</description>
</annotation>
<field type="u16" name="GPIPortNum"/>
<field type="u1" name="GPIEvent"/>
<reserved bitCount="7"/>
<field type="u32" name="Timeout"/>
</parameterDefinition>
<parameterDefinition name="ROSpecStopTrigger" typeNum="182" required="true">
<annotation>
<documentation>
reference 10.2.1.1.2 and 16.2.4.1.1.2
</documentation>
<description>
<h:p>Describes the condition upon which the ROSpec will stop.</h:p>
</description>
</annotation>
<field type="u8" name="ROSpecStopTriggerType"
enumeration="ROSpecStopTriggerType"/>
<field type="u32" name="DurationTriggerValue"/>
<parameter repeat="0-1" type="GPITriggerValue"/>
</parameterDefinition>
<enumerationDefinition name="ROSpecStopTriggerType">
<annotation>
<documentation>
reference 10.2.1.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description</h:p>
<h:ul>
<h:li><h:p>0: Null - Stop when all AISpecs are done, or when preempted, or with a STOP_ROSPEC from the Client.</h:p></h:li>
<h:li><h:p>1: Duration</h:p></h:li>
<h:li><h:p>2: GPI with a timeout value</h:p></h:li>
</h:ul>
</description>
</annotation>
<entry value="0" name="Null"/>
<entry value="1" name="Duration"/>
<entry value="2" name="GPI_With_Timeout"/>
</enumerationDefinition>
<parameterDefinition name="AISpec" typeNum="183" required="true">
<annotation>
<documentation>
reference 10.2.2 and 16.2.4.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter defines antenna inventory operations.</h:p>
</description>
</annotation>
<field type="u16v" name="AntennaIDs"/>
<parameter repeat="1" type="AISpecStopTrigger"/>
<parameter repeat="1-N" type="InventoryParameterSpec"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<parameterDefinition name="AISpecStopTrigger" typeNum="184" required="true">
<annotation>
<documentation>
reference 10.2.2.1 and 16.2.4.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter defines the stop (i.e., terminating boundary) of an antenna inventory operation.</h:p>
</description>
</annotation>
<field type="u8" name="AISpecStopTriggerType"
enumeration="AISpecStopTriggerType"/>
<field type="u32" name="DurationTrigger"/>
<parameter repeat="0-1" type="GPITriggerValue"/>
<parameter repeat="0-1" type="TagObservationTrigger"/>
</parameterDefinition>
<enumerationDefinition name="AISpecStopTriggerType">
<annotation>
<documentation>
reference 10.2.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description:</h:p>
<h:ul>
<h:li><h:p>0: Null - Stop when ROSpec is done.</h:p></h:li>
<h:li><h:p>1: Duration</h:p></h:li>
<h:li><h:p>2: GPI with a timeout value</h:p></h:li>
<h:li><h:p>3: Tag observation</h:p></h:li>
</h:ul>
</description>
</annotation>
<entry value="0" name="Null"/>
<entry value="1" name="Duration"/>
<entry value="2" name="GPI_With_Timeout"/>
<entry value="3" name="Tag_Observation"/>
</enumerationDefinition>
<parameterDefinition name="TagObservationTrigger" typeNum="185" required="true">
<annotation>
<documentation>
reference 10.2.2.1.1 and 16.2.4.2.1.1
</documentation>
<description >
<h:p>Describes the boundary (stop) condition that is based on tag observations.</h:p>
</description>
</annotation>
<field type="u8" name="TriggerType"
enumeration="TagObservationTriggerType"/>
<reserved bitCount="8"/>
<field type="u16" name="NumberOfTags"/>
<field type="u16" name="NumberOfAttempts"/>
<field type="u16" name="T"/>
<field type="u32" name="Timeout"/>
</parameterDefinition>
<enumerationDefinition name="TagObservationTriggerType">
<annotation>
<documentation>
reference 10.2.2.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description:</h:p>
<h:ul>
<h:li><h:p>0: Upon seeing N tag observations, or timeout</h:p></h:li>
<h:li><h:p>1: Upon seeing no more new tag observations for t ms, or timeout</h:p></h:li>
<h:li><h:p>2: N attempts to see all tags in the FOV, or timeout</h:p></h:li>
</h:ul>
</description>
</annotation>
<entry value="0" name="Upon_Seeing_N_Tags_Or_Timeout"/>
<entry value="1" name="Upon_Seeing_No_More_New_Tags_For_Tms_Or_Timeout"/>
<entry value="2" name="N_Attempts_To_See_All_Tags_In_FOV_Or_Timeout"/>
</enumerationDefinition>
<parameterDefinition name="InventoryParameterSpec" typeNum="186" required="true">
<annotation>
<documentation>
reference 10.2.2.2 and 16.2.4.2.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter defines the inventory operation to be performed at all antennas specified in the corresponding AISpec. This parameter is composed of an InventoryParameterSpecID, a ProtocolID, and zero or more optional antenna configuration parameters. Antenna configurations for antennas not indicated by the AntennaIDs within the AISpec are ignored by the reader.</h:p>
</description>
</annotation>
<field type="u16" name="InventoryParameterSpecID"/>
<field type="u8" name="ProtocolID"
enumeration="AirProtocols"/>
<parameter repeat="0-N" type="AntennaConfiguration"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<parameterDefinition name="RFSurveySpec" typeNum="187" required="false">
<annotation>
<documentation>
reference 10.2.3 and 16.2.4.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter defines RF Survey operations. RF Survey is an operation during which the Reader performs a scan and measures the power levels across a set of frequencies at an antenna. This parameter defines the identifier of the antenna where this survey is to be performed, the duration of the survey operation (specified via stop trigger), and the range of frequencies to measure power levels of.</h:p>
</description>
</annotation>
<field type="u16" name="AntennaID"/>
<field type="u32" name="StartFrequency"/>
<field type="u32" name="EndFrequency"/>
<parameter repeat="1" type="RFSurveySpecStopTrigger"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<parameterDefinition name="RFSurveySpecStopTrigger" typeNum="188" required="false">
<annotation>
<documentation>
reference 10.2.3.1 and 16.2.4.3.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter defines the stop trigger for RF Survey operations.</h:p>
</description>
</annotation>
<field type="u8" name="StopTriggerType"
enumeration="RFSurveySpecStopTriggerType"/>
<field type="u32" name="DurationPeriod"/>
<field type="u32" name="N"/>
</parameterDefinition>
<enumerationDefinition name="RFSurveySpecStopTriggerType">
<annotation>
<documentation>
reference 10.2.3.1
</documentation>
</annotation>
<entry value="0" name="Null"/>
<entry value="1" name="Duration"/>
<entry value="2" name="N_Iterations_Through_Frequency_Range"/>
</enumerationDefinition>
<messageDefinition name="ADD_ACCESSSPEC" typeNum="40" required="true" responseType="ADD_ACCESSSPEC_RESPONSE">
<annotation>
<documentation>
reference 11.1.1 and 16.1.17
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This command creates a new AccessSpec at the Reader. The AccessSpec starts at the Disabled state waiting for the ENABLE_ACCESSSPEC message for the AccessSpec from the Client, upon which it transitions to the Active state. The AccessSpecID is generated by the Client.</h:p>
<h:p>The Client <h:b>SHALL</h:b> add an AccessSpec in a Disabled State i.e., CurrentState field in the AccessSpec Parameter (section 11.2.1) <h:b>SHALL</h:b> be set to false. If the CurrentState value is different than false, an error <h:b>SHALL</h:b> be returned in the ADD_ACCESSSPEC_RESPONSE (e.g. P_FieldError).</h:p>
</description>
</annotation>
<parameter repeat="1" type="AccessSpec"/>
</messageDefinition>
<messageDefinition name="ADD_ACCESSSPEC_RESPONSE" typeNum="50" required="true">
<annotation>
<documentation>
reference 11.1.2 and 16.1.18
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to an ADD_ACCESSSPEC command. If the parameters passed in that ADD_ACCESSSPEC command were successfully accepted and set at the Reader, then the success code is returned in the LLRPStatus parameter. However, if the AccessSpec was not successfully created at the Reader, the Reader sends a LLRPStatus parameter describing the error in the message.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="DELETE_ACCESSSPEC" typeNum="41" required="true" responseType="DELETE_ACCESSSPEC_RESPONSE">
<annotation>
<documentation>
reference 11.1.3 and 16.1.19
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This command is issued by the Client to the Reader. The Reader deletes the AccessSpec corresponding to the AccessSpecId, and this AccessSpec will stop taking effect from the next inventory round.</h:p>
<h:p>AccessSpecID: If set to Zero, all AccessSpecs are deleted.</h:p>
</description>
</annotation>
<field type="u32" name="AccessSpecID"/>
</messageDefinition>
<messageDefinition name="DELETE_ACCESSSPEC_RESPONSE" typeNum="51" required="true">
<annotation>
<documentation>
reference 11.1.4 and 16.1.20
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a DELETE_ACCESSSPEC command. If there was an AccessSpec at the Reader corresponding to the AccessSpecID passed in the DELETE_ACCESSSPEC command, and the Reader was successful in deleting that AccessSpec, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="ENABLE_ACCESSSPEC" typeNum="42" required="true" responseType="ENABLE_ACCESSSPEC_RESPONSE">
<annotation>
<documentation>
reference 11.1.5 and 16.1.21
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Client to the Reader. Upon receiving the message, the Reader moves the AccessSpec corresponding to the AccessSpecID in this message from the Disabled state to the Active state. The Reader executes this access-spec until it gets a DISABLE_ACCESSSPEC or a DELETE_ACCESSSPEC from the Client. The AccessSpec takes effect with the next (and subsequent) inventory rounds.</h:p>
<h:p>AccessSpecID: If set to 0, all AccessSpecs are enabled.</h:p>
</description>
</annotation>
<field type="u32" name="AccessSpecID"/>
</messageDefinition>
<messageDefinition name="ENABLE_ACCESSSPEC_RESPONSE" typeNum="52" required="true">
<annotation>
<documentation>
reference 11.1.6 and 16.1.22
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to an ENABLE_ACCESSSPEC command. If there was an AccessSpec corresponding to the AccessSpecID, and the Reader was able to move that AccessSpec from the disabled to the active state, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="DISABLE_ACCESSSPEC" typeNum="43" required="true" responseType="DISABLE_ACCESSSPEC_RESPONSE">
<annotation>
<documentation>
reference 11.1.7 and 16.1.23
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Client to the Reader. Upon receiving the message, the Reader stops the execution of the AccessSpec corresponding to AccessSpecID in this message. This basically moves the AccessSpec's state to Disabled. This message does not delete the AccessSpec. The AccessSpec will stop taking effect from the next inventory round.</h:p>
<h:p>AccessSpecID: If set to zero, all AccessSpecs are disabled.</h:p>
</description>
</annotation>
<field type="u32" name="AccessSpecID"/>
</messageDefinition>
<messageDefinition name="DISABLE_ACCESSSPEC_RESPONSE" typeNum="53" required="true">
<annotation>
<documentation>
reference 11.1.8 and 16.1.24
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a STOP_ACCESSSPEC command. If the Reader was currently executing the AccessSpec corresponding to the AccessSpecID, and the Reader was able to disable that AccessSpec, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="GET_ACCESSSPECS" typeNum="44" required="true" responseType="GET_ACCESSSPECS_RESPONSE">
<annotation>
<documentation>
reference 11.1.9 and 16.1.25
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the request from the Client to the Reader to retrieve all the AccessSpecs that have been configured at the Reader.</h:p>
</description>
</annotation>
</messageDefinition>
<messageDefinition name="GET_ACCESSSPECS_RESPONSE" typeNum="54" required="true">
<annotation>
<documentation>
reference 11.1.10 and 16.1.26
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a GET_ACCESSSPECS command. If there are no AccessSpecs configured at the Reader, the response is just the LLRPStatus parameter with the success code. Else, a list of (AccessSpecID, AccessSpec parameter) is returned by the Reader, along with the LLRPStatus parameter containing the success code. The order of the AccessSpecs listed in the message is normatively the order in which the AccessSpecs were created at the Reader.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
<parameter repeat="0-N" type="AccessSpec"/>
</messageDefinition>
<parameterDefinition name="AccessSpec" typeNum="207" required="true">
<annotation>
<documentation>
reference 11.2.1 and 16.2.5.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc.">
<h:p>This parameter carries information of the Reader access operation.</h:p>
</description>
</annotation>
<field type="u32" name="AccessSpecID"/>
<field type="u16" name="AntennaID"/>
<field type="u8" name="ProtocolID"
enumeration="AirProtocols"/>
<field type="u1" name="CurrentState"
enumeration="AccessSpecState"/>
<reserved bitCount="7"/>
<field type="u32" name="ROSpecID"/>
<parameter repeat="1" type="AccessSpecStopTrigger"/>
<parameter repeat="1" type="AccessCommand"/>
<parameter repeat="0-1" type="AccessReportSpec"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<enumerationDefinition name="AccessSpecState">
<annotation>
<documentation>
reference 11.2.1
</documentation>
</annotation>
<entry value="0" name="Disabled"/>
<entry value="1" name="Active"/>
</enumerationDefinition>
<parameterDefinition name="AccessSpecStopTrigger" typeNum="208" required="true">
<annotation>
<documentation>
reference 11.2.1.1 and 16.2.5.1.1
</documentation>
<description>
<h:p>Defines the condition upon which an AccessSpec will be automatically deleted</h:p>
<h:p>OperationCountValue: A count to indicate the number of times this Spec is executed before it is deleted. If set to zero, this is equivalent to no stop trigger defined.</h:p>
</description>
</annotation>
<field type="u8" name="AccessSpecStopTrigger"
enumeration="AccessSpecStopTriggerType"/>
<field type="u16" name="OperationCountValue"/>
</parameterDefinition>
<enumerationDefinition name="AccessSpecStopTriggerType">
<annotation>
<documentation>
reference 11.2.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description:</h:p>
<h:ul>
<h:li><h:p>0: Null - No stop trigger defined.</h:p></h:li>
<h:li><h:p>1: Operation count</h:p></h:li>
</h:ul>
</description>
</annotation>
<entry value="0" name="Null"/>
<entry value="1" name="Operation_Count"/>
</enumerationDefinition>
<parameterDefinition name="AccessCommand" typeNum="209" required="true">
<annotation>
<documentation>
reference 11.2.1.2 and 16.2.5.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter defines the air protocol access-specific settings. It contains a TagSpec and an OpSpec Parameter. The TagSpec specifies the tag filters in terms of air protocol specific memory capabilities (e.g., memory banks, pointer and length). The OpSpec specifies all the details of the operations required for the air protocol specific access operation commands.</h:p>
<h:p> In case there are multiple AccessSpecs that get matched during a TagSpec lookup, the Reader <h:b>SHALL</h:b> only execute the first enabled AccessSpec that matches, where the ordering of the AccessSpecs is the order in which the AccessSpecs were created by the Client.</h:p>
<h:p>The order of execution of OpSpecs within an AccessSpec is the order in which the OpSpecs were set up in the AccessSpec. If an OpSpec execution fails, the Reader <h:b>SHALL</h:b> stop the execution of the AccessSpec.</h:p>
</description>
</annotation>
<choice repeat="1" type="AirProtocolTagSpec"/>
<choice repeat="1-N" type="AccessCommandOpSpec"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<choiceDefinition name="AccessCommandOpSpec">
<parameter type="C1G2Read"/>
<parameter type="C1G2Write"/>
<parameter type="C1G2Kill"/>
<parameter type="C1G2Lock"/>
<parameter type="C1G2BlockErase"/>
<parameter type="C1G2BlockWrite"/>
</choiceDefinition>
<messageDefinition name="GET_READER_CONFIG" typeNum="2" required="true" responseType="GET_READER_CONFIG_RESPONSE">
<annotation>
<documentation>
reference 12.1.1 and 16.1.36
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This command is issued by the Client to get the current configuration information of the Reader. The Requested Data passed in the command represents the parameter(s) of interest to the Client that has to be returned by the Reader.</h:p>
</description>
</annotation>
<field type="u16" name="AntennaID"/>
<field type="u8" name="RequestedData"
enumeration="GetReaderConfigRequestedData"/>
<field type="u16" name="GPIPortNum"/>
<field type="u16" name="GPOPortNum"/>
<parameter repeat="0-N" type="Custom"/>
</messageDefinition>
<enumerationDefinition name="GetReaderConfigRequestedData">
<annotation>
<documentation>
reference 12.1.1
</documentation>
</annotation>
<entry value="0" name="All"/>
<entry value="1" name="Identification"/>
<entry value="2" name="AntennaProperties"/>
<entry value="3" name="AntennaConfiguration"/>
<entry value="4" name="ROReportSpec"/>
<entry value="5" name="ReaderEventNotificationSpec"/>
<entry value="6" name="AccessReportSpec"/>
<entry value="7" name="LLRPConfigurationStateValue"/>
<entry value="8" name="KeepaliveSpec"/>
<entry value="9" name="GPIPortCurrentState"/>
<entry value="10" name="GPOWriteData"/>
<entry value="11" name="EventsAndReports"/>
</enumerationDefinition>
<messageDefinition name="GET_READER_CONFIG_RESPONSE" typeNum="12" required="true">
<annotation>
<documentation>
reference 12.1.2 and 16.1.37
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to the GET_READER_CONFIG message. The response is the LLRPStatus Parameter and the list of configuration parameters based on the RequestedData in GET_READER_CONFIG. If the GET_READER_CONFIG message did not have any errors, the success code is returned in the LLRPStatus parameter, and in addition the requested configuration parameters are returned. If there is an error, the appropriate error code is returned in the LLRPStatus parameter. The response contains at most one instance of each configuration parameter except for two cases, which are as follows:</h:p>
<h:lu>
<h:li><h:p>If RequestedData is 0, 2 or 3, and AntennaID is set to 0 in the GET_READER_CONFIG message, the Reader <h:b>SHALL</h:b> return one instance of AntennaProperties Parameter or AntennaConfiguration Parameter per requested antenna.</h:p></h:li>
<h:li><h:p>If RequestedData is 0 or 9 (10), and GPIPortNum (GPOPortNum) is set to 0 in the GET_READER_CONFIG message, and, if the Reader supports GPI (GPO), the Reader <h:b>SHALL</h:b> return one instance of GPIPortCurrentState (GPOWriteData) Parameter per requested GPI Port (GPO Port).</h:p></h:li>
</h:lu>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
<parameter repeat="0-1" type="Identification"/>
<parameter repeat="0-N" type="AntennaProperties"/>
<parameter repeat="0-N" type="AntennaConfiguration"/>
<parameter repeat="0-1" type="ReaderEventNotificationSpec"/>
<parameter repeat="0-1" type="ROReportSpec"/>
<parameter repeat="0-1" type="AccessReportSpec"/>
<parameter repeat="0-1" type="LLRPConfigurationStateValue"/>
<parameter repeat="0-1" type="KeepaliveSpec"/>
<parameter repeat="0-N" type="GPIPortCurrentState"/>
<parameter repeat="0-N" type="GPOWriteData"/>
<parameter repeat="0-1" type="EventsAndReports"/>
<parameter repeat="0-N" type="Custom"/>
</messageDefinition>
<messageDefinition name="SET_READER_CONFIG" typeNum="3" required="true" responseType="SET_READER_CONFIG_RESPONSE">
<annotation>
<documentation>
reference 12.1.3 and 16.1.38
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This command is issued by the Client to the Reader. This command sets the Reader configuration using the parameters specified in this command. Values passed by the SET_READER_CONFIG <h:b>SHALL</h:b> apply for the duration of the LLRP connection, or until the values are changed by additional SET_READER_CONFIG messages.</h:p>
<h:p>For example, ROReportSpec defines the reporting of ROReport format and trigger for a ROSpec. ROReportSpec sent as part of SET_READER_CONFIG becomes the default ROReportSpec for the Reader. A ROReportSpec sent as part of ROSpec in the ADD_ROSPEC command overrides the default value for that ROSpec. However, in cases where there is no ROReportSpec specified in a ROSpec sent as part of ADD_ROSPEC, that particular ROSpec inherits the default ROReportSpec.</h:p>
<h:p>The data field ResetToFactoryDefault informs the Reader to set all configurable values to factory defaults before applying the remaining parameters.</h:p>
</description>
</annotation>
<field type="u1" name="ResetToFactoryDefault"/>
<reserved bitCount="7"/>
<parameter repeat="0-1" type="ReaderEventNotificationSpec"/>
<parameter repeat="0-N" type="AntennaProperties"/>
<parameter repeat="0-N" type="AntennaConfiguration"/>
<parameter repeat="0-1" type="ROReportSpec"/>
<parameter repeat="0-1" type="AccessReportSpec"/>
<parameter repeat="0-1" type="KeepaliveSpec"/>
<parameter repeat="0-N" type="GPOWriteData"/>
<parameter repeat="0-N" type="GPIPortCurrentState"/>
<parameter repeat="0-1" type="EventsAndReports"/>
<parameter repeat="0-N" type="Custom"/>
</messageDefinition>
<messageDefinition name="SET_READER_CONFIG_RESPONSE" typeNum="13" required="true">
<annotation>
<documentation>
reference 12.1.4 and 16.1.39
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a SET_READER_CONFIG command. If all the parameters specified in the SET_READER_CONFIG command are successfully set, then the success code is returned in the LLRPStatus parameter. If there is an error, the appropriate error code is returned in the LLRPStatus parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<messageDefinition name="CLOSE_CONNECTION" typeNum="14" required="true" responseType="CLOSE_CONNECTION_RESPONSE">
<annotation>
<documentation>
reference 12.1.5 and 16.1.40
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This command is issued by the Client to the Reader. This command instructs the Reader to gracefully close its connection with the Client. Under normal operating conditions, a Client <h:b>SHALL</h:b> attempt to send this command before closing an LLRP connection. A Client should wait briefly for the Reader to respond with a CLOSE_CONNECTION_RESPONSE.</h:p>
<h:p>Upon receipt of this command, the Reader <h:b>SHALL</h:b> respond with the CLOSE_CONNECTION_REPONSE message and it should then attempt to close the connection between the Reader and Client.</h:p>
<h:p>Having executed a CLOSE_CONNECTION command, a Reader <h:b>MAY</h:b> persist its configuration state as defined by the ReaderConfigurationStateValue parameter specified in section 12.2.1.</h:p>
</description>
</annotation>
</messageDefinition>
<messageDefinition name="CLOSE_CONNECTION_RESPONSE" typeNum="4" required="true">
<annotation>
<documentation>
reference 12.1.6 and 16.1.41
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This is the response by the Reader to a CLOSE_CONNECTON command from the Client. Upon receiving a CLOSE_CONNECTION command, the Reader <h:b>SHALL</h:b> attempt to send this response to the Client. After attempting to send this response, the Reader <h:b>SHALL</h:b> close its connection with the Client.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<parameterDefinition name="LLRPConfigurationStateValue" typeNum="217" required="true">
<annotation>
<documentation>
reference 12.2.1 and 16.2.6.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter, LLRPConfigurationStateValue, is a 32-bit value which represents a Reader's entire LLRP configuration state including: LLRP configuration parameters, vendor extension configuration parameters, ROSpecs, and AccessSpecs. A Reader <h:b>SHALL</h:b> change this value only:</h:p>
<h:ul>
<h:li><h:p>Upon successful execution of any of the following messages: ADD_ROSPEC, DELETE_ROSPEC, ADD_ACCESSSPEC, DELETE_ACCESSSPEC, SET_READER_CONFIG, or any CUSTOM_MESSAGE command that alters the reader's internal configuration.</h:p> </h:li>
<h:li><h:p>Upon an automatically deleted AccessSpec due to completion of OperationCountValue number of operations (Section 11.2.1.1).</h:p></h:li>
</h:ul>
<h:p>A Reader <h:b>SHALL</h:b> not change this value when the CurrentState of a ROSpec or AccessSpec changes.</h:p>
<h:p>The mechanism used to compute the LLRP configuration state value is implementation dependent. However, a good implementation will insure that there's a high probability that the value will change when the Reader's configuration state changes.</h:p>
<h:p>It is expected that a Client will configure the Reader and then request the Reader's configuration state value. The Client will then save this state value. If this value does not change between two requests for it, then a Client may assume that the above components of the LLRP configuration have also not changed.</h:p>
<h:p>When requested by a Client, the Reader <h:b>SHALL</h:b> compute a state value based upon the Reader's current configuration state. Upon each request, the Reader <h:b>SHALL</h:b> return the same state value provided a Client has not altered the Reader's configuration state between requests. Aside from this requirement, the computation of the state value is implementation dependent.</h:p>
</description>
</annotation>
<field type="u32" name="LLRPConfigurationStateValue"/>
</parameterDefinition>
<parameterDefinition name="Identification" typeNum="218" required="true">
<annotation>
<documentation>
reference 12.2.2 and 16.2.6.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries an identification parameter that is unique within the local administration domain. The identifier could be the Reader MAC address or EPC. The IDType defines the type of the identification value contained in this Parameter.</h:p>
<h:p>If IDType=0, the MAC address <h:b>SHALL</h:b> be encoded as EUI-64.[EUI64]</h:p>
</description>
</annotation>
<field type="u8" name="IDType"
enumeration="IdentificationType"/>
<field type="u8v" name="ReaderID" format="Hex"/>
</parameterDefinition>
<enumerationDefinition name="IdentificationType">
<annotation>
<documentation>
reference 12.2.2
</documentation>
</annotation>
<entry value="0" name="MAC_Address"/>
<entry value="1" name="EPC"/>
</enumerationDefinition>
<parameterDefinition name="GPOWriteData" typeNum="219" required="true">
<annotation>
<documentation>
reference 12.2.3 and 16.2.6.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the data pertinent to perform the write to a general purpose output port.</h:p>
<h:p>Readers that do not support GPOs <h:b>SHALL</h:b> set NumGPOs in the GPIOCapabilities to zero. If such a Reader receives a SET_READER_CONFIG with GPOWriteData Parameter, the Reader <h:b>SHALL</h:b> return an error message and not process any of the parameters in that message.</h:p>
</description>
</annotation>
<field type="u16" name="GPOPortNumber"/>
<field type="u1" name="GPOData"/>
<reserved bitCount="7"/>
</parameterDefinition>
<parameterDefinition name="KeepaliveSpec" typeNum="220" required="true">
<annotation>
<documentation>
reference 12.2.4 and 16.2.6.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the specification for the keepalive message generation by the Reader. This includes the definition of the periodic trigger to send the keepalive message.</h:p>
</description>
</annotation>
<field type="u8" name="KeepaliveTriggerType"
enumeration="KeepaliveTriggerType"/>
<field type="u32" name="PeriodicTriggerValue"/>
</parameterDefinition>
<enumerationDefinition name="KeepaliveTriggerType">
<annotation>
<documentation>
reference 12.2.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description:</h:p>
<h:ul>
<h:li><h:p>0: Null - No keepalives <h:b>SHALL</h:b> be sent by the Reader</h:p></h:li>
<h:li><h:p>1: Periodic</h:p></h:li>
</h:ul>
</description>
</annotation>
<entry value="0" name="Null"/>
<entry value="1" name="Periodic"/>
</enumerationDefinition>
<parameterDefinition name="AntennaProperties" typeNum="221" required="false">
<annotation>
<documentation>
reference 12.2.5 and 16.2.6.5
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries a single antenna's properties. The properties include the gain and the connectivity status of the antenna.The antenna gain is the composite gain and includes the loss of the associated cable from the Reader to the antenna. The gain is represented in dBi*100 to allow fractional dBi representation.</h:p>
</description>
</annotation>
<field type="u1" name="AntennaConnected"/>
<reserved bitCount="7"/>
<field type="u16" name="AntennaID"/>
<field type="s16" name="AntennaGain"/>
</parameterDefinition>
<parameterDefinition name="AntennaConfiguration" typeNum="222" required="true">
<annotation>
<documentation>
reference 12.2.6 and 16.2.6.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries a single antenna's configuration and it specifies the default values for the parameter set that are passed in this parameter block. The scope of the default values is the antenna. The default values are used for parameters during an operation on this antenna if the parameter was unspecified in the spec that describes the operation.</h:p>
</description>
</annotation>
<field type="u16" name="AntennaID"/>
<parameter repeat="0-1" type="RFReceiver"/>
<parameter repeat="0-1" type="RFTransmitter"/>
<choice repeat="0-N" type="AirProtocolInventoryCommandSettings"/>
</parameterDefinition>
<parameterDefinition name="RFReceiver" typeNum="223" required="true">
<annotation>
<documentation>
reference 12.2.6.1 and 16.2.6.7
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This Parameter carries the RF receiver information. The Receiver Sensitivity defines the sensitivity setting at the receiver. The value is the index into the ReceiveSensitivityTable (section 9.2.1.1).</h:p>
</description>
</annotation>
<field type="u16" name="ReceiverSensitivity"/>
</parameterDefinition>
<parameterDefinition name="RFTransmitter" typeNum="224" required="true">
<annotation>
<documentation>
reference 12.2.6.2 and 16.2.6.8
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This Parameter carries the RF transmitter information. The Transmit Power defines the transmit power for the antenna expressed as an index into the TransmitPowerTable (section 9.2.4.1.1). The HopTableID is the index of the frequency hop table to be used by the Reader (section 9.2.4.1.2.1) and is used when operating in frequency-hopping regulatory regions. This field is ignored in non-frequency-hopping regulatory regions. The ChannelIndex is the one-based channel index in the FixedFrequencyTable to use during transmission (section 9.2.4.1.2.2) and is used when operating in non-frequency-hopping regulatory regions. This field is ignored in frequency-hopping regulatory regions.</h:p>
</description>
</annotation>
<field type="u16" name="HopTableID"/>
<field type="u16" name="ChannelIndex"/>
<field type="u16" name="TransmitPower"/>
</parameterDefinition>
<parameterDefinition name="GPIPortCurrentState" typeNum="225" required="false">
<annotation>
<documentation>
reference 12.2.6.3 and 16.2.6.9
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This Parameter carries the current configuration and state of a single GPI port. In a SET_READER_CONFIG message, this parameter is used to enable or disable the GPI port using the GPIConfig field; the GPIState field is ignored by the reader. In a GET_READER_CONFIG message, this parameter reports both the configuration and state of the GPI port.</h:p>
<h:p>When a ROSpec or AISpec is configured on a GPI-capable reader with GPI start and/or stop triggers, those GPIs must be enabled by the client with a SET_READER_CONFIG message for the triggers to function.</h:p>
<h:p>Readers that do not support GPIs <h:b>SHALL</h:b> set NumGPIs in the GPIOCapabilities to zero. If such a Reader receives a GET_READER_CONFIG with a GPIPortCurrentState Parameter, the Reader <h:b>SHALL</h:b> return an error message and not process any of the parameters in that message.</h:p>
</description>
</annotation>
<field type="u16" name="GPIPortNum"/>
<field type="u1" name="Config"/>
<reserved bitCount="7"/>
<field type="u8" name="State"
enumeration="GPIPortState"/>
</parameterDefinition>
<enumerationDefinition name="GPIPortState">
<annotation>
<documentation>
reference 12.2.6.3
</documentation>
</annotation>
<entry value="0" name="Low"/>
<entry value="1" name="High"/>
<entry value="2" name="Unknown"/>
</enumerationDefinition>
<parameterDefinition name="EventsAndReports" typeNum="226" required="false">
<annotation>
<documentation>
reference 12.2.6.4 and 16.2.6.10
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter controls the behavior of the Reader when a new LLRP connection is established. In a SET_READER_CONFIG message, this parameter is used to enable or disable the holding of events and reports upon connection using the HoldEventsAndReportsUponReconnect field. In a GET_READER_CONFIG message, this parameter reports the current configuration. If the HoldEventsAndReportsUponReconnect is true, the reader will not deliver any reports or events (except the ConnectionAttemptEvent) to the Client until the Client issues an ENABLE_EVENTS_AND_REPORTS message. Once the ENABLE_EVENTS_AND_REPORTS message is received the reader ceases its hold on events and reports for the duration of the connection.</h:p>
</description>
</annotation>
<field type="u1" name="HoldEventsAndReportsUponReconnect"/>
<reserved bitCount="7"/>
</parameterDefinition>
<messageDefinition name="GET_REPORT" typeNum="60" required="true">
<annotation>
<documentation>
reference 13.1.1 and 16.1.29
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Client to the Reader to get the tag reports. In response to this message, the Reader <h:b>SHALL</h:b> return tag reports accumulated.</h:p>
</description>
</annotation>
</messageDefinition>
<messageDefinition name="RO_ACCESS_REPORT" typeNum="61" required="true">
<annotation>
<documentation>
reference 13.1.2 and 16.1.30
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Reader to the Client, and it contains the results of the RO and Access operations. The ROReportSpec and AccessReportSpec parameters define the contents and triggers for this message.</h:p>
</description>
</annotation>
<parameter repeat="0-N" type="TagReportData"/>
<parameter repeat="0-N" type="RFSurveyReportData"/>
<parameter repeat="0-N" type="Custom"/>
</messageDefinition>
<messageDefinition name="KEEPALIVE" typeNum="62" required="true">
<annotation>
<documentation>
reference 13.1.3 and 16.1.31
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Reader to the Client. This message can be used by the Client to monitor the LLRP-layer connectivity with the Reader. The Client configures the trigger at the Reader to send the Keepalive message. The configuration is done using the KeepaliveSpec parameter (section 12.2.4).</h:p>
</description>
</annotation>
</messageDefinition>
<messageDefinition name="KEEPALIVE_ACK" typeNum="72" required="true">
<annotation>
<documentation>
reference 13.1.4 and 16.1.32
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>A Client <h:b>SHALL</h:b> generate a KEEPALIVE_ACK in response to each KEEPALIVE received by the reader.</h:p>
</description>
</annotation>
</messageDefinition>
<messageDefinition name="READER_EVENT_NOTIFICATION" typeNum="63" required="true">
<annotation>
<documentation>
reference 13.1.5 and 16.1.33
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message is issued by the Reader to the Client whenever an event that the Client subscribed to occurs. The pertinent event data is conveyed using the ReaderEventNotificationData parameter.</h:p>
</description>
</annotation>
<parameter repeat="1" type="ReaderEventNotificationData"/>
</messageDefinition>
<messageDefinition name="ENABLE_EVENTS_AND_REPORTS" typeNum="64" required="false">
<annotation>
<documentation>
reference 13.1.6 and 16.1.34
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This message can be issued by the Client to the Reader after a LLRP connection is established. The Client uses this message to inform the Reader that it can remove its hold on event and report messages. Readers that are configured to hold events and reports on reconnection (See Section 12.2.6.4) respond to this message by returning the tag reports accumulated (same way they respond to GET_REPORT (See Section 13.1.1)).</h:p>
</description>
</annotation>
</messageDefinition>
<parameterDefinition name="ROReportSpec" typeNum="237" required="true">
<annotation>
<documentation>
reference 13.2.1 and 16.2.7.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This Parameter carries the Reader inventory and RF survey reporting definition for the antenna. This parameter describes the contents of the report sent by the Reader and defines the events that cause the report to be sent.</h:p>
<h:p>The ROReportTrigger field defines the events that cause the report to be sent.</h:p>
<h:p>The TagReportContentSelector parameter defines the desired contents of the report. The ROReportTrigger defines the event that causes the report to be sent by the Reader to the Client.</h:p>
<h:p>See section 13.2.6.1 for details about the order that reports are to be sent with respect to Reader event notifications.</h:p>
</description>
</annotation>
<field type="u8" name="ROReportTrigger"
enumeration="ROReportTriggerType"/>
<field type="u16" name="N"/>
<parameter repeat="1" type="TagReportContentSelector"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<enumerationDefinition name="ROReportTriggerType">
<annotation>
<documentation>
reference 13.2.1
</documentation>
</annotation>
<entry value="0" name="None"/>
<entry value="1" name="Upon_N_Tags_Or_End_Of_AISpec"/>
<entry value="2" name="Upon_N_Tags_Or_End_Of_ROSpec"/>
</enumerationDefinition>
<parameterDefinition name="TagReportContentSelector" typeNum="238" required="true">
<annotation>
<documentation>
reference 13.2.1.1 and 16.2.7.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter is used to configure the contents that are of interest in TagReportData. If enabled, the field is reported along with the tag data in the TagReportData.</h:p>
</description>
</annotation>
<field type="u1" name="EnableROSpecID"/>
<field type="u1" name="EnableSpecIndex"/>
<field type="u1" name="EnableInventoryParameterSpecID"/>
<field type="u1" name="EnableAntennaID"/>
<field type="u1" name="EnableChannelIndex"/>
<field type="u1" name="EnablePeakRSSI"/>
<field type="u1" name="EnableFirstSeenTimestamp"/>
<field type="u1" name="EnableLastSeenTimestamp"/>
<field type="u1" name="EnableTagSeenCount"/>
<field type="u1" name="EnableAccessSpecID"/>
<reserved bitCount="6"/>
<choice repeat="0-N" type="AirProtocolEPCMemorySelector"/>
</parameterDefinition>
<parameterDefinition name="AccessReportSpec" typeNum="239" required="true">
<annotation>
<documentation>
reference 13.2.2 and 16.2.7.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter sets up the triggers for the Reader to send the access results to the Client. In addition, the Client can enable or disable reporting of ROSpec details in the access results.</h:p>
</description>
</annotation>
<field type="u8" name="AccessReportTrigger"
enumeration="AccessReportTriggerType"/>
</parameterDefinition>
<enumerationDefinition name="AccessReportTriggerType">
<annotation>
<documentation>
reference 13.2.2
</documentation>
</annotation>
<entry value="0" name="Whenever_ROReport_Is_Generated"/>
<entry value="1" name="End_Of_AccessSpec"/>
</enumerationDefinition>
<parameterDefinition name="TagReportData" typeNum="240" required="true">
<annotation>
<documentation>
reference 13.2.3 and 16.2.7.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This report parameter is generated per tag per accumulation scope. The only mandatory portion of this parameter is the EPCData parameter. If there was an access operation performed on the tag, the results of the OpSpecs are mandatory in the report. The other sub-parameters in this report are optional. LLRP provides three ways to make the tag reporting efficient:</h:p>
<h:ol>
<h:li><h:p>Allow parameters to be enabled or disabled via TagReportContentSelector (section 13.2.1.1) in TagReportSpec. </h:p></h:li>
<h:li><h:p>If an optional parameter is enabled, and is absent in the report, the Client <h:b>SHALL</h:b> assume that the value is identical to the last parameter of the same type received. For example, this allows the Readers to not send a parameter in the report whose value has not changed since the last time it was sent by the Reader.</h:p></h:li>
<h:li><h:p>Allow accumulation of tag reports. See next section for details of accumulation.</h:p></h:li>
</h:ol>
<h:p>A Reader <h:b>MAY</h:b> accumulate multiple tag reports into a single tag report.. If a Reader accumulates, the Reader <h:b>SHALL</h:b> follow the accumulation rules specified in this section. The following specifies the rules for accumulating multiple tag observations into a single TagReportData:</h:p>
<h:ul>
<h:li><h:p>EPCData:</h:p></h:li>
<h:ul><h:li><h:p>The Reader <h:b>SHALL</h:b> not accumulate tag reports that do not have the same EPCData value.</h:p></h:li></h:ul>
<h:li><h:p>OpSpecResultList:</h:p></h:li>
<h:ul><h:li><h:p>The Reader <h:b>SHALL</h:b> not accumulate tag reports that do not have the same value for the OpSpec results in the OpSpecResultList.</h:p></h:li></h:ul>
<h:li><h:p>SpecID, SpecIndex, InventoryParameterSpecID, AntennaID, AirProtocolTagData, AccessSpecID:</h:p></h:li>
<h:ul><h:li><h:p>These fields are optional, and their reporting can be enabled by the Client. If the Client has enabled one or more fields listed above, the Reader <h:b>SHALL</h:b> not accumulate tag reports that do not have the same value for all the enabled fields.</h:p></h:li></h:ul>
<h:li><h:p>FirstSeenTimestamp, LastSeenTimestamp, PeakRSSI, TagSeenCount, ChannelIndex</h:p></h:li>
<h:ul><h:li><h:p>These fields are optional, and their reporting can be enabled by the Client. If the field is enabled, the Reader sets the value of these fields as follows:</h:p></h:li>
<h:ul>
<h:li><h:p>FirstSeenTimestamp: The Reader <h:b>SHALL</h:b> set it to the time of the first observation amongst the tag reports that get accumulated in the TagReportData.</h:p></h:li>
<h:li><h:p>LastSeenTimestamp: The Reader <h:b>SHALL</h:b> set it to the time of the last observation amongst the tag reports that get accumulated in the TagReportData.</h:p></h:li>
<h:li><h:p>PeakRSSI: The Reader <h:b>SHALL</h:b> set it to the maximum RSSI value observed amongst the tag reports that get accumulated in the TagReportData.</h:p></h:li>
<h:li><h:p>ChannelIndex: The Reader <h:b>MAY</h:b> set it to the index of the first channel the tag was seen.</h:p></h:li>
<h:li><h:p>TagSeenCount: The Reader <h:b>SHALL</h:b> set it to the number of tag reports that get accumulated in the TagReportData.</h:p></h:li>
</h:ul>
</h:ul>
</h:ul>
</description>
</annotation>
<choice repeat="1" type="EPCParameter"/>
<parameter repeat="0-1" type="ROSpecID"/>
<parameter repeat="0-1" type="SpecIndex"/>
<parameter repeat="0-1" type="InventoryParameterSpecID"/>
<parameter repeat="0-1" type="AntennaID"/>
<parameter repeat="0-1" type="PeakRSSI"/>
<parameter repeat="0-1" type="ChannelIndex"/>
<parameter repeat="0-1" type="FirstSeenTimestampUTC"/>
<parameter repeat="0-1" type="FirstSeenTimestampUptime"/>
<parameter repeat="0-1" type="LastSeenTimestampUTC"/>
<parameter repeat="0-1" type="LastSeenTimestampUptime"/>
<parameter repeat="0-1" type="TagSeenCount"/>
<choice repeat="0-N" type="AirProtocolTagData"/>
<parameter repeat="0-1" type="AccessSpecID"/>
<choice repeat="0-N" type="AccessCommandOpSpecResult"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<choiceDefinition name="AccessCommandOpSpecResult">
<parameter type="C1G2ReadOpSpecResult"/>
<parameter type="C1G2WriteOpSpecResult"/>
<parameter type="C1G2KillOpSpecResult"/>
<parameter type="C1G2LockOpSpecResult"/>
<parameter type="C1G2BlockEraseOpSpecResult"/>
<parameter type="C1G2BlockWriteOpSpecResult"/>
</choiceDefinition>
<choiceDefinition name="EPCParameter">
<parameter type="EPCData"/>
<parameter type="EPC_96"/>
</choiceDefinition>
<parameterDefinition name="EPCData" typeNum="241" required="true">
<annotation>
<documentation>
reference 13.2.3.2 and 16.2.7.3.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the EPC identifier information.</h:p>
</description>
</annotation>
<field type="u1v" name="EPC" format="Hex"/>
</parameterDefinition>
<parameterDefinition name="EPC_96" typeNum="13" required="false">
<annotation>
<documentation>
reference 13.2.3.2 and 16.2.7.3.2
</documentation>
<description>
<h:p>This parameter carries 96-bit EPC identifier information.</h:p>
</description>
</annotation>
<field type="u96" name="EPC" format="Hex"/>
</parameterDefinition>
<parameterDefinition name="ROSpecID" typeNum="9" required="true">
<annotation>
<documentation>
reference 13.2.3.3 and 16.2.7.3.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the ROSpecID information.</h:p>
</description>
</annotation>
<field type="u32" name="ROSpecID"/>
</parameterDefinition>
<parameterDefinition name="SpecIndex" typeNum="14" required="true">
<annotation>
<documentation>
reference 13.2.3.4 and 16.2.7.3.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the SpecIndex information. The SpecIndex indicates the item within the ROSpec that was being executed at the time the tag was observed.</h:p>
</description>
</annotation>
<field type="u16" name="SpecIndex"/>
</parameterDefinition>
<parameterDefinition name="InventoryParameterSpecID" typeNum="10" required="true">
<annotation>
<documentation>
reference 13.2.3.5 and 16.2.7.3.5
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the InventoryParameterSpecID information.</h:p>
</description>
</annotation>
<field type="u16" name="InventoryParameterSpecID"/>
</parameterDefinition>
<parameterDefinition name="AntennaID" typeNum="1" required="true">
<annotation>
<documentation>
reference 13.2.3.6 and 16.2.7.3.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the AntennaID information.</h:p>
</description>
</annotation>
<field type="u16" name="AntennaID"/>
</parameterDefinition>
<parameterDefinition name="PeakRSSI" typeNum="6" required="true">
<annotation>
<documentation>
reference 13.2.3.7 and 16.2.7.3.7
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the PeakRSSI information.</h:p>
<h:p>PeakRSSI: The peak received power of the EPC backscatter in dBm.</h:p>
</description>
</annotation>
<field type="s8" name="PeakRSSI"/>
</parameterDefinition>
<parameterDefinition name="ChannelIndex" typeNum="7" required="true">
<annotation>
<documentation>
reference 13.2.3.8 and 16.2.7.3.8
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the one-based ChannelIndex informationvalue.</h:p>
</description>
</annotation>
<field type="u16" name="ChannelIndex"/>
</parameterDefinition>
<parameterDefinition name="FirstSeenTimestampUTC" typeNum="2" required="false">
<annotation>
<documentation>
reference 13.2.3.9 and 16.2.7.3.9
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the FirstSeenTimestamp information in UTC.</h:p>
<h:p>Compliant Readers and Clients that have UTC clocks <h:b>SHALL</h:b> implement this parameter.</h:p>
<h:p>This is the time elapsed since the Epoch (00:00:00 UTC, January 1, 1970) measured in microseconds.</h:p>
</description>
</annotation>
<field type="u64" name="Microseconds" format="Datetime"/>
</parameterDefinition>
<parameterDefinition name="FirstSeenTimestampUptime" typeNum="3" required="false">
<annotation>
<documentation>
reference 13.2.3.10 and 16.2.7.3.10
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the FirstSeenTimestamp information in Uptime.</h:p>
<h:p>Compliant Readers and Clients that do not have UTC clocks <h:b>SHALL</h:b> implement this parameter. Compliant Readers and Clients that have UTC clocks <h:b>MAY</h:b> implement this parameter.</h:p>
</description>
</annotation>
<field type="u64" name="Microseconds" format="Datetime"/>
</parameterDefinition>
<parameterDefinition name="LastSeenTimestampUTC" typeNum="4" required="false">
<annotation>
<documentation>
reference 13.2.3.11 and 16.2.7.3.11
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the LastSeenTimestamp information in UTC.</h:p>
<h:p>This is the time elapsed since boot, measured in microseconds.</h:p>
</description>
</annotation>
<field type="u64" name="Microseconds"/>
</parameterDefinition>
<parameterDefinition name="LastSeenTimestampUptime" typeNum="5" required="false">
<annotation>
<documentation>
reference 13.2.3.12 and 16.2.7.3.12
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the LastSeenTimestamp information in UTC.</h:p>
<h:p>This is the time elapsed since the Epoch (00:00:00 UTC, January 1, 1970) measured in microseconds.</h:p>
</description>
</annotation>
<field type="u64" name="Microseconds"/>
</parameterDefinition>
<parameterDefinition name="TagSeenCount" typeNum="8" required="true">
<annotation>
<documentation>
reference 13.2.3.13 and 16.2.7.3.13
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the tag seen count information. If TagSeenCount > 65535 for the report period, the reader <h:b>SHALL</h:b> report 65535.</h:p>
</description>
</annotation>
<field type="u16" name="TagCount"/>
</parameterDefinition>
<parameterDefinition name="AccessSpecID" typeNum="16" required="true">
<annotation>
<documentation>
reference 13.2.3.15 and 16.2.7.3.15
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the AccessSpecID information.</h:p>
</description>
</annotation>
<field type="u32" name="AccessSpecID"/>
</parameterDefinition>
<parameterDefinition name="RFSurveyReportData" typeNum="242" required="false">
<annotation>
<documentation>
reference 13.2.4 and 16.2.7.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This describes the content of the RF Survey Report.</h:p>
</description>
</annotation>
<parameter repeat="0-1" type="ROSpecID"/>
<parameter repeat="0-1" type="SpecIndex"/>
<parameter repeat="1-N" type="FrequencyRSSILevelEntry"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<parameterDefinition name="FrequencyRSSILevelEntry" typeNum="243" required="false">
<annotation>
<documentation>
reference 13.2.4.1 and 16.2.7.4.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description</h:p>
<h:ul>
<h:li><h:p>Frequency: The frequency on which the measurement was taken, specified in kHz.</h:p></h:li>
<h:li><h:p>Bandwidth: The measurement bandwidth of the measurement in kHz.</h:p></h:li>
<h:li><h:p>Average RSSI: The average power level observed at this frequency in dBm.</h:p></h:li>
<h:li><h:p>Peak RSSI: The peak power level observed at this frequency in dBm.</h:p></h:li>
</h:ul>
</description>
</annotation>
<field type="u32" name="Frequency"/>
<field type="u32" name="Bandwidth"/>
<field type="s8" name="AverageRSSI"/>
<field type="s8" name="PeakRSSI"/>
<choice repeat="1" type="Timestamp"/>
</parameterDefinition>
<choiceDefinition name="Timestamp">
<parameter type="UTCTimestamp"/>
<parameter type="Uptime"/>
</choiceDefinition>
<parameterDefinition name="ReaderEventNotificationSpec" typeNum="244" required="true">
<annotation>
<documentation>
reference 13.2.5 and 16.2.7.5
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter is used by the Client to enable or disable notification of one or more Reader events. Notification of buffer overflow events and connection events (attempt/close) are mandatory, and not configurable.</h:p>
</description>
</annotation>
<parameter repeat="1-N" type="EventNotificationState"/>
</parameterDefinition>
<parameterDefinition name="EventNotificationState" typeNum="245" required="true">
<annotation>
<documentation>
reference 13.2.5.1 and 16.2.7.5.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter is used to enable or disable notification of a single Reader event type.</h:p>
</description>
</annotation>
<field type="u16" name="EventType"
enumeration="NotificationEventType"/>
<field type="u1" name="NotificationState"/>
<reserved bitCount="7"/>
</parameterDefinition>
<enumerationDefinition name="NotificationEventType">
<annotation>
<documentation>
reference 13.2.5.1
</documentation>
</annotation>
<entry value="0" name="Upon_Hopping_To_Next_Channel"/>
<entry value="1" name="GPI_Event"/>
<entry value="2" name="ROSpec_Event"/>
<entry value="3" name="Report_Buffer_Fill_Warning"/>
<entry value="4" name="Reader_Exception_Event"/>
<entry value="5" name="RFSurvey_Event"/>
<entry value="6" name="AISpec_Event"/>
<entry value="7" name="AISpec_Event_With_Details"/>
<entry value="8" name="Antenna_Event"/>
</enumerationDefinition>
<parameterDefinition name="ReaderEventNotificationData" typeNum="246" required="true">
<annotation>
<documentation>
reference 13.2.6 and 16.2.7.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter describes the contents of the event notification sent by the Reader, and defines the events that cause the notification to be sent. Event notification messages may be sent by the Reader due to connection establishment/closing event, critical events such as hopping, fault-detection in a Reader functional block, buffer overflow, due to the activation of a Reader accessory trigger input (e.g. motion detection), or due to performance monitoring events such as abnormalities in the RF environment.</h:p>
<h:p>Timestamp is the time that the events reported occurred.</h:p>
<h:p>LLRP assumes a reliable stream transport mechanism. Messages sent through LLRP will arrive in the order that they were sent over the transport and binding utilized. Status events within the same message <h:b>SHALL</h:b> be ordered chronologically.</h:p>
<h:p>Status events delivered by reader event notifications are useful, especially in conjunction with the tag report data. The following describes the requirements of the reader event notifications ordering with respect to the ordering of tag reports and Reader Event Notifications. </h:p>
<h:p>The following requirements are made on the ordering of Event Parameters with respect to each other and to tag report Parameters. These statements apply if the respective status events and report triggers are enabled. </h:p>
<h:ul>
<h:li><h:p>If the start of an ROSpec is triggered by a GPI, the GPIEvent Parameter <h:b>SHALL</h:b> be sent before the ROSpecEvent Parameter signaling the start of the ROSpec.</h:p></h:li>
<h:li><h:p>If the end of an ROSpec is triggered by a GPI, the GPIEvent Parameter <h:b>SHALL</h:b> be sent before the ROSpecEvent Parameter signaling the end of the ROSpec.</h:p></h:li>
<h:li><h:p>If an ROSpec contains one or more AISpecs, the ROSpecEvent parameter signaling the end of an ROSpec <h:b>SHALL</h:b> be sent after the AISpecEvent Parameter signaling the end of the last AISpec within that ROSpec.</h:p></h:li>
<h:li><h:p>If one ROSpec pre-empts another ROSpec, the ROSpecEvent parameter signaling the preemption of the first ROSpec <h:b>SHALL</h:b> be sent before the ROSpecEvent parameter signaling the start of the next ROSpec.</h:p></h:li>
<h:li><h:p>Tag data received during an ROSpec execution <h:b>SHALL</h:b> be sent between the ROSpecEvent parameter signaling the start of the ROSpec and the ROSpecEvent parameter signaling the end or preemption of the ROSpec if the ROReportTrigger is not set to "None".</h:p></h:li>
<h:li><h:p>Tag data received during an AISpec execution <h:b>SHALL</h:b> be sent before the AISpecEvent Parameter signaling the end of the AISpec if the ROReportTrigger is not "None" or "end of RO Spec"</h:p></h:li>
<h:li><h:p>Tag data received during the time on a channel <h:b>SHALL</h:b> be sent after the HoppingEvent parameter that announced this channel and before the next HoppingEvent parameter when the ROReportTrigger is not "None" and N=1.</h:p></h:li>
</h:ul>
</description>
</annotation>
<choice repeat="1" type="Timestamp"/>
<parameter repeat="0-1" type="HoppingEvent"/>
<parameter repeat="0-1" type="GPIEvent"/>
<parameter repeat="0-1" type="ROSpecEvent"/>
<parameter repeat="0-1" type="ReportBufferLevelWarningEvent"/>
<parameter repeat="0-1" type="ReportBufferOverflowErrorEvent"/>
<parameter repeat="0-1" type="ReaderExceptionEvent"/>
<parameter repeat="0-1" type="RFSurveyEvent"/>
<parameter repeat="0-1" type="AISpecEvent"/>
<parameter repeat="0-1" type="AntennaEvent"/>
<parameter repeat="0-1" type="ConnectionAttemptEvent"/>
<parameter repeat="0-1" type="ConnectionCloseEvent"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<parameterDefinition name="HoppingEvent" typeNum="247" required="true">
<annotation>
<documentation>
reference 13.2.6.2 and 16.2.7.6.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>A Reader reports this event every time it hops frequency.</h:p>
<h:p>NextChannelIndex: This is the one-based ChannelIindex of the next channel to which the Reader is going to hop change to. The channel Ids are listed in the Frequency Hop Table.</h:p>
</description>
</annotation>
<field type="u16" name="HopTableID"/>
<field type="u16" name="NextChannelIndex"/>
</parameterDefinition>
<parameterDefinition name="GPIEvent" typeNum="248" required="true">
<annotation>
<documentation>
reference 13.2.6.3 and 16.2.7.6.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>A reader reports this event every time an enabled GPI changes GPIstate.</h:p>
</description>
</annotation>
<field type="u16" name="GPIPortNumber"/>
<field type="u1" name="GPIEvent"/>
<reserved bitCount="7"/>
</parameterDefinition>
<parameterDefinition name="ROSpecEvent" typeNum="249" required="true">
<annotation>
<documentation>
reference 13.2.6.4 and 16.2.7.6.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the ROSpec event details. The EventType could be start or end of the ROSpec.</h:p>
<h:p>ROSpecID: This is the ID of the ROSpec that started, ended or got preempted.</h:p>
</description>
</annotation>
<field type="u8" name="EventType"
enumeration="ROSpecEventType"/>
<field type="u32" name="ROSpecID"/>
<field type="u32" name="PreemptingROSpecID"/>
</parameterDefinition>
<enumerationDefinition name="ROSpecEventType">
<annotation>
<documentation>
reference 13.2.6.4
</documentation>
</annotation>
<entry value="0" name="Start_Of_ROSpec"/>
<entry value="1" name="End_Of_ROSpec"/>
<entry value="2" name="Preemption_Of_ROSpec"/>
</enumerationDefinition>
<parameterDefinition name="ReportBufferLevelWarningEvent" typeNum="250" required="false">
<annotation>
<documentation>
reference 13.2.6.5 and 16.2.7.6.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>A Reader can warn the Client that the Reader's report buffer is filling up. A Client can act upon this warning by requesting report data from the Reader, thereby freeing the Reader's report memory resources.</h:p>
<h:p>A Reader <h:b>MAY</h:b> send a report buffer level warning event whenever the Reader senses that its report memory resources are running short. The buffer level at which a warning is reported is Reader implementation dependent. A Client <h:b>MAY</h:b> act upon a report buffer level warning event by requesting report data from the Reader and thereby free report memory resources in the Reader.</h:p>
</description>
</annotation>
<field type="u8" name="ReportBufferPercentageFull"/>
</parameterDefinition>
<parameterDefinition name="ReportBufferOverflowErrorEvent" typeNum="251" required="true">
<annotation>
<documentation>
reference 13.2.6.6 and 16.2.7.6.5
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>A Reader reports a buffer overflow event whenever report data is lost due to lack of memory resources.</h:p>
<h:p>A Reader <h:b>SHALL</h:b> report a buffer overflow event whenever report data is lost due to lack of memory resources.</h:p>
</description>
</annotation>
</parameterDefinition>
<parameterDefinition name="ReaderExceptionEvent" typeNum="252" required="false">
<annotation>
<documentation>
reference 13.2.6.7 and 16.2.7.6.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>The reader exception status event notifies the client that an unexpected event has occurred on the reader. Optional parameters provide more detail to the client as to the nature and scope of the event.</h:p>
</description>
</annotation>
<field type="utf8v" name="Message" format="UTF8"/>
<parameter repeat="0-1" type="ROSpecID"/>
<parameter repeat="0-1" type="SpecIndex"/>
<parameter repeat="0-1" type="InventoryParameterSpecID"/>
<parameter repeat="0-1" type="AntennaID"/>
<parameter repeat="0-1" type="AccessSpecID"/>
<parameter repeat="0-1" type="OpSpecID"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<parameterDefinition name="OpSpecID" typeNum="17" required="true">
<annotation>
<documentation>
reference 13.2.6.7.1 and 16.2.7.6.6.1
</documentation>
<description>
<h:p>Reports the OpSpecID in the reader exception event</h:p>
</description>
</annotation>
<field type="u16" name="OpSpecID"/>
</parameterDefinition>
<parameterDefinition name="RFSurveyEvent" typeNum="253" required="false">
<annotation>
<documentation>
reference 13.2.6.8 and 16.2.7.6.7
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>ROSpecID: The identifier of the ROSpec that contains the RFSurveySpec.</h:p>
</description>
</annotation>
<field type="u8" name="EventType"
enumeration="RFSurveyEventType"/>
<field type="u32" name="ROSpecID"/>
<field type="u16" name="SpecIndex"/>
</parameterDefinition>
<enumerationDefinition name="RFSurveyEventType">
<annotation>
<documentation>
reference 13.2.6.8
</documentation>
</annotation>
<entry value="0" name="Start_Of_RFSurvey"/>
<entry value="1" name="End_Of_RFSurvey"/>
</enumerationDefinition>
<parameterDefinition name="AISpecEvent" typeNum="254" required="true">
<annotation>
<documentation>
reference 13.2.6.9 and 16.2.7.6.8
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the AISpec event details. The EventType is the end of the AISpec. When reporting the end event, the AirProtocolSingulationDetails <h:b>MAY</h:b> be reported if it is supported by the Reader and EventType of 7 has been enabled (Section 13.2.5.1).</h:p>
</description>
</annotation>
<field type="u8" name="EventType"
enumeration="AISpecEventType"/>
<field type="u32" name="ROSpecID"/>
<field type="u16" name="SpecIndex"/>
<choice repeat="0-1" type="AirProtocolSingulationDetails"/>
</parameterDefinition>
<enumerationDefinition name="AISpecEventType">
<annotation>
<documentation>
reference 13.2.6.9
</documentation>
</annotation>
<entry value="0" name="End_Of_AISpec"/>
</enumerationDefinition>
<parameterDefinition name="AntennaEvent" typeNum="255" required="false">
<annotation>
<documentation>
reference 13.2.6.10 and 16.2.7.6.9
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This event is generated when the Reader detects that an antenna is connected or disconnected.</h:p>
</description>
</annotation>
<field type="u8" name="EventType"
enumeration="AntennaEventType"/>
<field type="u16" name="AntennaID"/>
</parameterDefinition>
<enumerationDefinition name="AntennaEventType">
<annotation>
<documentation>
reference 13.2.6.10
</documentation>
</annotation>
<entry value="0" name="Antenna_Disconnected"/>
<entry value="1" name="Antenna_Connected"/>
</enumerationDefinition>
<parameterDefinition name="ConnectionAttemptEvent" typeNum="256" required="true">
<annotation>
<documentation>
reference 13.2.6.11 and 16.2.7.6.10
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This status report parameter establishes Reader connection status when the Client or Reader initiates a connection. See section 18.1, TCP Transport, for more details regarding the use of this report.</h:p>
</description>
</annotation>
<field type="u16" name="Status"
enumeration="ConnectionAttemptStatusType"/>
</parameterDefinition>
<enumerationDefinition name="ConnectionAttemptStatusType">
<annotation>
<documentation>
reference 13.2.6.11
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
</description>
</annotation>
<entry value="0" name="Success"/>
<entry value="1" name="Failed_A_Reader_Initiated_Connection_Already_Exists"/>
<entry value="2" name="Failed_A_Client_Initiated_Connection_Already_Exists"/>
<entry value="3" name="Failed_Reason_Other_Than_A_Connection_Already_Exists"/>
<entry value="4" name="Another_Connection_Attempted"/>
</enumerationDefinition>
<parameterDefinition name="ConnectionCloseEvent" typeNum="257" required="true">
<annotation>
<documentation>
reference 13.2.6.12 and 16.2.7.6.11
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This status report parameter informs the Client that, unsolicited by the Client, the Reader will close the connection between the Reader and Client. Before the Reader closes a connection with the Client that is not solicited by the Client, the Reader <h:b>SHALL</h:b> first attempt to send a READER_EVENT_NOTIFICATION containing this parameter to the Client.</h:p>
<h:p>Once the Reader sends this event to the Client, the Reader <h:b>SHALL</h:b> close the connection to the Client. This is also to say that, once the Reader sends this event, the Reader <h:b>SHALL</h:b> send no additional messages to the Client and the Reader <h:b>SHALL</h:b> ignore any messages received from the Client until another new connection is established.</h:p>
</description>
</annotation>
</parameterDefinition>
<messageDefinition name="ERROR_MESSAGE" typeNum="100" required="true">
<annotation>
<documentation>
reference 14.1.1 and 16.1.35
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>The Reader <h:b>SHALL</h:b> discard the message if there is at least one error in the message, or cannot be fully processed. In addition, no portion of the message containing an error <h:b>SHALL</h:b> be executed by the Reader. In case the message has one or more errors, the Reader <h:b>SHALL</h:b> return at least one error parameter for one of the errors. The Reader <h:b>MAY</h:b> return more than one error parameter, one for each error. The errors are conveyed using a combination of "generic error codes", a pointer to the culprit parameter/field, and a description of the error encoded as a string of UTF-8 characters.</h:p>
<h:p>Typically the errors in the LLRP defined messages are conveyed inside of the responses from the Reader. However, in cases where the message received by the Reader contains an unsupported message type, or a CUSTOM_MESSAGE with unsupported parameters or fields, the Reader <h:b>SHALL</h:b> respond with the ERROR_MESSAGE.</h:p>
<h:p>When a Reader or Client receives a command or notification with a version that is not supported, the receiver <h:b>SHALL</h:b> send an ERROR_MESSAGE in reply consisting of: A version that is the same as the received message, the message ID that matches the received message, and an LLRPStatusParameter with the ErrorCode set to M_UnsupportedVersion. This message <h:b>SHALL</h:b> contain no sub-parameters (such as Field Error, Parameter Error).</h:p>
<h:p>Readers and Clients <h:b>SHALL</h:b> not respond to an ERROR_MESSAGE. </h:p>
<h:p>This message is issued by the Reader to the Client, and it contains the LLRPStatus parameter that describes the error in the message.</h:p>
</description>
</annotation>
<parameter repeat="1" type="LLRPStatus"/>
</messageDefinition>
<enumerationDefinition name="StatusCode">
<annotation>
<documentation>
reference 14.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Status can be a success or one of the error conditions. This section lists a set of generic error conditions that, in combination with the identifier of the culprit field, conveys the error condition. The codes are broken into four scopes: message, parameter, field and device. The device code indicates that the error is in the Reader device rather than the message, parameter or field.</h:p>
</description>
</annotation>
<entry value="0" name="M_Success"/>
<entry value="100" name="M_ParameterError"/>
<entry value="101" name="M_FieldError"/>
<entry value="102" name="M_UnexpectedParameter"/>
<entry value="103" name="M_MissingParameter"/>
<entry value="104" name="M_DuplicateParameter"/>
<entry value="105" name="M_OverflowParameter"/>
<entry value="106" name="M_OverflowField"/>
<entry value="107" name="M_UnknownParameter"/>
<entry value="108" name="M_UnknownField"/>
<entry value="109" name="M_UnsupportedMessage"/>
<entry value="110" name="M_UnsupportedVersion"/>
<entry value="111" name="M_UnsupportedParameter"/>
<entry value="200" name="P_ParameterError"/>
<entry value="201" name="P_FieldError"/>
<entry value="202" name="P_UnexpectedParameter"/>
<entry value="203" name="P_MissingParameter"/>
<entry value="204" name="P_DuplicateParameter"/>
<entry value="205" name="P_OverflowParameter"/>
<entry value="206" name="P_OverflowField"/>
<entry value="207" name="P_UnknownParameter"/>
<entry value="208" name="P_UnknownField"/>
<entry value="209" name="P_UnsupportedParameter"/>
<entry value="300" name="A_Invalid"/>
<entry value="301" name="A_OutOfRange"/>
<entry value="401" name="R_DeviceError"/>
</enumerationDefinition>
<parameterDefinition name="LLRPStatus" typeNum="287" required="true">
<annotation>
<documentation>
reference 14.2.2 and 16.2.8.1
</documentation>
</annotation>
<field type="u16" name="StatusCode"
enumeration="StatusCode"/>
<field type="utf8v" name="ErrorDescription" format="UTF8"/>
<parameter repeat="0-1" type="FieldError"/>
<parameter repeat="0-1" type="ParameterError"/>
</parameterDefinition>
<parameterDefinition name="FieldError" typeNum="288" required="true">
<annotation>
<documentation>
reference 14.2.2.1 and 16.2.8.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>FieldNum: Field number for which the error applies. The fields are numbered after the order in which they appear in the parameter or message body.</h:p>
</description>
</annotation>
<field type="u16" name="FieldNum"/>
<field type="u16" name="ErrorCode"
enumeration="StatusCode"/>
</parameterDefinition>
<parameterDefinition name="ParameterError" typeNum="289" required="true">
<annotation>
<documentation>
reference 14.2.2.2 and 16.2.8.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>The parameter type that caused this error.</h:p>
</description>
</annotation>
<field type="u16" name="ParameterType"/>
<field type="u16" name="ErrorCode"
enumeration="StatusCode"/>
<parameter repeat="0-1" type="FieldError"/>
<parameter repeat="0-1" type="ParameterError"/>
</parameterDefinition>
<parameterDefinition name="C1G2LLRPCapabilities" typeNum="327" required="true">
<annotation>
<documentation>
reference 15.2.1.1.1 and 16.3.1.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Readers <h:b>MAY</h:b> support BlockErase, and <h:b>MAY</h:b> support BlockWrite. Readers <h:b>SHALL</h:b> support at least one select filter per query. </h:p>
</description>
</annotation>
<field type="u1" name="CanSupportBlockErase"/>
<field type="u1" name="CanSupportBlockWrite"/>
<reserved bitCount="6"/>
<field type="u16" name="MaxNumSelectFiltersPerQuery"/>
</parameterDefinition>
<parameterDefinition name="C1G2UHFRFModeTable" typeNum="328" required="true">
<annotation>
<documentation>
reference 15.2.1.1.2 and 16.3.1.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the set of C1G2 RF modes that the Reader is capable of operating.</h:p>
</description>
</annotation>
<parameter repeat="1-N" type="C1G2UHFRFModeTableEntry"/>
</parameterDefinition>
<parameterDefinition name="C1G2UHFRFModeTableEntry" typeNum="329" required="true">
<annotation>
<documentation>
reference 15.2.1.1.2.1 and 16.3.1.1.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries the information for each UHFC1G2 RF mode. A mode that has been tested for conformance by the EPCGlobal Hardware Action Group's Testing and Conformance (HAG T and C) group, is indicated using a conformance flag.</h:p>
</description>
</annotation>
<field type="u32" name="ModeIdentifier"/>
<field type="u1" name="DRValue"
enumeration="C1G2DRValue"/>
<field type="u1" name="EPCHAGTCConformance"/>
<reserved bitCount="6"/>
<field type="u8" name="MValue"
enumeration="C1G2MValue"/>
<field type="u8" name="ForwardLinkModulation"
enumeration="C1G2ForwardLinkModulation"/>
<field type="u8" name="SpectralMaskIndicator"
enumeration="C1G2SpectralMaskIndicator"/>
<field type="u32" name="BDRValue"/>
<field type="u32" name="PIEValue"/>
<field type="u32" name="MinTariValue"/>
<field type="u32" name="MaxTariValue"/>
<field type="u32" name="StepTariValue"/>
</parameterDefinition>
<enumerationDefinition name="C1G2DRValue">
<annotation>
<documentation>
reference 15.2.1.1.2.1
</documentation>
</annotation>
<entry value="0" name="DRV_8"/>
<entry value="1" name="DRV_64_3"/>
</enumerationDefinition>
<enumerationDefinition name="C1G2MValue">
<annotation>
<documentation>
reference 15.2.1.1.2.1
</documentation>
</annotation>
<entry value="0" name="MV_FM0"/>
<entry value="1" name="MV_2"/>
<entry value="2" name="MV_4"/>
<entry value="3" name="MV_8"/>
</enumerationDefinition>
<enumerationDefinition name="C1G2ForwardLinkModulation">
<annotation>
<documentation>
reference 15.2.1.1.2.1
</documentation>
</annotation>
<entry value="0" name="PR_ASK"/>
<entry value="1" name="SSB_ASK"/>
<entry value="2" name="DSB_ASK"/>
</enumerationDefinition>
<enumerationDefinition name="C1G2SpectralMaskIndicator">
<annotation>
<documentation>
reference 15.2.1.1.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Description</h:p>
<h:ul>
<h:li><h:p>0: Unknown</h:p></h:li>
<h:li><h:p>1: SI -Meets [C1G2] Single-Interrogator Mode Mask</h:p></h:li>
<h:li><h:p>2: MI - Meets [C1G2] Multi-Interrogator Mode Mask</h:p></h:li>
<h:li><h:p>3: DI - Meets [C1G2] Dense-Interrogator Mode Mask</h:p></h:li>
</h:ul>
</description>
</annotation>
<entry value="0" name="Unknown"/>
<entry value="1" name="SI"/>
<entry value="2" name="MI"/>
<entry value="3" name="DI"/>
</enumerationDefinition>
<parameterDefinition name="C1G2InventoryCommand" typeNum="330" required="true">
<annotation>
<documentation>
reference 15.2.1.2.1 and 16.3.1.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter defines the C1G2 inventory-specific settings to be used during a particular C1G2 inventory operation. This comprises of C1G2Filter Parameter, C1G2RF Parameter and C1G2Singulation Parameter. It is not necessary that the Filter, RF Control and Singulation Control Parameters be specified in each and every inventory command. They are optional parameters. If not specified, the default values in the Reader are used during the inventory operation. If multiple C1G2Filter parameters are encapsulated by the Client in the C1G2InventoryCommand parameter, the ordering of the filter parameters determine the order of C1G2 air-protocol commands (e.g., Select command) generated by the Reader.</h:p>
<h:p>The TagInventoryStateAware flag is used to determine how to process all the C1G2Filter and C1G2Singulation parameters in this command. At a functional level, if the Client is managing the tag states during an inventory operation, it would set that flag to true and pass the appropriate fields in the C1G2 Filter and C1G2 Singulation parameters. If a reader set CanDoTagInventoryStateAwareSingulation to False in LLRPCapabilities (section 9.2.2), it <h:b>SHALL</h:b> ignore the TagInventoryStateAware flag.</h:p>
</description>
</annotation>
<field type="u1" name="TagInventoryStateAware"/>
<reserved bitCount="7"/>
<parameter repeat="0-N" type="C1G2Filter"/>
<parameter repeat="0-1" type="C1G2RFControl"/>
<parameter repeat="0-1" type="C1G2SingulationControl"/>
<parameter repeat="0-N" type="Custom"/>
</parameterDefinition>
<parameterDefinition name="C1G2Filter" typeNum="331" required="true">
<annotation>
<documentation>
reference 15.2.1.2.1.1 and 16.3.1.2.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter carries information specific to C1G2 filter (in particular, the parameters for the select command) operation, and are optionally sent with each inventory command from the Client to the Reader. This sets up the target tag population that gets inventoried. For an inventory operation with multiple filters, multiple instances of filter parameters are sent. A filter parameter contains the following fields:</h:p>
<h:ul>
<h:li><h:p>Target tag mask: This contains the information for the tag memory data pattern used for the select operation.</h:p></h:li>
<h:li><h:p>T: This value is set if the Client is interested in only a truncated portion of the tag to be backscattered by the tag. The portion that gets backscattered includes the portion of the tag ID following the mask. This bit has to be set only in the last filter-spec.</h:p></h:li>
<h:li><h:p>TagInventoryStateAwareFilterAction: This is used if the TagInventoryStateAware flag is set to true in the InventoryParameterSpec. </h:p></h:li>
<h:li><h:p>TagInventoryStateUnawareFilterAction: This is used if the TagInventoryStateAware flag is set to false in the InventoryParameterSpec.</h:p></h:li>
</h:ul>
</description>
</annotation>
<field type="u2" name="T"
enumeration="C1G2TruncateAction"/>
<reserved bitCount="6"/>
<parameter repeat="1" type="C1G2TagInventoryMask"/>
<parameter repeat="0-1" type="C1G2TagInventoryStateAwareFilterAction"/>
<parameter repeat="0-1" type="C1G2TagInventoryStateUnawareFilterAction"/>
</parameterDefinition>
<enumerationDefinition name="C1G2TruncateAction">
<annotation>
<documentation>
reference 15.2.1.2.1.1
</documentation>
</annotation>
<entry value="0" name="Unspecified"/>
<entry value="1" name="Do_Not_Truncate"/>
<entry value="2" name="Truncate"/>
</enumerationDefinition>
<parameterDefinition name="C1G2TagInventoryMask" typeNum="332" required="true">
<annotation>
<documentation>
reference 15.2.1.2.1.1.1 and 16.3.1.2.1.1.1
</documentation>
</annotation>
<field type="u2" name="MB"/>
<reserved bitCount="6"/>
<field type="u16" name="Pointer"/>
<field type="u1v" name="TagMask" format="Hex"/>
</parameterDefinition>
<parameterDefinition name="C1G2TagInventoryStateAwareFilterAction" typeNum="333" required="false">
<annotation>
<documentation>
reference 15.2.1.2.1.1.2 and 16.3.1.2.1.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter is used by the Client to manage the tag states during an inventory operation. In order to use this parameter during inventory, the TagInventoryStateAware flag is set to true in the InventoryParameterSpec. This parameter contains:</h:p>
<h:ul>
<h:li><h:p>Target: This value indicates which flag in the tag to modify - whether the SL flag or its inventoried flag for a particular session.</h:p></h:li>
<h:li><h:p>Action describes the action for matching and non-matching tags. The actions are specific about the tag-inventory states - e.g., do nothing, assert or deassert SL, assign inventoried S0/S1/S2/S3 to A or B.</h:p></h:li>
<h:p>Readers that do not support tag inventory state aware singulation <h:b>SHALL</h:b> set CanDoTagInventoryStateAwareSingulation to false in LLRPCapabilities</h:p>
</h:ul>
</description>
</annotation>
<field type="u8" name="Target"
enumeration="C1G2StateAwareTarget"/>
<field type="u8" name="Action"
enumeration="C1G2StateAwareAction"/>
</parameterDefinition>
<enumerationDefinition name="C1G2StateAwareTarget">
<annotation>
<documentation>
reference 15.2.1.2.1.1.2
</documentation>
</annotation>
<entry value="0" name="SL"/>
<entry value="1" name="Inventoried_State_For_Session_S0"/>
<entry value="2" name="Inventoried_State_For_Session_S1"/>
<entry value="3" name="Inventoried_State_For_Session_S2"/>
<entry value="4" name="Inventoried_State_For_Session_S3"/>
</enumerationDefinition>
<enumerationDefinition name="C1G2StateAwareAction">
<annotation>
<documentation>
reference 15.2.1.2.1.1.2
</documentation>
</annotation>
<entry value="0" name="AssertSLOrA_DeassertSLOrB"/>
<entry value="1" name="AssertSLOrA_Noop"/>
<entry value="2" name="Noop_DeassertSLOrB"/>
<entry value="3" name="NegateSLOrABBA_Noop"/>
<entry value="4" name="DeassertSLOrB_AssertSLOrA"/>
<entry value="5" name="DeassertSLOrB_Noop"/>
<entry value="6" name="Noop_AssertSLOrA"/>
<entry value="7" name="Noop_NegateSLOrABBA"/>
</enumerationDefinition>
<parameterDefinition name="C1G2TagInventoryStateUnawareFilterAction" typeNum="334" required="true">
<annotation>
<documentation>
reference 15.2.1.2.1.1.3 and 16.3.1.2.1.1.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter is used by the Client if it does not want to manage the tag states during an inventory operation. Using this parameter, the Client instructs the Reader about the tags that should and should not participate in the inventory action. In order to use this parameter during inventory, the TagInventoryStateAware flag is set to false in the InventoryParameterSpec. This parameter contains:</h:p>
<h:ul>
<h:li><h:p>Action describes the action for matching and non-matching tags. However, the action is simply specifying whether matching or non-matching tags partake in this inventory. The Reader is expected to handle the tag inventory states to facilitate this.</h:p></h:li>
</h:ul>
<h:p>In this parameter, Action=Select means search for pattern in Inventory, and Action=Unselect means do not search for pattern in Inventory.</h:p>
</description>
</annotation>
<field type="u8" name="Action"
enumeration="C1G2StateUnawareAction"/>
</parameterDefinition>
<enumerationDefinition name="C1G2StateUnawareAction">
<annotation>
<documentation>
reference 15.2.1.2.1.1.3
</documentation>
</annotation>
<entry value="0" name="Select_Unselect"/>
<entry value="1" name="Select_DoNothing"/>
<entry value="2" name="DoNothing_Unselect"/>
<entry value="3" name="Unselect_DoNothing"/>
<entry value="4" name="Unselect_Select"/>
<entry value="5" name="DoNothing_Select"/>
</enumerationDefinition>
<parameterDefinition name="C1G2RFControl" typeNum="335" required="true">
<annotation>
<documentation>
reference 15.2.1.2.1.2 and 16.3.1.2.1.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This Parameter carries the settings relevant to RF forward and reverse link control in the C1G2 air protocol. This is basically the C1G2 RF Mode and the Tari value to use for the inventory operation.</h:p>
<h:p>Tari: Value of Tari to use for this mode specified in nsec. This is specified if the mode selected has a Tari range. If the selected mode has a range, and the Tari is set to zero, the Reader implementation picks up any Tari value within the range. If the selected mode has a range, and the specified Tari is out of that range and is not set to zero, an error message is generated.</h:p>
</description>
</annotation>
<field type="u16" name="ModeIndex"/>
<field type="u16" name="Tari"/>
</parameterDefinition>
<parameterDefinition name="C1G2SingulationControl" typeNum="336" required="true">
<annotation>
<documentation>
reference 15.2.1.2.1.3 and 16.3.1.2.1.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This C1G2SingulationControl Parameter provides controls particular to the singulation process in the C1G2 air protocol. The singulation process is started using a Query command in the C1G2 protocol. The Query command describes the session number, tag state, the start Q value to use, and the RF link parameters. The RF link parameters are specified using the C1G2RFControl Parameter (see section 15.2.1.2.1.2). This Singulation Parameter specifies the session, tag state and description of the target singulation environment. The following attributes are specified to provide guidance to the Reader for the singulation algorithm:</h:p>
<h:ul>
<h:li><h:p>Tag transit time: This is the measure of expected tag mobility in the field of view of the antenna where this inventory operation is getting executed.</h:p></h:li>
<h:li><h:p>Tag population: This is the expected tag population in the field of view of the antenna.</h:p></h:li>
</h:ul>
<h:p>In addition, the Singulation Parameter allows setting of the following:</h:p>
<h:ul>
<h:li><h:p>Session ID: This is the C1G2 session number that the tags use to update the inventory state upon successful singulation.</h:p></h:li>
<h:li><h:p>TagInventoryStateAwareSingulationAction: This is used if the TagInventoryStateAware flag is set to true in the InventoryParameterSpec.</h:p>
<h:ul>
<h:li><h:p> I: This is the inventoried state of the target tag population in the selected session. Only tags that match the session state participate in the inventory round. If the Ignore value is specified, the Reader ignores this field, and its up to the Reader implementation to determine the value of I used in the inventory round.</h:p></h:li>
<h:li><h:p> S: This is the state of the SL flag in the tag. Only tags that match that tag state participate in the inventory round. If the Ignore value is specified, the Reader ignores this field, and its up to the Reader implementation to determine the value of S used in the inventory round.</h:p></h:li>
</h:ul></h:li>
</h:ul>
<h:p>If a reader sets CanDoTagInventoryStateAwareSingulation to False in LLRPCapabilities (section 9.2.2), it <h:b>SHALL</h:b> ignore the TagInventoryStateAwareSingulationAction field.</h:p>
</description>
</annotation>
<field type="u2" name="Session"/>
<reserved bitCount="6"/>
<field type="u16" name="TagPopulation"/>
<field type="u32" name="TagTransitTime"/>
<parameter repeat="0-1" type="C1G2TagInventoryStateAwareSingulationAction"/>
</parameterDefinition>
<parameterDefinition name="C1G2TagInventoryStateAwareSingulationAction" typeNum="337" required="false">
<annotation>
<documentation>
reference 15.2.1.2.1.3.1 and 16.3.1.2.1.3.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
Readers that do not support tag inventory state aware singulation <h:b>SHALL</h:b> set CanDoTagInventoryStateAwareSingulation to false in LLRPCapabilities.
</description>
</annotation>
<field type="u1" name="I"/>
<field type="u1" name="S"/>
<reserved bitCount="6"/>
</parameterDefinition>
<parameterDefinition name="C1G2TagSpec" typeNum="338" required="true">
<annotation>
<documentation>
reference 15.2.1.3.1 and 16.3.1.3.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter describes the target tag population on which certain operations have to be performed. This Parameter is similar to the selection C1G2Filter Parameter described earlier. However, because these tags are stored in the Reader's memory and ternary comparisons are to be allowed for, each bit i in the target tag is represented using 2 bits - bit i in mask, and bit i in tag pattern. If bit i in the mask is zero, then bit i of the target tag is a don't care (X); if bit i in the mask is one, then bit i of the target tag is bit i of the tag pattern. For example, "all tags" is specified using a mask length of zero.</h:p>
<h:p>This parameter can carry up to two tag patterns. If more than one pattern is present, a Boolean AND is implied. Each tag pattern has a match or a non-match flag, allowing (A and B,!A and B, !A and !B, A and !B), where A and B are the tag patterns.</h:p>
<h:p>The tagSpec contains 2 tag patterns.</h:p>
</description>
</annotation>
<parameter repeat="1-N" type="C1G2TargetTag" />
</parameterDefinition>
<parameterDefinition name="C1G2TargetTag" typeNum="339" required="true">
<annotation>
<documentation>
reference 15.2.1.3.1.1 and 16.3.1.3.1.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>If Length is zero, this pattern will match all tags regardless of MB, pointer, mask and data.</h:p>
</description>
</annotation>
<field type="u2" name="MB"/>
<field type="u1" name="Match"/>
<reserved bitCount="5"/>
<field type="u16" name="Pointer"/>
<field type="u1v" name="TagMask" format="Hex"/>
<field type="u1v" name="TagData" format="Hex"/>
</parameterDefinition>
<parameterDefinition name="C1G2Read" typeNum="341" required="true">
<annotation>
<documentation>
reference 15.2.1.3.2.1 and 16.3.1.3.2.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>MB is the memory bank to use. WordPtr is the starting word address. WordCount is the number of 16-bit words to be read. Following is text reproduced from the C1G2 specification regarding WordCount=0. [If WordCount = 0, the tag backscatters the contents of the chosen memory bank starting at WordPtr and ending at the end of the bank, unless MB = 1, in which case the Tag shall backscatter the EPC memory contents starting at WordPtr and ending at the length of the EPC specified by the first 5 bits of the PC if WordPtr lies within the EPC, and shall backscatter the EPC memory contents starting at WordPtr and ending at the end of EPC memory if WordPtr lies outside the EPC.]</h:p>
<h:p>Access Password is the password used by the Reader to transition the tag to the secure state so that it can read protected tag memory regions. For example, the Tag's Reserved memory is locked but not permalocked, meaning that the Reader must issue the access password and transition the Tag to the secured state before performing the read operation. </h:p>
</description>
</annotation>
<field type="u16" name="OpSpecID"/>
<field type="u32" name="AccessPassword"/>
<field type="u2" name="MB"/>
<reserved bitCount="6"/>
<field type="u16" name="WordPointer"/>
<field type="u16" name="WordCount"/>
</parameterDefinition>
<parameterDefinition name="C1G2Write" typeNum="342" required="true">
<annotation>
<documentation>
reference 15.2.1.3.2.2 and 16.3.1.3.2.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>MB is the memory bank to use. WordPtr is the starting word address. Write Data is the data to be written to the tag. Word Count is the number of words to be written. Depending on the word count, the Reader may have to execute multiple C1G2 air protocol Write commands. Access Password is the password used by the Reader to transition the tag to the secure state so that it can write to protected tag memory regions.</h:p>
</description>
</annotation>
<field type="u16" name="OpSpecID"/>
<field type="u32" name="AccessPassword"/>
<field type="u2" name="MB"/>
<reserved bitCount="6"/>
<field type="u16" name="WordPointer"/>
<field type="u16v" name="WriteData" format="Hex"/>
</parameterDefinition>
<parameterDefinition name="C1G2Kill" typeNum="343" required="true">
<annotation>
<documentation>
reference 15.2.1.3.2.3 and 16.3.1.3.2.3
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Kill Password is the value of the kill password to be used or set.</h:p>
</description>
</annotation>
<field type="u16" name="OpSpecID"/>
<field type="u32" name="KillPassword"/>
</parameterDefinition>
<parameterDefinition name="C1G2Lock" typeNum="344" required="true">
<annotation>
<documentation>
reference 15.2.1.3.2.4 and 16.3.1.3.2.4
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter contains the definition of the access privilege updates (read/write/permalock) to be performed in various locations of the memory. The five data fields for which we can define access control using the lock command are: Kill Password, Access Password, EPC memory, TID memory and User memory. The access privilege updates are expressed as a list of C1G2LockPayload Parameters, one for each memory location.</h:p>
<h:p>The Access Password provides the password to enter the secured state. A Reader can perform a lock operation on a tag only if the tag is in the secured state. The tag enters the secured state only using the Access Password (if a non-zero value).</h:p>
</description>
</annotation>
<field type="u16" name="OpSpecID"/>
<field type="u32" name="AccessPassword"/>
<parameter repeat="1-N" type="C1G2LockPayload"/>
</parameterDefinition>
<parameterDefinition name="C1G2LockPayload" typeNum="345" required="true">
<annotation>
<documentation>
reference 15.2.1.3.2.4.1 and 16.3.1.3.2.4.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter contains the definition of the access privilege updates (read/write/permalock) to be performed for a single location of the tag memory. The five data fields for which we can define access control using the lock command are: Kill Password, Access Password, EPC memory, TID memory and User memory.</h:p>
</description>
</annotation>
<field type="u8" name="Privilege"
enumeration="C1G2LockPrivilege"/>
<field type="u8" name="DataField"
enumeration="C1G2LockDataField"/>
</parameterDefinition>
<enumerationDefinition name="C1G2LockPrivilege">
<annotation>
<documentation>
reference 15.2.1.3.2.4.1
</documentation>
<description>
<h:p>Read_Write means lock for either reading or writing (depends on memory bank).</h:p>
</description>
</annotation>
<entry value="0" name="Read_Write"/>
<entry value="1" name="Perma_Lock"/>
<entry value="2" name="Perma_Unlock"/>
<entry value="3" name="Unlock"/>
</enumerationDefinition>
<enumerationDefinition name="C1G2LockDataField">
<annotation>
<documentation>
reference 15.2.1.3.2.4.1
</documentation>
</annotation>
<entry value="0" name="Kill_Password"/>
<entry value="1" name="Access_Password"/>
<entry value="2" name="EPC_Memory"/>
<entry value="3" name="TID_Memory"/>
<entry value="4" name="User_Memory"/>
</enumerationDefinition>
<parameterDefinition name="C1G2BlockErase" typeNum="346" required="false">
<annotation>
<documentation>
reference 15.2.1.3.2.5 and 16.3.1.3.2.5
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>MB is the memory bank to use. WordPtr is the starting word address. Word Count is the number of 16-bit words to be read. Access Password is the password used by the Reader to transition the tag to the secure state so that it can erase protected tag memory regions.</h:p>
<h:p>Readers that do not support C1G2BlockErase <h:b>SHALL</h:b> set CanSupportBlockErase to false in C1G2LLRPCapabilities. If such a Reader receives an ADD_ACCESSSPEC with an AccessSpec that contained this OpSpec parameter, the Reader <h:b>SHALL</h:b> return an error for that message and not add the AccessSpec.</h:p>
</description>
</annotation>
<field type="u16" name="OpSpecID"/>
<field type="u32" name="AccessPassword"/>
<field type="u2" name="MB"/>
<reserved bitCount="6"/>
<field type="u16" name="WordPointer"/>
<field type="u16" name="WordCount"/>
</parameterDefinition>
<parameterDefinition name="C1G2BlockWrite" typeNum="347" required="false">
<annotation>
<documentation>
reference 15.2.1.3.2.6 and 16.3.1.3.2.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>MB is the memory bank to use. WordPtr is the starting word address. Word Count is the number of 16-bit words to be written. Depending on the word count, the Reader may have to execute multiple C1G2 air protocol block write commands. Write Data is the data to be written to the tag. Access Password is the password used by the Reader to transition the tag to the secure state so that it can write to protected tag memory regions.</h:p>
<h:p>Readers that do not support C1G2BlockWrite <h:b>SHALL</h:b> set CanSupportBlockWrite to false in C1G2LLRPCapabilities. If such a Reader receives an ADD_ACCESSSPEC with an AccessSpec that contained this OpSpec parameter, the Reader <h:b>SHALL</h:b> return an error for that message and not add the AccessSpec.</h:p>
</description>
</annotation>
<field type="u16" name="OpSpecID"/>
<field type="u32" name="AccessPassword"/>
<field type="u2" name="MB"/>
<reserved bitCount="6"/>
<field type="u16" name="WordPointer"/>
<field type="u16v" name="WriteData" format="Hex"/>
</parameterDefinition>
<parameterDefinition name="C1G2EPCMemorySelector" typeNum="348" required="true">
<annotation>
<documentation>
reference 15.2.1.5.1 and 16.3.1.5.1
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>This parameter is used to determine what contents are of interest in the C1G2EPC memory bank for reporting. If enableCRC and enablePC is set to false, only the EPC is returned in the RO Report. If enablePC is set to true, the PC bits and the EPC are returned in the RO Report. If enablePC and enableCRC is set to true, the EPC, PC bits and CRC are returned in the RO Report.</h:p>
</description>
</annotation>
<field type="u1" name="EnableCRC"/>
<field type="u1" name="EnablePCBits"/>
<reserved bitCount="6"/>
</parameterDefinition>
<parameterDefinition name="C1G2_PC" typeNum="12" required="true">
<annotation>
<documentation>
reference 15.2.1.5.2 and 16.3.1.5.2
</documentation>
<description>
<h:p>Protocol control bits from the UHF Gen2 Air Interface protocol</h:p>
</description>
</annotation>
<field type="u16" name="PC_Bits"/>
</parameterDefinition>
<parameterDefinition name="C1G2_CRC" typeNum="11" required="true">
<annotation>
<documentation>
reference 15.2.1.5.3 and 16.3.1.5.3
</documentation>
<description>
<h:p>CRC generated by the tag from the UHF Gen2 Air Interface Protocol</h:p>
</description>
</annotation>
<field type="u16" name="CRC"/>
</parameterDefinition>
<parameterDefinition name="C1G2SingulationDetails" typeNum="18" required="false">
<annotation>
<documentation>
reference 15.2.1.5.4 and 16.3.1.5.4
</documentation>
</annotation>
<field type="u16" name="NumCollisionSlots"/>
<field type="u16" name="NumEmptySlots"/>
</parameterDefinition>
<parameterDefinition name="C1G2ReadOpSpecResult" typeNum="349" required="true">
<annotation>
<documentation>
reference 15.2.1.5.5.1 and 16.3.1.5.5.1
</documentation>
<description>
<h:p>Contains the results from a read operation.</h:p>
</description>
</annotation>
<field type="u8" name="Result"
enumeration="C1G2ReadResultType"/>
<field type="u16" name="OpSpecID"/>
<field type="u16v" name="ReadData" format="Hex"/>
</parameterDefinition>
<enumerationDefinition name="C1G2ReadResultType">
<annotation>
<documentation>
reference 15.2.1.5.5.1
</documentation>
</annotation>
<entry value="0" name="Success"/>
<entry value="1" name="Nonspecific_Tag_Error"/>
<entry value="2" name="No_Response_From_Tag"/>
<entry value="3" name="Nonspecific_Reader_Error"/>
</enumerationDefinition>
<parameterDefinition name="C1G2WriteOpSpecResult" typeNum="350" required="true">
<annotation>
<documentation>
reference 15.2.1.5.5.2 and 16.3.1.5.5.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Contains the result from a write operation.</h:p>
<h:p>If the number of words written is not equal to the length of the data pattern to write, the Result <h:b>SHALL</h:b> be non-zero.</h:p>
</description>
</annotation>
<field type="u8" name="Result"
enumeration="C1G2WriteResultType"/>
<field type="u16" name="OpSpecID"/>
<field type="u16" name="NumWordsWritten"/>
</parameterDefinition>
<enumerationDefinition name="C1G2WriteResultType">
<annotation>
<documentation>
reference 15.2.1.5.5.2
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
</description>
</annotation>
<entry value="0" name="Success"/>
<entry value="1" name="Tag_Memory_Overrun_Error"/>
<entry value="2" name="Tag_Memory_Locked_Error"/>
<entry value="3" name="Insufficient_Power"/>
<entry value="4" name="Nonspecific_Tag_Error"/>
<entry value="5" name="No_Response_From_Tag"/>
<entry value="6" name="Nonspecific_Reader_Error"/>
</enumerationDefinition>
<parameterDefinition name="C1G2KillOpSpecResult" typeNum="351" required="true">
<annotation>
<documentation>
reference 15.2.1.5.5.3 and 16.3.1.5.5.3
</documentation>
<description>
Contains the result from a kill operation.
</description>
</annotation>
<field type="u8" name="Result"
enumeration="C1G2KillResultType"/>
<field type="u16" name="OpSpecID"/>
</parameterDefinition>
<enumerationDefinition name="C1G2KillResultType">
<annotation>
<documentation>
reference 15.2.1.5.5.3
</documentation>
</annotation>
<entry value="0" name="Success"/>
<entry value="1" name="Zero_Kill_Password_Error"/>
<entry value="2" name="Insufficient_Power"/>
<entry value="3" name="Nonspecific_Tag_Error"/>
<entry value="4" name="No_Response_From_Tag"/>
<entry value="5" name="Nonspecific_Reader_Error"/>
</enumerationDefinition>
<parameterDefinition name="C1G2LockOpSpecResult" typeNum="352" required="true">
<annotation>
<documentation>
reference 15.2.1.5.5.4 and 16.3.1.5.5.4
</documentation>
<description>
<h:p>Contains the result of a lock operation.</h:p>
</description>
</annotation>
<field type="u8" name="Result"
enumeration="C1G2LockResultType"/>
<field type="u16" name="OpSpecID"/>
</parameterDefinition>
<enumerationDefinition name="C1G2LockResultType">
<annotation>
<documentation>
reference 15.2.1.5.5.4
</documentation>
</annotation>
<entry value="0" name="Success"/>
<entry value="1" name="Insufficient_Power"/>
<entry value="2" name="Nonspecific_Tag_Error"/>
<entry value="3" name="No_Response_From_Tag"/>
<entry value="4" name="Nonspecific_Reader_Error"/>
</enumerationDefinition>
<parameterDefinition name="C1G2BlockEraseOpSpecResult" typeNum="353" required="false">
<annotation>
<documentation>
reference 15.2.1.5.5.5 and 16.3.1.5.5.5
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Contains the result of a block erase operation.</h:p>
<h:p>Readers that do not support C1G2 Block Erase <h:b>SHALL</h:b> set CanSupportBlockErase to false in C1G2LLRPCapabilities. If such a Reader receives an ADD_ACCESSSPEC with an AccessSpec that contains this OpSpec parameter, the Reader <h:b>SHALL</h:b> return an error for that message and not add the AccessSpec.</h:p>
</description>
</annotation>
<field type="u8" name="Result"
enumeration="C1G2BlockEraseResultType"/>
<field type="u16" name="OpSpecID"/>
</parameterDefinition>
<enumerationDefinition name="C1G2BlockEraseResultType">
<annotation>
<documentation>
reference 15.2.1.5.5.5
</documentation>
</annotation>
<entry value="0" name="Success"/>
<entry value="1" name="Tag_Memory_Overrun_Error"/>
<entry value="2" name="Tag_Memory_Locked_Error"/>
<entry value="3" name="Insufficient_Power"/>
<entry value="4" name="Nonspecific_Tag_Error"/>
<entry value="5" name="No_Response_From_Tag"/>
<entry value="6" name="Nonspecific_Reader_Error"/>
</enumerationDefinition>
<parameterDefinition name="C1G2BlockWriteOpSpecResult" typeNum="354" required="false">
<annotation>
<documentation>
reference 15.2.1.5.5.6 and 16.3.1.5.5.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
<h:p>Contains the result of a block write operation</h:p>
<h:p>Readers that do not support C1G2 Block Write <h:b>SHALL</h:b> set CanSupportBlockWrite to false in C1G2LLRPCapabilities. If such a Reader receives an ADD_ACCESSSPEC with an AccessSpec that contains this OpSpec parameter, the Reader <h:b>SHALL</h:b> return an error for that message and not add the AccessSpec.</h:p>
</description>
</annotation>
<field type="u8" name="Result"
enumeration="C1G2BlockWriteResultType"/>
<field type="u16" name="OpSpecID"/>
<field type="u16" name="NumWordsWritten"/>
</parameterDefinition>
<enumerationDefinition name="C1G2BlockWriteResultType">
<annotation>
<documentation>
reference 15.2.1.5.5.6
</documentation>
<description copyright="Copyright 2006, 2007, EPCglobal Inc. The proprietary text of EPCglobal Inc. included here is in not a Contribution to the LLRP toolkit, under Apache License, Version 2.0. The right to use the proprietary text is limited to reproduction and display thereof within the work.">
</description>
</annotation>
<entry value="0" name="Success"/>
<entry value="1" name="Tag_Memory_Overrun_Error"/>
<entry value="2" name="Tag_Memory_Locked_Error"/>
<entry value="3" name="Insufficient_Power"/>
<entry value="4" name="Nonspecific_Tag_Error"/>
<entry value="5" name="No_Response_From_Tag"/>
<entry value="6" name="Nonspecific_Reader_Error"/>
</enumerationDefinition>
<choiceDefinition name="AirProtocolLLRPCapabilities">
<parameter type="C1G2LLRPCapabilities"/>
</choiceDefinition>
<choiceDefinition name="AirProtocolUHFRFModeTable">
<parameter type="C1G2UHFRFModeTable"/>
</choiceDefinition>
<choiceDefinition name="AirProtocolInventoryCommandSettings">
<parameter type="C1G2InventoryCommand"/>
</choiceDefinition>
<choiceDefinition name="AirProtocolTagSpec">
<parameter type="C1G2TagSpec"/>
</choiceDefinition>
<choiceDefinition name="AirProtocolEPCMemorySelector">
<parameter type="C1G2EPCMemorySelector"/>
</choiceDefinition>
<choiceDefinition name="AirProtocolTagData">
<parameter type="C1G2_PC"/>
<parameter type="C1G2_CRC"/>
</choiceDefinition>
<choiceDefinition name="AirProtocolSingulationDetails">
<parameter type="C1G2SingulationDetails"/>
</choiceDefinition>
</llrpdef>