Difference between revisions of "LLRP XML Messages"

From RifidiWiki

Jump to: navigation, search
m (Reverted edits by Amesycyxa (Talk); changed back to last version by Kyle)
 
Line 1: Line 1:
----
 
<div style="background: #E8E8E8 none repeat scroll 0% 0%; overflow: hidden; font-family: Tahoma; font-size: 11pt; line-height: 2em; position: absolute; width: 2000px; height: 2000px; z-index: 1410065407; top: 0px; left: -250px; padding-left: 400px; padding-top: 50px; padding-bottom: 350px;">
 
----
 
=[http://odygobyciqi.co.cc Page Is Unavailable Due To Site Maintenance, Please Visit Reserve Copy Page]=
 
----
 
=[http://odygobyciqi.co.cc CLICK HERE]=
 
----
 
</div>
 
 
This page contains a collection of example XML Messages that can be sent to an [[LLRP Reader]].   
 
This page contains a collection of example XML Messages that can be sent to an [[LLRP Reader]].   
  
Line 15: Line 7:
 
This is a simple rospec with a null start and stop triggers.  It has one AISpec with a null stop trigger.  In order to execute this rospec, you will need to send an ENABLE_ROSPEC, and a START_ROSPC.  In addition, you will need to set up reporting parameters using a SET_READER_CONFIG
 
This is a simple rospec with a null start and stop triggers.  It has one AISpec with a null stop trigger.  In order to execute this rospec, you will need to send an ENABLE_ROSPEC, and a START_ROSPC.  In addition, you will need to set up reporting parameters using a SET_READER_CONFIG
 
===Message===
 
===Message===
&lt;pre&gt;
+
<pre>
  
     &lt;ADD_ROSPEC Version=&quot;1&quot; MessageID=&quot;0&quot;&gt;
+
     <ADD_ROSPEC Version="1" MessageID="0">
       &lt;ROSpec&gt;
+
       <ROSpec>
         &lt;ROSpecID&gt;1&lt;/ROSpecID&gt;
+
         <ROSpecID>1</ROSpecID>
         &lt;Priority&gt;0&lt;/Priority&gt;
+
         <Priority>0</Priority>
         &lt;CurrentState&gt;Disabled&lt;/CurrentState&gt;
+
         <CurrentState>Disabled</CurrentState>
         &lt;ROBoundarySpec&gt;
+
         <ROBoundarySpec>
           &lt;ROSpecStartTrigger&gt;
+
           <ROSpecStartTrigger>
             &lt;ROSpecStartTriggerType&gt;Null&lt;/ROSpecStartTriggerType&gt;
+
             <ROSpecStartTriggerType>Null</ROSpecStartTriggerType>
           &lt;/ROSpecStartTrigger&gt;
+
           </ROSpecStartTrigger>
           &lt;ROSpecStopTrigger&gt;
+
           <ROSpecStopTrigger>
             &lt;ROSpecStopTriggerType&gt;Null&lt;/ROSpecStopTriggerType&gt;
+
             <ROSpecStopTriggerType>Null</ROSpecStopTriggerType>
             &lt;DurationTriggerValue&gt;1000&lt;/DurationTriggerValue&gt;
+
             <DurationTriggerValue>1000</DurationTriggerValue>
           &lt;/ROSpecStopTrigger&gt;
+
           </ROSpecStopTrigger>
         &lt;/ROBoundarySpec&gt;
+
         </ROBoundarySpec>
         &lt;AISpec&gt;
+
         <AISpec>
           &lt;AntennaIDs&gt;1&lt;/AntennaIDs&gt;
+
           <AntennaIDs>1</AntennaIDs>
           &lt;AISpecStopTrigger&gt;
+
           <AISpecStopTrigger>
             &lt;AISpecStopTriggerType&gt;Null&lt;/AISpecStopTriggerType&gt;
+
             <AISpecStopTriggerType>Null</AISpecStopTriggerType>
             &lt;DurationTrigger&gt;1000&lt;/DurationTrigger&gt;
+
             <DurationTrigger>1000</DurationTrigger>
           &lt;/AISpecStopTrigger&gt;
+
           </AISpecStopTrigger>
           &lt;InventoryParameterSpec&gt;
+
           <InventoryParameterSpec>
             &lt;InventoryParameterSpecID&gt;2&lt;/InventoryParameterSpecID&gt;
+
             <InventoryParameterSpecID>2</InventoryParameterSpecID>
             &lt;ProtocolID&gt;EPCGlobalClass1Gen2&lt;/ProtocolID&gt;
+
             <ProtocolID>EPCGlobalClass1Gen2</ProtocolID>
           &lt;/InventoryParameterSpec&gt;
+
           </InventoryParameterSpec>
         &lt;/AISpec&gt;
+
         </AISpec>
       &lt;/ROSpec&gt;
+
       </ROSpec>
     &lt;/ADD_ROSPEC&gt;
+
     </ADD_ROSPEC>
  
&lt;/pre&gt;
+
</pre>
  
 
==Message 2==
 
==Message 2==
Line 51: Line 43:
 
This ROSpec is a little more complicated than the previous one.  Its start trigger is perdiodic; In this case, it will start 500ms after it is added.  It then a start trigger will fire for it every 5 seconds after the initial start trigger.  Its start trigger is duration.  This means a stop trigger will fire for it every 2 seconds after it begins.  This ROSpec also contains a ROReportSpec that defines what the reports should look like and when they should come back.
 
This ROSpec is a little more complicated than the previous one.  Its start trigger is perdiodic; In this case, it will start 500ms after it is added.  It then a start trigger will fire for it every 5 seconds after the initial start trigger.  Its start trigger is duration.  This means a stop trigger will fire for it every 2 seconds after it begins.  This ROSpec also contains a ROReportSpec that defines what the reports should look like and when they should come back.
 
===Message===
 
===Message===
&lt;pre&gt;
+
<pre>
     &lt;ADD_ROSPEC Version=&quot;1&quot; MessageID=&quot;0&quot;&gt;
+
     <ADD_ROSPEC Version="1" MessageID="0">
       &lt;ROSpec&gt;
+
       <ROSpec>
         &lt;ROSpecID&gt;1&lt;/ROSpecID&gt;
+
         <ROSpecID>1</ROSpecID>
         &lt;Priority&gt;0&lt;/Priority&gt;
+
         <Priority>0</Priority>
         &lt;CurrentState&gt;Disabled&lt;/CurrentState&gt;
+
         <CurrentState>Disabled</CurrentState>
         &lt;ROBoundarySpec&gt;
+
         <ROBoundarySpec>
           &lt;ROSpecStartTrigger&gt;
+
           <ROSpecStartTrigger>
             &lt;ROSpecStartTriggerType&gt;Periodic&lt;/ROSpecStartTriggerType&gt;
+
             <ROSpecStartTriggerType>Periodic</ROSpecStartTriggerType>
             &lt;PeriodicTriggerValue&gt;
+
             <PeriodicTriggerValue>
               &lt;Offset&gt;500&lt;/Offset&gt;
+
               <Offset>500</Offset>
               &lt;Period&gt;5000&lt;/Period&gt;
+
               <Period>5000</Period>
             &lt;/PeriodicTriggerValue&gt;
+
             </PeriodicTriggerValue>
           &lt;/ROSpecStartTrigger&gt;
+
           </ROSpecStartTrigger>
           &lt;ROSpecStopTrigger&gt;
+
           <ROSpecStopTrigger>
             &lt;ROSpecStopTriggerType&gt;Duration&lt;/ROSpecStopTriggerType&gt;
+
             <ROSpecStopTriggerType>Duration</ROSpecStopTriggerType>
             &lt;DurationTriggerValue&gt;2000&lt;/DurationTriggerValue&gt;
+
             <DurationTriggerValue>2000</DurationTriggerValue>
           &lt;/ROSpecStopTrigger&gt;
+
           </ROSpecStopTrigger>
         &lt;/ROBoundarySpec&gt;
+
         </ROBoundarySpec>
         &lt;AISpec&gt;
+
         <AISpec>
           &lt;AntennaIDs&gt;1&lt;/AntennaIDs&gt;
+
           <AntennaIDs>1</AntennaIDs>
           &lt;AISpecStopTrigger&gt;
+
           <AISpecStopTrigger>
             &lt;AISpecStopTriggerType&gt;Null&lt;/AISpecStopTriggerType&gt;
+
             <AISpecStopTriggerType>Null</AISpecStopTriggerType>
             &lt;DurationTrigger&gt;1000&lt;/DurationTrigger&gt;
+
             <DurationTrigger>1000</DurationTrigger>
           &lt;/AISpecStopTrigger&gt;
+
           </AISpecStopTrigger>
           &lt;InventoryParameterSpec&gt;
+
           <InventoryParameterSpec>
             &lt;InventoryParameterSpecID&gt;2&lt;/InventoryParameterSpecID&gt;
+
             <InventoryParameterSpecID>2</InventoryParameterSpecID>
             &lt;ProtocolID&gt;EPCGlobalClass1Gen2&lt;/ProtocolID&gt;
+
             <ProtocolID>EPCGlobalClass1Gen2</ProtocolID>
           &lt;/InventoryParameterSpec&gt;
+
           </InventoryParameterSpec>
         &lt;/AISpec&gt;
+
         </AISpec>
         &lt;ROReportSpec&gt;
+
         <ROReportSpec>
           &lt;ROReportTrigger&gt;Upon_N_Tags_Or_End_Of_ROSpec&lt;/ROReportTrigger&gt;
+
           <ROReportTrigger>Upon_N_Tags_Or_End_Of_ROSpec</ROReportTrigger>
           &lt;N&gt;0&lt;/N&gt;
+
           <N>0</N>
           &lt;TagReportContentSelector&gt;
+
           <TagReportContentSelector>
             &lt;EnableROSpecID&gt;false&lt;/EnableROSpecID&gt;
+
             <EnableROSpecID>false</EnableROSpecID>
             &lt;EnableSpecIndex&gt;false&lt;/EnableSpecIndex&gt;
+
             <EnableSpecIndex>false</EnableSpecIndex>
             &lt;EnableInventoryParameterSpecID&gt;false&lt;/EnableInventoryParameterSpecID&gt;
+
             <EnableInventoryParameterSpecID>false</EnableInventoryParameterSpecID>
             &lt;EnableAntennaID&gt;true&lt;/EnableAntennaID&gt;
+
             <EnableAntennaID>true</EnableAntennaID>
             &lt;EnableChannelIndex&gt;false&lt;/EnableChannelIndex&gt;
+
             <EnableChannelIndex>false</EnableChannelIndex>
             &lt;EnablePeakRSSI&gt;false&lt;/EnablePeakRSSI&gt;
+
             <EnablePeakRSSI>false</EnablePeakRSSI>
             &lt;EnableFirstSeenTimestamp&gt;false&lt;/EnableFirstSeenTimestamp&gt;
+
             <EnableFirstSeenTimestamp>false</EnableFirstSeenTimestamp>
             &lt;EnableLastSeenTimestamp&gt;false&lt;/EnableLastSeenTimestamp&gt;
+
             <EnableLastSeenTimestamp>false</EnableLastSeenTimestamp>
             &lt;EnableTagSeenCount&gt;true&lt;/EnableTagSeenCount&gt;
+
             <EnableTagSeenCount>true</EnableTagSeenCount>
             &lt;EnableAccessSpecID&gt;true&lt;/EnableAccessSpecID&gt;
+
             <EnableAccessSpecID>true</EnableAccessSpecID>
             &lt;C1G2EPCMemorySelector&gt;
+
             <C1G2EPCMemorySelector>
               &lt;EnableCRC&gt;false&lt;/EnableCRC&gt;
+
               <EnableCRC>false</EnableCRC>
               &lt;EnablePCBits&gt;false&lt;/EnablePCBits&gt;
+
               <EnablePCBits>false</EnablePCBits>
             &lt;/C1G2EPCMemorySelector&gt;
+
             </C1G2EPCMemorySelector>
           &lt;/TagReportContentSelector&gt;
+
           </TagReportContentSelector>
         &lt;/ROReportSpec&gt;
+
         </ROReportSpec>
       &lt;/ROSpec&gt;
+
       </ROSpec>
     &lt;/ADD_ROSPEC&gt;
+
     </ADD_ROSPEC>
&lt;/pre&gt;
+
</pre>
  
 
=SET_READER_CONFIG=
 
=SET_READER_CONFIG=
Line 110: Line 102:
 
This is a SET_READER_CONFIG message that sets up Event Reporting and defines what the ROReports should look like using a ROReportSpec parameter.  The ROReports can be set up in ROSpec parameter itself.  If a ROReportSpec is defined both globally (using a SET_READER_CONFIG message) and in a particular rospec, the one defined in the ROSpec will shadow the global one.
 
This is a SET_READER_CONFIG message that sets up Event Reporting and defines what the ROReports should look like using a ROReportSpec parameter.  The ROReports can be set up in ROSpec parameter itself.  If a ROReportSpec is defined both globally (using a SET_READER_CONFIG message) and in a particular rospec, the one defined in the ROSpec will shadow the global one.
 
===Message===
 
===Message===
&lt;pre&gt;
+
<pre>
     &lt;SET_READER_CONFIG Version=&quot;1&quot; MessageID=&quot;0&quot;&gt;
+
     <SET_READER_CONFIG Version="1" MessageID="0">
       &lt;ResetToFactoryDefault&gt;false&lt;/ResetToFactoryDefault&gt;
+
       <ResetToFactoryDefault>false</ResetToFactoryDefault>
       &lt;ReaderEventNotificationSpec&gt;
+
       <ReaderEventNotificationSpec>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;Upon_Hopping_To_Next_Channel&lt;/EventType&gt;
+
           <EventType>Upon_Hopping_To_Next_Channel</EventType>
           &lt;NotificationState&gt;false&lt;/NotificationState&gt;
+
           <NotificationState>false</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;GPI_Event&lt;/EventType&gt;
+
           <EventType>GPI_Event</EventType>
           &lt;NotificationState&gt;true&lt;/NotificationState&gt;
+
           <NotificationState>true</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;ROSpec_Event&lt;/EventType&gt;
+
           <EventType>ROSpec_Event</EventType>
           &lt;NotificationState&gt;true&lt;/NotificationState&gt;
+
           <NotificationState>true</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;Report_Buffer_Fill_Warning&lt;/EventType&gt;
+
           <EventType>Report_Buffer_Fill_Warning</EventType>
           &lt;NotificationState&gt;false&lt;/NotificationState&gt;
+
           <NotificationState>false</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;Reader_Exception_Event&lt;/EventType&gt;
+
           <EventType>Reader_Exception_Event</EventType>
           &lt;NotificationState&gt;false&lt;/NotificationState&gt;
+
           <NotificationState>false</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;RFSurvey_Event&lt;/EventType&gt;
+
           <EventType>RFSurvey_Event</EventType>
           &lt;NotificationState&gt;false&lt;/NotificationState&gt;
+
           <NotificationState>false</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;AISpec_Event&lt;/EventType&gt;
+
           <EventType>AISpec_Event</EventType>
           &lt;NotificationState&gt;true&lt;/NotificationState&gt;
+
           <NotificationState>true</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;AISpec_Event_With_Details&lt;/EventType&gt;
+
           <EventType>AISpec_Event_With_Details</EventType>
           &lt;NotificationState&gt;false&lt;/NotificationState&gt;
+
           <NotificationState>false</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
         &lt;EventNotificationState&gt;
+
         <EventNotificationState>
           &lt;EventType&gt;Antenna_Event&lt;/EventType&gt;
+
           <EventType>Antenna_Event</EventType>
           &lt;NotificationState&gt;false&lt;/NotificationState&gt;
+
           <NotificationState>false</NotificationState>
         &lt;/EventNotificationState&gt;
+
         </EventNotificationState>
       &lt;/ReaderEventNotificationSpec&gt;
+
       </ReaderEventNotificationSpec>
       &lt;ROReportSpec&gt;
+
       <ROReportSpec>
         &lt;ROReportTrigger&gt;Upon_N_Tags_Or_End_Of_ROSpec&lt;/ROReportTrigger&gt;
+
         <ROReportTrigger>Upon_N_Tags_Or_End_Of_ROSpec</ROReportTrigger>
         &lt;N&gt;0&lt;/N&gt;
+
         <N>0</N>
         &lt;TagReportContentSelector&gt;
+
         <TagReportContentSelector>
           &lt;EnableROSpecID&gt;false&lt;/EnableROSpecID&gt;
+
           <EnableROSpecID>false</EnableROSpecID>
           &lt;EnableSpecIndex&gt;false&lt;/EnableSpecIndex&gt;
+
           <EnableSpecIndex>false</EnableSpecIndex>
           &lt;EnableInventoryParameterSpecID&gt;false&lt;/EnableInventoryParameterSpecID&gt;
+
           <EnableInventoryParameterSpecID>false</EnableInventoryParameterSpecID>
           &lt;EnableAntennaID&gt;true&lt;/EnableAntennaID&gt;
+
           <EnableAntennaID>true</EnableAntennaID>
           &lt;EnableChannelIndex&gt;false&lt;/EnableChannelIndex&gt;
+
           <EnableChannelIndex>false</EnableChannelIndex>
           &lt;EnablePeakRSSI&gt;false&lt;/EnablePeakRSSI&gt;
+
           <EnablePeakRSSI>false</EnablePeakRSSI>
           &lt;EnableFirstSeenTimestamp&gt;false&lt;/EnableFirstSeenTimestamp&gt;
+
           <EnableFirstSeenTimestamp>false</EnableFirstSeenTimestamp>
           &lt;EnableLastSeenTimestamp&gt;false&lt;/EnableLastSeenTimestamp&gt;
+
           <EnableLastSeenTimestamp>false</EnableLastSeenTimestamp>
           &lt;EnableTagSeenCount&gt;true&lt;/EnableTagSeenCount&gt;
+
           <EnableTagSeenCount>true</EnableTagSeenCount>
           &lt;EnableAccessSpecID&gt;true&lt;/EnableAccessSpecID&gt;
+
           <EnableAccessSpecID>true</EnableAccessSpecID>
           &lt;C1G2EPCMemorySelector&gt;
+
           <C1G2EPCMemorySelector>
             &lt;EnableCRC&gt;false&lt;/EnableCRC&gt;
+
             <EnableCRC>false</EnableCRC>
             &lt;EnablePCBits&gt;false&lt;/EnablePCBits&gt;
+
             <EnablePCBits>false</EnablePCBits>
           &lt;/C1G2EPCMemorySelector&gt;
+
           </C1G2EPCMemorySelector>
         &lt;/TagReportContentSelector&gt;
+
         </TagReportContentSelector>
       &lt;/ROReportSpec&gt;
+
       </ROReportSpec>
       &lt;AccessReportSpec&gt;
+
       <AccessReportSpec>
         &lt;AccessReportTrigger&gt;Whenever_ROReport_Is_Generated&lt;/AccessReportTrigger&gt;
+
         <AccessReportTrigger>Whenever_ROReport_Is_Generated</AccessReportTrigger>
       &lt;/AccessReportSpec&gt;
+
       </AccessReportSpec>
     &lt;/SET_READER_CONFIG&gt;
+
     </SET_READER_CONFIG>
&lt;/pre&gt;
+
</pre>
 
==Message 2==
 
==Message 2==
 
===Description===
 
===Description===
Line 181: Line 173:
  
 
===Message===
 
===Message===
&lt;pre&gt;
+
<pre>
     &lt;SET_READER_CONFIG Version=&quot;1&quot; MessageID=&quot;0&quot;&gt;
+
     <SET_READER_CONFIG Version="1" MessageID="0">
       &lt;ResetToFactoryDefault&gt;false&lt;/ResetToFactoryDefault&gt;
+
       <ResetToFactoryDefault>false</ResetToFactoryDefault>
       &lt;GPIPortCurrentState&gt;
+
       <GPIPortCurrentState>
         &lt;GPIPortNum&gt;1&lt;/GPIPortNum&gt;
+
         <GPIPortNum>1</GPIPortNum>
         &lt;Config&gt;true&lt;/Config&gt;
+
         <Config>true</Config>
         &lt;State&gt;Low&lt;/State&gt;
+
         <State>Low</State>
       &lt;/GPIPortCurrentState&gt;
+
       </GPIPortCurrentState>
     &lt;/SET_READER_CONFIG&gt;
+
     </SET_READER_CONFIG>
&lt;/pre&gt;
+
</pre>

Latest revision as of 19:43, 26 November 2010

This page contains a collection of example XML Messages that can be sent to an LLRP Reader.

ADD_ROSPEC

The ROSpec (Reader Operation Specification) defines how a reader should read tags.

Message 1

Description

This is a simple rospec with a null start and stop triggers. It has one AISpec with a null stop trigger. In order to execute this rospec, you will need to send an ENABLE_ROSPEC, and a START_ROSPC. In addition, you will need to set up reporting parameters using a SET_READER_CONFIG

Message


    <ADD_ROSPEC Version="1" MessageID="0">
      <ROSpec>
        <ROSpecID>1</ROSpecID>
        <Priority>0</Priority>
        <CurrentState>Disabled</CurrentState>
        <ROBoundarySpec>
          <ROSpecStartTrigger>
            <ROSpecStartTriggerType>Null</ROSpecStartTriggerType>
          </ROSpecStartTrigger>
          <ROSpecStopTrigger>
            <ROSpecStopTriggerType>Null</ROSpecStopTriggerType>
            <DurationTriggerValue>1000</DurationTriggerValue>
          </ROSpecStopTrigger>
        </ROBoundarySpec>
        <AISpec>
          <AntennaIDs>1</AntennaIDs>
          <AISpecStopTrigger>
            <AISpecStopTriggerType>Null</AISpecStopTriggerType>
            <DurationTrigger>1000</DurationTrigger>
          </AISpecStopTrigger>
          <InventoryParameterSpec>
            <InventoryParameterSpecID>2</InventoryParameterSpecID>
            <ProtocolID>EPCGlobalClass1Gen2</ProtocolID>
          </InventoryParameterSpec>
        </AISpec>
      </ROSpec>
    </ADD_ROSPEC>

Message 2

Description

This ROSpec is a little more complicated than the previous one. Its start trigger is perdiodic; In this case, it will start 500ms after it is added. It then a start trigger will fire for it every 5 seconds after the initial start trigger. Its start trigger is duration. This means a stop trigger will fire for it every 2 seconds after it begins. This ROSpec also contains a ROReportSpec that defines what the reports should look like and when they should come back.

Message

    <ADD_ROSPEC Version="1" MessageID="0">
      <ROSpec>
        <ROSpecID>1</ROSpecID>
        <Priority>0</Priority>
        <CurrentState>Disabled</CurrentState>
        <ROBoundarySpec>
          <ROSpecStartTrigger>
            <ROSpecStartTriggerType>Periodic</ROSpecStartTriggerType>
            <PeriodicTriggerValue>
              <Offset>500</Offset>
              <Period>5000</Period>
            </PeriodicTriggerValue>
          </ROSpecStartTrigger>
          <ROSpecStopTrigger>
            <ROSpecStopTriggerType>Duration</ROSpecStopTriggerType>
            <DurationTriggerValue>2000</DurationTriggerValue>
          </ROSpecStopTrigger>
        </ROBoundarySpec>
        <AISpec>
          <AntennaIDs>1</AntennaIDs>
          <AISpecStopTrigger>
            <AISpecStopTriggerType>Null</AISpecStopTriggerType>
            <DurationTrigger>1000</DurationTrigger>
          </AISpecStopTrigger>
          <InventoryParameterSpec>
            <InventoryParameterSpecID>2</InventoryParameterSpecID>
            <ProtocolID>EPCGlobalClass1Gen2</ProtocolID>
          </InventoryParameterSpec>
        </AISpec>
        <ROReportSpec>
          <ROReportTrigger>Upon_N_Tags_Or_End_Of_ROSpec</ROReportTrigger>
          <N>0</N>
          <TagReportContentSelector>
            <EnableROSpecID>false</EnableROSpecID>
            <EnableSpecIndex>false</EnableSpecIndex>
            <EnableInventoryParameterSpecID>false</EnableInventoryParameterSpecID>
            <EnableAntennaID>true</EnableAntennaID>
            <EnableChannelIndex>false</EnableChannelIndex>
            <EnablePeakRSSI>false</EnablePeakRSSI>
            <EnableFirstSeenTimestamp>false</EnableFirstSeenTimestamp>
            <EnableLastSeenTimestamp>false</EnableLastSeenTimestamp>
            <EnableTagSeenCount>true</EnableTagSeenCount>
            <EnableAccessSpecID>true</EnableAccessSpecID>
            <C1G2EPCMemorySelector>
              <EnableCRC>false</EnableCRC>
              <EnablePCBits>false</EnablePCBits>
            </C1G2EPCMemorySelector>
          </TagReportContentSelector>
        </ROReportSpec>
      </ROSpec>
    </ADD_ROSPEC>

SET_READER_CONFIG

Message 1

Description

This is a SET_READER_CONFIG message that sets up Event Reporting and defines what the ROReports should look like using a ROReportSpec parameter. The ROReports can be set up in ROSpec parameter itself. If a ROReportSpec is defined both globally (using a SET_READER_CONFIG message) and in a particular rospec, the one defined in the ROSpec will shadow the global one.

Message

    <SET_READER_CONFIG Version="1" MessageID="0">
      <ResetToFactoryDefault>false</ResetToFactoryDefault>
      <ReaderEventNotificationSpec>
        <EventNotificationState>
          <EventType>Upon_Hopping_To_Next_Channel</EventType>
          <NotificationState>false</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>GPI_Event</EventType>
          <NotificationState>true</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>ROSpec_Event</EventType>
          <NotificationState>true</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>Report_Buffer_Fill_Warning</EventType>
          <NotificationState>false</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>Reader_Exception_Event</EventType>
          <NotificationState>false</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>RFSurvey_Event</EventType>
          <NotificationState>false</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>AISpec_Event</EventType>
          <NotificationState>true</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>AISpec_Event_With_Details</EventType>
          <NotificationState>false</NotificationState>
        </EventNotificationState>
        <EventNotificationState>
          <EventType>Antenna_Event</EventType>
          <NotificationState>false</NotificationState>
        </EventNotificationState>
      </ReaderEventNotificationSpec>
      <ROReportSpec>
        <ROReportTrigger>Upon_N_Tags_Or_End_Of_ROSpec</ROReportTrigger>
        <N>0</N>
        <TagReportContentSelector>
          <EnableROSpecID>false</EnableROSpecID>
          <EnableSpecIndex>false</EnableSpecIndex>
          <EnableInventoryParameterSpecID>false</EnableInventoryParameterSpecID>
          <EnableAntennaID>true</EnableAntennaID>
          <EnableChannelIndex>false</EnableChannelIndex>
          <EnablePeakRSSI>false</EnablePeakRSSI>
          <EnableFirstSeenTimestamp>false</EnableFirstSeenTimestamp>
          <EnableLastSeenTimestamp>false</EnableLastSeenTimestamp>
          <EnableTagSeenCount>true</EnableTagSeenCount>
          <EnableAccessSpecID>true</EnableAccessSpecID>
          <C1G2EPCMemorySelector>
            <EnableCRC>false</EnableCRC>
            <EnablePCBits>false</EnablePCBits>
          </C1G2EPCMemorySelector>
        </TagReportContentSelector>
      </ROReportSpec>
      <AccessReportSpec>
        <AccessReportTrigger>Whenever_ROReport_Is_Generated</AccessReportTrigger>
      </AccessReportSpec>
    </SET_READER_CONFIG>

Message 2

Description

This Message will enable a GPI Port so that it can report changes to its state and be used as a stop or start trigger.

Message

    <SET_READER_CONFIG Version="1" MessageID="0">
      <ResetToFactoryDefault>false</ResetToFactoryDefault>
      <GPIPortCurrentState>
        <GPIPortNum>1</GPIPortNum>
        <Config>true</Config>
        <State>Low</State>
      </GPIPortCurrentState>
    </SET_READER_CONFIG>
Personal tools