LLRP XML Messages

From RifidiWiki

Jump to: navigation, search

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