LLRP XML Messages
From RifidiWiki
This page contains a collection of example XML Messages that can be sent to an LLRP Reader.
Contents
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
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>