|
|
profile | Rfid Inventory |
<profile> examples |
Rfid Inventory Attributes Elements XML Reference |
<profile> example from the profile.xml sample.
<?xml version="1.0" encoding="UTF-8"?>
<profile id="RfidInventoryProfile" abstract="true"
superclass="org.eclipse.soda.dk.rfid.base.profile.RfidBaseProfile" packagebase="org.eclipse.soda.dk">
<description>RfidInventoryProfile controls RFID tag reading, tag filtering, and
aggregation reporting. This profile supports starting and stopping the reading mode,
providing tag data in a common format, filtering tags as duplicates or by interest masks,
collecting tags into an aggregation report, and marking tag reports with meta data called data
extensions. The RfidInventoryProfile can be configured to trigger reading, filtering, and
aggregating behavior based on events published by the GpioProfile and ControlProfile.
</description>
<provider>Eclipse.org</provider>
<version>1.1.0</version>
<vendor>IBM</vendor>
<incubation>true</incubation>
<!-- Protocol Specification -->
<spec id="Specification">
<speccomment>Ratified</speccomment>
<specdate>August 13, 2007</specdate>
<spectitle>EPCglobal Low Level Reader Protocol (LLRP)</spectitle>
<specurl>http://www.epcglobalinc.org/standards/llrp</specurl>
<specvendor>EPCglobal</specvendor>
<specversion>1.0.1</specversion>
</spec>
<spec id="AleSpecification">
<speccomment>Ratified</speccomment>
<specdate>February 27, 2008</specdate>
<spectitle>EPCglobal Application Level Events (ALE) Specification</spectitle>
<specurl>http://www.epcglobalinc.org/standards/ale/</specurl>
<specvendor>EPCglobal</specvendor>
<specversion>1.1</specversion>
</spec>
<customparameter name="readStopTimeout" type="int" defaultvalue="2000" access="true">
<description>readStopTimeout is a configuration parameter to specify the timeout period
in milliseconds that the profile will wait to receive an acknowledgment from the reader
after commanding the reader to stop reading. The profile updates the TagReading measurement
to "false" after either a response is received from the reader device or the time specified
in readStopTimeout elapses.
</description>
</customparameter>
<profileuses>
<profileref idref="org.eclipse.soda.dk.gpio.profile/dk/profile.xml#GpioProfile">
<measurementref idref="Input"/>
<measurementref idref="AnalogInput"/>
</profileref>
<profileref idref="org.eclipse.soda.dk.control.profile/dk/profile.xml#ControlProfile">
<measurementref idref="Bits"/>
<measurementref idref="Longs"/>
</profileref>
<profileref idref="org.eclipse.soda.dk.position.profile/dk/profile.xml#PositionProfile">
<measurementref idref="Coordinate"/>
</profileref>
</profileuses>
<group id="RfidInventory">
<signal id="TagReport" type="Map">
<description>TagReport is a signal containing tag data in a map structure. The report
contains one to many tags stored at the "tags" key. It may include data extension meta data
stored at the "dataExtensions" key. See the tags and dataExtensions descriptions for details.
</description>
<data id="tags" type="Map">
<description>The value stored at the "tags" key of the TagReport is a nested map which
contains tag data, keyed by tag ID string. Each tag ID is the index for a nested map
structure containing details about the read-events for that tag. The event data map may
include the keys "antenna", "count", "reader", "timestampFirst", "timestampLast", and
"dataExtensions".
</description>
</data>
<data id="antenna" type="long">
<description>The value stored at the "antenna" key of the read-event map is the antenna value,
based on a starting index of 1. It is included in the read-event map if the reader is
configured to report which antenna read the tag.</description>
</data>
<data id="count" type="long">
<description>The value stored at the "count" key of the read-event map is the number of times
this tag was read during the reporting cycle.
</description>
</data>
<data id="reader" type="string">
<description>The value stored at the "reader" key of the read-event map is the ID property
configured for this instance of the inventory profile.</description>
</data>
<data id="antennaReportCount" type="long">
<description>The value stored at the "antennaReportCount" key of the read-event map is the
count of how many antenna reported information reporting cycle.</description>
</data>
<data id="timestampFirst" type="long">
<description>The value stored at the "timestampFirst" key of the read-event map is the
initial timestamp that this tag was read during the reporting cycle.</description>
</data>
<data id="timestampLast" type="long">
<description>The value stored at the "timestampLast" key of the read-event map is the
final timestamp that this tag was read during the reporting cycle.</description>
</data>
<data id="duration" type="long">
<description>The value stored at the "duration" key of the read-event map is the
last timestamp minus the initial timestamp that this tag was read during the reporting cycle.</description>
<units>milliseconds</units>
</data>
<data id="dataExtensions" type="Map">
<description>The value stored at the "dataExtensions" key of the TagReport or read-event map
is a nested map of meta data as specified in the DataExtensions measurement.</description>
</data>
<data id="position" type="Map">
<description>The value stored at the "position" key of the TagReport or read-event map
is a nested map of meta data as specified in the "TagPositon" measurement.</description>
</data>
<data id="tid" type="int">
<description>The value stored at the "tid" key of the read-event map is the TID of the tag.
</description>
</data>
<data id="userdata" type="byte[]">
<description>The value stored at the "userdata" key of the read-event map is the user data of the tag.
</description>
</data>
<data id="llrpROSpecId" type="long">
<description>The value stored at the "llrpROSpecId" key of the read-event map is the ROSpecId related to
the LLRP tag report. [Optional]</description>
</data>
<data id="llrpSpecIndex" type="long">
<description>The value stored at the "llrpSpecIndex" key of the read-event map indicates the item within
ROSpec that is related to the LLRP tag report. [Optional]</description>
</data>
<data id="llrpInventoryParameterSpecId" type="long">
<description>The value stored at the "llrpInventoryParameterSpecId" key of the read-event map is the InventoryParameterSpecId
related to the LLRP tag report. [Optional]</description>
</data>
<data id="peakRSSI" type="long">
<description>The value stored at the "peakRSSI" key of the read-event map is the peak received power of the
EPC backscatter in dBM. [Optional]</description>
</data>
<data id="peakRSSIAverage" type="float">
<description>The value stored at the "peakRSSIAverage" key of the read-event map is the peak received power of the
EPC backscatter in dBM. [Optional]</description>
</data>
<data id="peakRSSIRange" type="long">
<description>The value stored at the "peakRSSIRange" key of the read-event map is maximum minus minimum the peak received power of the
EPC backscatter in dBM. [Optional]</description>
</data>
<data id="peakRSSITotal" type="long">
<description>The value stored at the "peakRSSITotal" key of the read-event map is the peak received power of the
EPC backscatter in dBM. [Optional]</description>
</data>
<data id="peakRSSIMinimum" type="long">
<description>The value stored at the "peakRSSIMinimum" key of the read-event map is the peak received power of the
EPC backscatter in dBM. [Optional]</description>
</data>
<data id="peakRSSIMaximum" type="long">
<description>The value stored at the "peakRSSIMaximum" key of the read-event map is the maximum peak received power of the
EPC backscatter in dBM. [Optional]</description>
</data>
<data id="channelIndex" type="long">
<description>The value stored at the "channelIndex" key of the read-event map is the index of the channel
the tag was seen. [Optional]</description>
</data>
<data id="timestampFirstUptime" type="long">
<description>The value stored at the "timestampFirst" key of the read-event map is the
initial uptime timestamp that this tag was read during the reporting cycle.[Optional]</description>
</data>
<data id="timestampLastUptime" type="long">
<description>The value stored at the "timestampLast" key of the read-event map is the
last uptime timestamp that this tag was read during the reporting cycle.[Optional]</description>
</data>
<data id="llrpAccessSpecId" type="long">
<description>The value stored at the "llrpAccessSpecId" key of the read-event map is the AccessSpecId related to
the LLRP tag report. [Optional]</description>
</data>
<data id="llrpAirProtocolTagData" type="string">
<description>The value stored at the "llrpAirProtocolTagData" key of the read-event map is nested map which contains
the air protocol tag data such as C1G2EPC-PC and C1G2EPC-CRC for C1G2, keyed by the tag data name.[Optional]</description>
</data>
<data id="C1G2PC" type="long">
<description>The value stored at the "llrpC1G2PC" key of the llrpAirProtocolTagData map is the PC Bits value of the
tag.[Optional]</description>
</data>
<data id="C1G2CRC" type="long">
<description>The value stored at the "llrpC1G2CRC" key of the llrpAirProtocolTagData map is the CRC value of the
tag.[Optional]</description>
</data>
<data id="llrpOpSpecResult" type="string">
<description>The value stored at the "llrpOpSpecResult" key of the read-event map is nested map which contains the results of
air protocol OpSpecs such as C1G2, keyed by OpSpecID[Optional]</description>
</data>
<data id="llrpOpSpecResultCode" type="long">
<description>The value stored at the "llrpOpSpecResultCode" key of the llrpOpSpecResult map is the result code of the
air opSpec.[Optional]</description>
</data>
<data id="llrpOpSpecReadData" type="byte[]">
<description>The value stored at the "llrpOpSpecReadData" key of the llrpOpSpecResult map is the data read by the
air opSpec.[Optional]</description>
</data>
<data id="llrpOpSpecNumWordsWritten" type="byte[]">
<description>The value stored at the "llrpOpSpecNumWordsWritten" key of the llrpOpSpecResult map is the number of the words
written by the air opSpec.[Optional]</description>
</data>
<data id="antenna1" type="Map">
<description>The value stored at the "antenna1" key of the read-event map is the antenna 1 optional information.
</description>
</data>
<data id="antenna2" type="Map">
<description>The value stored at the "antenna2" key of the read-event map is the antenna 2 optional information.
</description>
</data>
<data id="antenna3" type="Map">
<description>The value stored at the "antenna3" key of the read-event map is the antenna 3 optional information.
</description>
</data>
<data id="antenna4" type="Map">
<description>The value stored at the "antenna4" key of the read-event map is the antenna 4 optional information.
</description>
</data>
<data id="battery" type="Map">
<description>The value stored at the "battery" key of the read-event map is the optional battery information.
</description>
</data>
<data id="epcURI" type="string">
<description>The value stored at the "epcURI" key of the read-event map is the optional epc URI value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="killPwd" type="string">
<description>The value stored at the "killPwd" key of the read-event map is the optional kill password value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="accessPwd" type="string">
<description>The value stored at the "accessPwd" key of the read-event map is the optional access password value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="epcBank" type="byte[]">
<description>The value stored at the "epcBank" key of the read-event map is the optional epc bank value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="tidBank" type="byte[]">
<description>The value stored at the "tidBank" key of the read-event map is the optional TID bank value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="userBank" type="byte[]">
<description>The value stored at the "userBank" key of the read-event map is the optional user bank value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="afi" type="uint">
<description>The value stored at the "afi" key of the read-event map is the optional ISO Application Family Identifier (AFI) value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="nsi" type="uint">
<description>The value stored at the "nsi" key of the read-event map is the optional Numbering System Identifier (NSI) bank value.
</description>
<specreference idref="AleSpecification"/>
</data>
<data id="tagType" type="string">
<description>The value stored at the "tagType" key of the read-event map is the optional tag type value.
If the tag type is an RFID Tag, then the value should start with "rfid".
if the tag type is a barcode, then the value should start with a "barcode".
</description>
</data>
<data id="peakRSSIMinimumStandardScore" type="float">
<description>The value stored at the "peakRSSIMinimumStandardScore" key of the read-event map is the minimum peak
standard score (z-score). [Optional]</description>
</data>
<data id="peakRSSIMaximumStandardScore" type="float">
<description>The value stored at the "peakRSSIMaximumStandardScore" key of the read-event map is the maximum peak
standard score (z-score). [Optional]</description>
</data>
<data id="summary" type="Map">
<description>The value stored at the "summary" key of the TagReport is a map which
contains the summary information about the tags.
</description>
</data>
<data id="peakRSSIMinimumMedian" type="long">
<description>The value stored at the "peakRSSIMinimumMedian" key of the read-event map is the peak received power of the
EPC backscatter in dBM mean value. [Optional]</description>
</data>
<data id="peakRSSIMaximumMedian" type="long">
<description>The value stored at the "peakRSSIMaximumMedian" key of the read-event map is the maximum peak received power of the
EPC backscatter in dBM mean value. [Optional]</description>
</data>
<data id="peakRSSIMinimumAverage" type="long">
<description>The value stored at the "peakRSSIMinimumAverage" key of the read-event map is the minimum peak average received power of the
EPC backscatter in dBM mean value. [Optional]</description>
</data>
<data id="peakRSSIMaximumAverage" type="long">
<description>The value stored at the "peakRSSIMaximumAverage" key of the read-event map is the maximum peak average received power of the
EPC backscatter in dBM mean value. [Optional]</description>
</data>
<data id="peakRSSIMinimumStandardDeviation" type="float">
<description>The value stored at the "peakRSSIMinimumStandardDeviation" key of the read-event map is the minimum peak
standard deviation. [Optional]</description>
</data>
<data id="peakRSSIMaximumStandardDeviation" type="float">
<description>The value stored at the "peakRSSIMaximumStandardDeviation" key of the read-event map is the maximum peak
standard deviation. [Optional]</description>
</data>
<data id="tagCount" type="int">
<description>The value stored at the "tagCount" key is the count of tags included in the report.
</description>
</data>
<data id="countAverage" type="int">
<description>The value stored at the "countAverage" key is the count of all tag reads divided by the tag count.
</description>
</data>
<data id="readersMap" type="Map">
<description>The value stored at the "readersMap" key is map containing information about each reader.
</description>
</data>
<data id="antennasMap" type="Map">
<description>The value stored at the "antennasMap" key is map containing information about each antenna.
</description>
</data>
<data id="reportsMap" type="Map">
<description>The value stored at the "reportsMap" key is map containing information about each reader report.
</description>
</data>
<data id="vendorExtensions" type="List">
<description>The value stored at the "vendorExtensions" key of the read-event map is the List of custom parameters.
The value of each element is a Map with keys "VendorIdentifier", "ParameterSubtype" and "VendorParameterValue".
</description>
</data>
<data id="VendorIdentifier" type="int">
<description> The value stored at the "VendorIdentifier" key of customParameter map is the Vendor ID in the custom parameter.
</description>
</data>
<data id="ParameterSubtype" type="int">
<description> The value stored at the "ParameterSubtype" key of customParameter map is the SubType in the custom parameter.
</description>
</data>
<data id="VendorParameterValue" type="byte[]">
<description> The value stored at the "VendorParameterValue" key of customParameter map is the VendorParameter Value in the custom parameter.
</description>
</data>
</signal>
<signal id="TagAggregationReport" type="Map">
<description>TagAggregationReport is a signal containing a collection of tag data in a map
structure. The report can contain zero to many tags stored at the "tags" key. It may include data extension metadata
stored at the "dataExtensions" key. See the tags and dataExtensions descriptions for details.
</description>
<data idref="tags"/>
<data idref="antenna"/>
<data idref="count"/>
<data idref="reader"/>
<data idref="timestampFirst"/>
<data idref="timestampLast"/>
<data idref="dataExtensions"/>
<data idref="tid"/>
<data idref="userdata"/>
<data id="confidence" type="int">
<description>The value stored at the "confidence" key of the read-event map is the optional confidence value.
The higher the confidence value the more likely the tag was meant to be included in the aggregation.
If the confidence is zero, then we are unsure if the tag should be included.
If the confidence is less than zero, it is unlikely that the tag should be included.
The more negative the confidence value, then less likely the tag should be included.
</description>
<specreference idref="AleSpecification"/>
</data>
</signal>
<measurement id="TagReadingExpression" type="String">
<description>The TagReadingExpression is an LDAP expression to trigger the state of tag reading
based on input pin and control values.</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="TagReading" type="Boolean">
<description>The TagReading measurement specifies the state of reading behavior. When the
measurement is true, the reader is reading tags in autonomous mode and the profile reports
tag data on the TagReport signal. When the measurement is false, the reader's autonomous mode
is not enabled and any unexpected tag data reported by the reader is published on the TagReport error
signal. If an LDAP expression is specified for the TagReadingExpression, a publication to
write a value to this measurement will result in an exception and will not update the measurement
value.
</description>
<method/>
<value>
<boolean>false</boolean>
</value>
</measurement>
<measurement id="TagAggregatingExpression" type="String">
<description>The TagAggregatingExpression is an LDAP expression to trigger the behavior of
aggregating based on input pin and control values.
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="TagAggregating" type="Boolean" listen="true">
<description>The TagAggregating measurement specifies the state of aggregating behavior.
When the measurement value is true, the profile is collecting all tags which pass the
Aggregation Mask. When the measurement value is updated to false, the profile publishes the
TagAggregationReport signal, clears the aggregation cache, and stops collecting incoming tags.
If an LDAP expression is specified for the TagAggregatingExpression, a publication to
write a value to this measurement will result in an exception and will not update the measurement
value.
</description>
<method/>
<value>
<boolean>false</boolean>
</value>
</measurement>
<measurement id="TagMaskSetting" type="String">
<description>The TagMaskSetting specifies the definition of tags that should be published
on the TagReport signal. A mask is specified by four comma-delimited parameters. The
first parameter of a tag mask is a place holder for future use, and the value is ignored. The
second parameter is the pointer value. It is the first bit location of the tag id against
which to compare the mask. The third parameter is the length. It specifies the number of
bits of the tag id to compare against the mask. The final parameter is the mask value. It
is the pattern against which the specified section of the tag id must match to pass the filter.
Multiple masks can be specified by separating them with a semicolon.
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="TagFilterExpression" type="String">
<description>The optional TagFilterExpression specifies the definition of tags that should be published
on the "TagReport" signal. The filter expression is an LDAP expression.
The keys in the LDAP expression are the keys defined in the "TagReport".
If the tag passes the "TagMaskSetting" and the results of the LDAP expression is true,
then the tag will be reported in the "TagReport".
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="AggregationFilterExpression" type="String">
<description>The optional AggregationFilterExpression specifies the definition of tags that should be published
on the "TagAggregationReport" signal. The filter expression is an LDAP expression.
The keys in the LDAP expression are the keys defined in the "TagReport".
If the tag passes the "AggregationMaskSetting" and the result of the LDAP expression is true,
then the tag will be reported in the "TagAggregationReport".
If the filtering can be done by the "AggregationMaskSetting", then this would be better than using this LDAP filter.
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="AggregationFinalFilterExpression" type="String">
<description>The optional AggregationFinalFilterExpression specifies the definition of tags that should be published
on the "TagAggregationReport" signal. The filter expression is an LDAP expression.
The keys in the LDAP expression are the keys defined in the "TagReport".
Before the "TagAggregationReport" is published, this LDAP filter will be applied to all tags in the current
tag aggregation. If the result of the LDAP filter is true, then the tag will be included in the report.
If the filtering can be done by the "AggregationMaskSetting", then this would be better than using this LDAP filter.
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="DuplicateFilteringExpression" type="String">
<description>The DuplicateFilteringExpression is an LDAP expression to trigger the behavior of
duplicate tag filtering based on input pin and control values.
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="DuplicateFiltering" type="Boolean" listen="true">
<description>The DuplicateFiltering measurement specifies the state of duplicate tag filtering
behavior. When the measurement value is true, the profile signals only the initial report of
each tag read during the filtering cycle. When the measurement value is updated to false, the
profile clears the cache of tags it has seen during the filtering cycle. While the measurement
value is false, the profile does not filter out duplicate tags or cache incoming tags. If an
LDAP expression is specified for the DuplicateFilteringExpression, a publication to write a
value to this measurement will result in an exception and will not update the measurement value.
</description>
<method/>
<value>
<boolean>false</boolean>
</value>
</measurement>
<measurement id="AggregationMaskSetting" type="String">
<description>The AggregationMaskSetting specifies the definition of tags that should be published
on the TagAggregationReport signal. A mask is specified by four comma-delimited parameters. The
first parameter of a tag mask is a place holder for future use, and the value is ignored. The
second parameter is the pointer value. It is the first bit location of the tag id against
which to compare the mask. The third parameter is the length. It specifies the number of
bits of the tag id to compare against the mask. The final parameter is the mask value. It
is the pattern against which the specified section of the tag id must match to pass the filter.
Multiple masks can be specified by separating them with a semicolon.
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="DataExtensions" type="Map">
<description>The DataExtensions measurement is a map of meta data to be associated with tag data.
Data extensions are applied to TagReport data as the signal is published. Data extensions
are applied to a TagAggregationReport at the beginning and end of the aggregation cycle. Writing
a value to this measurement merges the new map with the current DataExtensions value. Setting the
value of the measurement to an empty map clears the value.
</description>
<method/>
</measurement>
<measurement id="TagPosition" type="Map">
<description>The "TagPosition" measurement is a map of meta data to be associated with tag data.
"TagPosition" extensions are applied to "TagReport" data as the signal is published. "TagPosition"
are applied to a "TagAggregationReport" at the beginning and end of the aggregation cycle. Writing
a value to this measurement merges the new map with the current "TagPosition" value. Setting the
value of the measurement to an empty map clears the value.
</description>
<method/>
</measurement>
<measurement id="TagAntennaReportLevel" type="Integer">
<description><![CDATA[The TagAntennaReportLevel measurement specifies the level of tag antenna reporting.
The higher the value, the more tag antenna information is reported in
tag data on the "TagReport" and "TagAggregationReport" signals but the extra processing
is required which may effect performance.
]]>
</description>
<method/>
<value>
<int>5</int>
</value>
</measurement>
<measurement id="ReadOperations" type="String">
<description><![CDATA[
The ReadOperations specifies the definition of write operations block against the tag(s).
A write operation block can contain multiple write operations separated by the character ":".
A write operation is specified by parameters based on the operation, the parameters are separated by
the character ";".
The first parameter specifies the kind of read operation.
<ul >
</li>
<li>Operation Read: Defines the read operation on the specified memory bank on the tags.
Format: Read;MemoryBank;Pointer;WordCount;Password;OpCount;Timeout[;OperationId]
<ol>
<li>
Read: Reserved name for the read operation.
</li>
<li>
MemoryBank: An interger to specify the memory bank to read from.
</li>
<li>
Pointer: The first location (zero based) in the memory bank to start the read operation.
</li>
<li>
Password: The password for the read operation.
</li>
<li>
OpCount: An integer to specify the times this read operation will be executed, it will be unlimited if the value is 0.
</li>
<li>
Timeout: The timeout value (milliseconds) for the read operation, no timeout if the value is 0.
</li>
<li>
OperationId: The optional parameter to assign an id to the read operation.
</li>
</ol>
</li>
</ul>
]]>
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
<measurement id="ReadOperationsCount" type="Integer">
<description>The ReadOperationsCount measurement defines the number of read operations supported by this profile.
</description>
<configuration type="String">true</configuration>
<method/>
<value>
<int>0</int>
</value>
</measurement>
<measurement id="AntennaCount" type="Integer">
<description>The "AntennaCount" is maximum number of antennas supported by this reader.
</description>
<configuration type="String">true</configuration>
<method/>
<value>
<int>0</int>
</value>
</measurement>
<measurement id="SuperCacheMaximumSize" type="Integer">
<description>The "SuperCacheMaximumSize" is maximum number of tags supported by the super cache size.
</description>
<configuration type="String">true</configuration>
<method/>
<value>
<int>0</int>
</value>
</measurement>
<measurement id="ConfidenceScript" type="Integer">
<description>The "ConfidenceScript" is script to compute the "confidence" value.
</description>
<configuration type="String">true</configuration>
<method/>
</measurement>
</group>
</profile>
| Copyright (c) 2008 IBM. See license in Legal section. | 2008-07-29 | Rfid Inventory XML Reference 1.1.0 |