<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.transcends.co/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.transcends.co/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Matt</id>
		<title>RifidiWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.transcends.co/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Matt"/>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Special:Contributions/Matt"/>
		<updated>2026-07-20T10:58:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge</id>
		<title>How to Package Rifidi Edge</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge"/>
				<updated>2014-11-04T04:15:22Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
These are the prerequisites and steps for packaing the Rifidi Edge SDK, Deb, Server Only Zip and Windows Installer&lt;br /&gt;
&lt;br /&gt;
It is best to export the versions in this order for release:&lt;br /&gt;
1. Deb&lt;br /&gt;
2. Server only&lt;br /&gt;
3. Windows Installer&lt;br /&gt;
4. SDK&lt;br /&gt;
&lt;br /&gt;
You will need a windows and linux machine (or virtual machine) to export and test.  Dropbox is invaluable for this purpose, as it allows you to easily share the files across different machines.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Deb=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You need to be on linux to build the Deb.  &lt;br /&gt;
2. The docs, jars, bundles,info, rifidiserver.ini and rifidi-server linux executable must all be correct before release.  Check them all before and after you export the deb or you will need to export it again.  &lt;br /&gt;
3. bundles.info is very easy to get wrong.  Test the deb as soon as you export it for the first time, and make sure all the bundles you are expecting to show up show up with the &amp;quot;ss&amp;quot; command.  Debug and fix any that aren't working, fix the bundles.info in the SDK and rebuild.  &lt;br /&gt;
4. Make sure the version numbers are incremented in &amp;quot;SDK/version.txt&amp;quot;, &amp;quot;SDK/rifidi/usr/local/sbin/rifidi/version.txt&amp;quot;, and &amp;quot;SDK/rifidi/debian/DEBIAN/control&amp;quot;.  &lt;br /&gt;
5. Make sure all your changes are checked in, as building the deb requires disconnecting the SDK from SVN.  &lt;br /&gt;
==Steps==&lt;br /&gt;
1. Make sure you have a new, fully updated SDK in your workspace.  &lt;br /&gt;
2. Disconnect the SDK project from SVN.  Delete the SVN metadata.  If all the exported documents are way too big, you forgot to do this step.  &lt;br /&gt;
3. Navigate to the SDK folder in the terminal and type 'sh build.sh'.  DO NOT use sudo.   &lt;br /&gt;
4. The deb will show up in sdk/rifidi/debian/Debian-packages&lt;br /&gt;
5. Immediately move the deb out of the Debian-packages and install it via &amp;quot;sudo dpkg -i (deb)&amp;quot;.  Test it and make sure everything is correct.  If you need to change anything, you'll probably need to hook up the SDK to SVN again (or delete and re-download it from SVN).  &lt;br /&gt;
=Server Only Zip=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You'll need a debian package you are satisfied is working correctly to make the zip.  &lt;br /&gt;
==Steps==&lt;br /&gt;
1. Open the deb with an archive tool and extract the &amp;quot;rifidi&amp;quot; folder.  &lt;br /&gt;
2. Zip up the folder to a 7zip file with the name &amp;quot;RifidiEdge-XXX-server_only.7z&amp;quot;, where XXX is the version number, like &amp;quot;3.1.0&amp;quot;. &lt;br /&gt;
=Windows Installer=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You need to be on windows to make the windows installer.    &lt;br /&gt;
2. You need the &amp;quot;/install&amp;quot; folder from the edge SVN.  &lt;br /&gt;
3. You need Inno Setup.  &lt;br /&gt;
4. You'll need the &amp;quot;client&amp;quot; folder from a previous windows install, and the contents of the zip file in a folder called &amp;quot;server&amp;quot;.  Put them in the same folder, and modify the inno file in the install directory to point to that folder.  Also make sure the inno install file is pointed at the installer assets, and make sure the version in the inno install file is correct. &lt;br /&gt;
==Steps==&lt;br /&gt;
1. Once the inno file is pointed at the correct place, compile and build the Inno file from Inno Setup.  &lt;br /&gt;
2. Test the installer and make sure everything is working.  &lt;br /&gt;
=SDK=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You need the SDK folder from when you built the deb.  &lt;br /&gt;
2. Make sure the debian file itself isn't in the SDK, as it will make the SDK much too large.  &lt;br /&gt;
3. Make sure you don't have anything non-standard in the RifidiHome folder, and make sure the launch file and launch file VM args are correct.  &lt;br /&gt;
4. Make sure the SDK  is disconnected from SVN.  &lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
1. Make sure the SDK is working, then zip it up.  It is ready for release.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge</id>
		<title>How to Package Rifidi Edge</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge"/>
				<updated>2014-11-04T03:46:02Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
These are the prerequisites and steps for packaing the Rifidi Edge SDK, Deb, Server Only Zip and Windows Installer&lt;br /&gt;
&lt;br /&gt;
It is best to export the versions in this order for release:&lt;br /&gt;
1. Deb&lt;br /&gt;
2. Server only&lt;br /&gt;
3. Windows Installer&lt;br /&gt;
4. SDK&lt;br /&gt;
&lt;br /&gt;
You will need a windows and linux machine (or virtual machine) to export and test.  Dropbox is invaluable for this purpose, as it allows you to easily share the files across different machines.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Deb=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You need to be on linux to build the Deb.  &lt;br /&gt;
2. The docs, jars, bundles,info, rifidiserver.ini and rifidi-server linux executable must all be correct before release.  Check them all before and after you export the deb or you will need to export it again.  &lt;br /&gt;
3. bundles.info is very easy to get wrong.  Test the deb as soon as you export it for the first time, and make sure all the bundles you are expecting to show up show up with the &amp;quot;ss&amp;quot; command.  Debug and fix any that aren't working, fix the bundles.info in the SDK and rebuild.  &lt;br /&gt;
4. Make sure the version numbers are incremented in &amp;quot;SDK/version.txt&amp;quot;, &amp;quot;SDK/rifidi/usr/local/sbin/rifidi/version.txt&amp;quot;, and &amp;quot;SDK/rifidi/debian/DEBIAN/control&amp;quot;.  &lt;br /&gt;
5. Make sure all your changes are checked in, as building the deb requires disconnecting the SDK from SVN.  &lt;br /&gt;
==Steps==&lt;br /&gt;
1. Make sure you have a new, fully updated SDK in your workspace.  &lt;br /&gt;
2. Disconnect the SDK project from SVN.  Delete the SVN metadata.  If all the exported documents are way too big, you forgot to do this step.  &lt;br /&gt;
3. Navigate to the SDK folder in the terminal and type 'sh build.sh'.  DO NOT use sudo.   &lt;br /&gt;
4. The deb will show up in sdk/rifidi/debian/Debian-packages&lt;br /&gt;
5. Immediately move the deb out of the Debian-packages and install it via &amp;quot;sudo dpkg -i (deb)&amp;quot;.  Test it and make sure everything is correct.  If you need to change anything, you'll probably need to hook up the SDK to SVN again (or delete and re-download it from SVN).  &lt;br /&gt;
=Server Only Zip=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You'll need a debian package you are satisfied is working correctly to make the zip.  &lt;br /&gt;
==Steps==&lt;br /&gt;
1. Open the deb with an archive tool and extract the &amp;quot;rifidi&amp;quot; folder.  &lt;br /&gt;
2. Zip up the folder to a 7zip file with the name &amp;quot;RifidiEdge-XXX-server_only.7z&amp;quot;, where XXX is the version number, like &amp;quot;3.1.0&amp;quot;. &lt;br /&gt;
=Windows Installer=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You need to be on windows to make the windows installer.    &lt;br /&gt;
2. You need the installer &lt;br /&gt;
==Steps==&lt;br /&gt;
=SDK=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
All you need is a workspace with the SDK&lt;br /&gt;
==Steps==&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge</id>
		<title>How to Package Rifidi Edge</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge"/>
				<updated>2014-11-04T03:36:10Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
These are the prerequisites and steps for packaing the Rifidi Edge SDK, Deb, Server Only Zip and Windows Installer&lt;br /&gt;
&lt;br /&gt;
It is best to export the versions in this order for release:&lt;br /&gt;
1. Deb&lt;br /&gt;
2. Server only&lt;br /&gt;
3. Windows Installer&lt;br /&gt;
4. SDK&lt;br /&gt;
&lt;br /&gt;
You will need a windows and linux machine (or virtual machine) to export and test.  Dropbox is invaluable for this purpose, as it allows you to easily share the files across different machines.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Deb=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You need to be on linux to build the Deb.  &lt;br /&gt;
2. The docs, jars, bundles,info, rifidiserver.ini and rifidi-server linux executable must all be correct before release.  Check them all before and after you export the deb or you will need to export it again.  &lt;br /&gt;
3. bundles.info is very easy to get wrong.  Test the deb as soon as you export it for the first time, and make sure all the bundles you are expecting to show up show up with the &amp;quot;ss&amp;quot; command.  Debug and fix any that aren't working, fix the bundles.info in the SDK and rebuild.  &lt;br /&gt;
4. Make sure the version numbers are incremented in &amp;quot;SDK/version.txt&amp;quot;, &amp;quot;SDK/rifidi/usr/local/sbin/rifidi/version.txt&amp;quot;, and &amp;quot;SDK/rifidi/debian/DEBIAN/control&amp;quot;.  &lt;br /&gt;
5. Make sure all your changes are checked in, as building the deb requires disconnecting the SDK from SVN.  &lt;br /&gt;
==Steps==&lt;br /&gt;
1. Make sure you have a new, fully updated SDK in your workspace.  &lt;br /&gt;
2. Disconnect the SDK project from SVN.  Delete the SVN metadata.  If all the exported documents are way too big, you forgot to do this step.  &lt;br /&gt;
3. Navigate to the SDK folder in the terminal and type 'sh build.sh'.  DO NOT use sudo.   &lt;br /&gt;
4. The deb will show up in sdk/rifidi/debian/Debian-packages&lt;br /&gt;
5. Immediately move the deb out of the Debian-packages and install it via &amp;quot;sudo dpkg -i (deb)&amp;quot;.  Test it and make sure everything is correct.  &lt;br /&gt;
=Server Only Zip=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;br /&gt;
=Windows Installer=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;br /&gt;
=SDK=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
All you need is a workspace with the SDK&lt;br /&gt;
==Steps==&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge</id>
		<title>How to Package Rifidi Edge</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge"/>
				<updated>2014-11-04T03:08:00Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
These are the prerequisites and steps for packaing the Rifidi Edge SDK, Deb, Server Only Zip and Windows Installer&lt;br /&gt;
&lt;br /&gt;
It is best to export the versions in this order for release:&lt;br /&gt;
1. Deb&lt;br /&gt;
2. Server only&lt;br /&gt;
3. Windows Installer&lt;br /&gt;
4. SDK&lt;br /&gt;
&lt;br /&gt;
You will need a windows and linux machine (or virtual machine) to export and test.  Dropbox is invaluable for this purpose, as it allows you to easily share the files across different machines.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Deb=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
1. You need to be on linux to build the Deb.  &lt;br /&gt;
2. The docs, jars, bundles,info, rifidiserver.ini and rifidi-server linux executable must all be correct before release.  Check them all before and after you export the deb or you will need to export it again.  &lt;br /&gt;
3. bundles.info is very easy to get wrong.  Test the deb as soon as you export it for the first time, and make sure all the bundles you are expecting to show up show up with the &amp;quot;ss&amp;quot; command.  Debug and fix any that aren't working, fix the bundles.info in the SDK and rebuild.  &lt;br /&gt;
==Steps==&lt;br /&gt;
1. Make sure you have a new, fully updated SDK in your workspace.  &lt;br /&gt;
2. Disconnect the SDK project from SVN.  Delete the SVN metadata.  This is necessary to &lt;br /&gt;
=Server Only Zip=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;br /&gt;
=Windows Installer=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;br /&gt;
=SDK=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
All you need is a workspace with the SDK&lt;br /&gt;
==Steps==&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge</id>
		<title>How to Package Rifidi Edge</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/How_to_Package_Rifidi_Edge"/>
				<updated>2014-11-04T02:54:38Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Introduction=&lt;br /&gt;
These are the prerequisites and steps for packaing the Rifidi Edge SDK, Deb, Server Only Zip and Windows Installer&lt;br /&gt;
&lt;br /&gt;
=SDK=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;br /&gt;
=Deb=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;br /&gt;
=Server Only Zip=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;br /&gt;
=Windows Installer=&lt;br /&gt;
==Prerequisites==&lt;br /&gt;
==Steps==&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/LLRP_Tag_Encoding</id>
		<title>LLRP Tag Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/LLRP_Tag_Encoding"/>
				<updated>2014-10-26T17:33:33Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* LLRP Encode Single Shot Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LLRP Tag Encoding Options=&lt;br /&gt;
==LLRP Encode Command==&lt;br /&gt;
LLRP Encode Command is used to encode a new Tag with the following operations:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Order:  operationCode&lt;br /&gt;
 1 - LLRPAccessPasswordWrite&lt;br /&gt;
 2 - LLRPEPCWrite&lt;br /&gt;
 3 - LLRPKillPasswordWrite&lt;br /&gt;
 4 - LLRPEPCLock&lt;br /&gt;
 5 - LLRPKillPasswordLock&lt;br /&gt;
 6 - LLRPAccessPasswordLock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What are EPC, Kill Password, Access Password:&lt;br /&gt;
*EPC is the GEN2 EPC ID for a Tag&lt;br /&gt;
*Kill Password is used to set the password necessary to kill/destroy a tag for future use (by default there is no password (value(0))&lt;br /&gt;
*Access Password is used to perform tag writes such as EPC, Kill Password, Access Password (by default there is no password (value(0))&lt;br /&gt;
*C1G2Write and C1G2Lock are the LLRP Access Spec operations used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Command&lt;br /&gt;
llrpencode/{readerID}/{sessionID}/{tag}- Performs all LLRP Encoding operations for a New RFID Tag&lt;br /&gt;
&lt;br /&gt;
*Example&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666&lt;br /&gt;
*Prerequisites &lt;br /&gt;
# Only one tag can be present(This is Not a Bulk encoding operation)&lt;br /&gt;
# Must be a LLRP reader&lt;br /&gt;
# Must be a valid readerID and sessionID&lt;br /&gt;
# tag must be evenly divide by 4 (word in hex) and tag must be able to support length&lt;br /&gt;
# access password and kill password must be evenly divide by 4 (4 or 8 characters/1 or 2 words) or 0&lt;br /&gt;
# Only one encoding session per reader can be active at one time&lt;br /&gt;
&lt;br /&gt;
===Global Settings via Edge_Server_Configuration===&lt;br /&gt;
Global Properties below need to be set for LLRP encode based on ones requirements&lt;br /&gt;
*Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Note: These are set globally using the Rifidi Edge Configuration [[Edge_Server_Configuration]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.targetepc=000000000000000000000000 -   (Hex Value) Sets the EPC Tag Data to perform operation on (Must be even block of 4 charaters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.tagmask=000000000000000000000000 -  (Hex Value) Sets the Tag Mask to perform operation on (0 is wildcard match, F is Exact Match) (Must be even block of 4 characters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.timeout=5000 - Sets the duration of time to attempt operation (O is infinite until operation occurs, set in milliseconds)&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwd=0 - Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.oldaccesspwd=0 - Old Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0 Note: used when setting new access password &lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwd=0 - Kill Password (Hex Value) (8 Characters or value of 0)  - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwdlockprivilege=Read_Write     - If Set Performs a Kill Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock) - default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwdlockprivilege=Read_Write     - If Set Performs a Access Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.epclockprivilege=Read_Write     - If Set Performs a EPC Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  -  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker  --   mqtt broker url (if set, received response of encode operation is posted to this queue in asynchronous mode). Mqttqos and mqttclientid must be set too in order to post to queue&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos  -- Quality of service level for mqtt, example: 2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid  -- Client id to publish messages on queue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: These are optional Global variables for MQTT. If these are set then llrpencode command operations response to sent  asynchronously to a topic &lt;br /&gt;
*topic naming convention {readerId}/encode with result of encoding operations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos=2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker=tcp://localhost:1883&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid=llrpEncodeId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic&lt;br /&gt;
*Topic naming convention: {readerID}/encode &lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LLRP Encode Single Shot Commands==&lt;br /&gt;
These are used to perform single operations and override Global properties therefore all values must be supplied in request&lt;br /&gt;
Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Command&lt;br /&gt;
/llrpencode/{readerID}/{sessionID}/{tag}/{operationCode}/{properties}&lt;br /&gt;
&lt;br /&gt;
List of operationCodes&lt;br /&gt;
 LLRPEPCWrite&lt;br /&gt;
 LLRPKillPasswordWrite&lt;br /&gt;
 LLRPAccessPasswordWrite&lt;br /&gt;
 LLRPEPCLock&lt;br /&gt;
 LLRPKillPasswordLock&lt;br /&gt;
 LLRPAccessPasswordLock&lt;br /&gt;
*Example LLRPECWrite - Used to Write a EPC ID&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/000000000001111111111268/LLRPEPCWrite/accesspwd=12345678&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordWrite - Used to Write a Kill Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordWrite/accesspwd=12345678;killpwd=87654321&lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordWrite - Used to Write a Access Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPAccessPasswordWrite/oldaccesspwd=12345678;accesspwd=98765432&lt;br /&gt;
&lt;br /&gt;
*Example LLRPEPCLock - Set EPC Lock Priveledge&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPEPCLock/accesspwd=98765432;privilege=Read_Write&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordLock - Set Kill Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordLock/accesspwd=98765432;privilege=Read_Write &lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordLock - Set Access Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPAccessPasswordLock/accesspwd=98765432;privilege=Read_Write&lt;br /&gt;
===Single Shot Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic otherwise response is synchronous&lt;br /&gt;
*Topic naming convention: {readerID}/encode&lt;br /&gt;
&lt;br /&gt;
===Encode Single Shot Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/LLRP_Tag_Encoding</id>
		<title>LLRP Tag Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/LLRP_Tag_Encoding"/>
				<updated>2014-10-26T17:33:01Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* LLRP Encode Single Shot Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LLRP Tag Encoding Options=&lt;br /&gt;
==LLRP Encode Command==&lt;br /&gt;
LLRP Encode Command is used to encode a new Tag with the following operations:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Order:  operationCode&lt;br /&gt;
 1 - LLRPAccessPasswordWrite&lt;br /&gt;
 2 - LLRPEPCWrite&lt;br /&gt;
 3 - LLRPKillPasswordWrite&lt;br /&gt;
 4 - LLRPEPCLock&lt;br /&gt;
 5 - LLRPKillPasswordLock&lt;br /&gt;
 6 - LLRPAccessPasswordLock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What are EPC, Kill Password, Access Password:&lt;br /&gt;
*EPC is the GEN2 EPC ID for a Tag&lt;br /&gt;
*Kill Password is used to set the password necessary to kill/destroy a tag for future use (by default there is no password (value(0))&lt;br /&gt;
*Access Password is used to perform tag writes such as EPC, Kill Password, Access Password (by default there is no password (value(0))&lt;br /&gt;
*C1G2Write and C1G2Lock are the LLRP Access Spec operations used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Command&lt;br /&gt;
llrpencode/{readerID}/{sessionID}/{tag}- Performs all LLRP Encoding operations for a New RFID Tag&lt;br /&gt;
&lt;br /&gt;
*Example&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666&lt;br /&gt;
*Prerequisites &lt;br /&gt;
# Only one tag can be present(This is Not a Bulk encoding operation)&lt;br /&gt;
# Must be a LLRP reader&lt;br /&gt;
# Must be a valid readerID and sessionID&lt;br /&gt;
# tag must be evenly divide by 4 (word in hex) and tag must be able to support length&lt;br /&gt;
# access password and kill password must be evenly divide by 4 (4 or 8 characters/1 or 2 words) or 0&lt;br /&gt;
# Only one encoding session per reader can be active at one time&lt;br /&gt;
&lt;br /&gt;
===Global Settings via Edge_Server_Configuration===&lt;br /&gt;
Global Properties below need to be set for LLRP encode based on ones requirements&lt;br /&gt;
*Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Note: These are set globally using the Rifidi Edge Configuration [[Edge_Server_Configuration]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.targetepc=000000000000000000000000 -   (Hex Value) Sets the EPC Tag Data to perform operation on (Must be even block of 4 charaters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.tagmask=000000000000000000000000 -  (Hex Value) Sets the Tag Mask to perform operation on (0 is wildcard match, F is Exact Match) (Must be even block of 4 characters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.timeout=5000 - Sets the duration of time to attempt operation (O is infinite until operation occurs, set in milliseconds)&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwd=0 - Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.oldaccesspwd=0 - Old Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0 Note: used when setting new access password &lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwd=0 - Kill Password (Hex Value) (8 Characters or value of 0)  - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwdlockprivilege=Read_Write     - If Set Performs a Kill Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock) - default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwdlockprivilege=Read_Write     - If Set Performs a Access Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.epclockprivilege=Read_Write     - If Set Performs a EPC Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  -  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker  --   mqtt broker url (if set, received response of encode operation is posted to this queue in asynchronous mode). Mqttqos and mqttclientid must be set too in order to post to queue&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos  -- Quality of service level for mqtt, example: 2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid  -- Client id to publish messages on queue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: These are optional Global variables for MQTT. If these are set then llrpencode command operations response to sent  asynchronously to a topic &lt;br /&gt;
*topic naming convention {readerId}/encode with result of encoding operations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos=2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker=tcp://localhost:1883&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid=llrpEncodeId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic&lt;br /&gt;
*Topic naming convention: {readerID}/encode &lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LLRP Encode Single Shot Commands==&lt;br /&gt;
These are used to perform single operations and override Global properties therefore all values must be supplied in request&lt;br /&gt;
Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Command&lt;br /&gt;
/llrpencode/{readerID}/{sessionID}/{tag}/{operationCode}/{properties}&lt;br /&gt;
&lt;br /&gt;
List of operationCodes&lt;br /&gt;
 LLRPEPCWrite&lt;br /&gt;
 LLRPKillPasswordWrite&lt;br /&gt;
 LLRPAccessPasswordWrite&lt;br /&gt;
 LLRPEPCLock&lt;br /&gt;
 LLRPKillPasswordLock&lt;br /&gt;
 LLRPAccessPasswordLock&lt;br /&gt;
*Example LLRPECWrite - Used to Write a EPC ID&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/000000000001111111111268/LLRPEPCWrite/accesspwd=12345678&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordWrite - Used to Write a Kill Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordWrite/accesspwd=12345678;killpwd=87654321&lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordWrite - Used to Write a Access Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPAccessPasswordWrite/oldaccesspwd=12345678;accesspwd=98765432&lt;br /&gt;
&lt;br /&gt;
*Example LLRPEPCLock - Set EPC Lock Priveledge&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPEPCLock/accesspwd=98765432;epclockprivilege=Read_Write&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordLock - Set Kill Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordLock/accesspwd=98765432;privilege=Read_Write &lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordLock - Set Access Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPAccessPasswordLock/accesspwd=98765432;privilege=Read_Write&lt;br /&gt;
===Single Shot Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic otherwise response is synchronous&lt;br /&gt;
*Topic naming convention: {readerID}/encode&lt;br /&gt;
&lt;br /&gt;
===Encode Single Shot Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/LLRP_Tag_Encoding</id>
		<title>LLRP Tag Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/LLRP_Tag_Encoding"/>
				<updated>2014-10-26T17:32:08Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* LLRP Encode Single Shot Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LLRP Tag Encoding Options=&lt;br /&gt;
==LLRP Encode Command==&lt;br /&gt;
LLRP Encode Command is used to encode a new Tag with the following operations:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Order:  operationCode&lt;br /&gt;
 1 - LLRPAccessPasswordWrite&lt;br /&gt;
 2 - LLRPEPCWrite&lt;br /&gt;
 3 - LLRPKillPasswordWrite&lt;br /&gt;
 4 - LLRPEPCLock&lt;br /&gt;
 5 - LLRPKillPasswordLock&lt;br /&gt;
 6 - LLRPAccessPasswordLock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What are EPC, Kill Password, Access Password:&lt;br /&gt;
*EPC is the GEN2 EPC ID for a Tag&lt;br /&gt;
*Kill Password is used to set the password necessary to kill/destroy a tag for future use (by default there is no password (value(0))&lt;br /&gt;
*Access Password is used to perform tag writes such as EPC, Kill Password, Access Password (by default there is no password (value(0))&lt;br /&gt;
*C1G2Write and C1G2Lock are the LLRP Access Spec operations used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Command&lt;br /&gt;
llrpencode/{readerID}/{sessionID}/{tag}- Performs all LLRP Encoding operations for a New RFID Tag&lt;br /&gt;
&lt;br /&gt;
*Example&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666&lt;br /&gt;
*Prerequisites &lt;br /&gt;
# Only one tag can be present(This is Not a Bulk encoding operation)&lt;br /&gt;
# Must be a LLRP reader&lt;br /&gt;
# Must be a valid readerID and sessionID&lt;br /&gt;
# tag must be evenly divide by 4 (word in hex) and tag must be able to support length&lt;br /&gt;
# access password and kill password must be evenly divide by 4 (4 or 8 characters/1 or 2 words) or 0&lt;br /&gt;
# Only one encoding session per reader can be active at one time&lt;br /&gt;
&lt;br /&gt;
===Global Settings via Edge_Server_Configuration===&lt;br /&gt;
Global Properties below need to be set for LLRP encode based on ones requirements&lt;br /&gt;
*Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Note: These are set globally using the Rifidi Edge Configuration [[Edge_Server_Configuration]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.targetepc=000000000000000000000000 -   (Hex Value) Sets the EPC Tag Data to perform operation on (Must be even block of 4 charaters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.tagmask=000000000000000000000000 -  (Hex Value) Sets the Tag Mask to perform operation on (0 is wildcard match, F is Exact Match) (Must be even block of 4 characters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.timeout=5000 - Sets the duration of time to attempt operation (O is infinite until operation occurs, set in milliseconds)&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwd=0 - Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.oldaccesspwd=0 - Old Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0 Note: used when setting new access password &lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwd=0 - Kill Password (Hex Value) (8 Characters or value of 0)  - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwdlockprivilege=Read_Write     - If Set Performs a Kill Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock) - default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwdlockprivilege=Read_Write     - If Set Performs a Access Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.epclockprivilege=Read_Write     - If Set Performs a EPC Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  -  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker  --   mqtt broker url (if set, received response of encode operation is posted to this queue in asynchronous mode). Mqttqos and mqttclientid must be set too in order to post to queue&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos  -- Quality of service level for mqtt, example: 2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid  -- Client id to publish messages on queue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: These are optional Global variables for MQTT. If these are set then llrpencode command operations response to sent  asynchronously to a topic &lt;br /&gt;
*topic naming convention {readerId}/encode with result of encoding operations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos=2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker=tcp://localhost:1883&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid=llrpEncodeId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic&lt;br /&gt;
*Topic naming convention: {readerID}/encode &lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LLRP Encode Single Shot Commands==&lt;br /&gt;
These are used to perform single operations and override Global properties therefore all values must be supplied in request&lt;br /&gt;
Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Command&lt;br /&gt;
/llrpencode/{readerID}/{sessionID}/{tag}/{operationCode}/{properties}&lt;br /&gt;
&lt;br /&gt;
List of operationCodes&lt;br /&gt;
 LLRPEPCWrite&lt;br /&gt;
 LLRPKillPasswordWrite&lt;br /&gt;
 LLRPAccessPasswordWrite&lt;br /&gt;
 LLRPEPCLock&lt;br /&gt;
 LLRPKillPasswordLock&lt;br /&gt;
 LLRPAccessPasswordLock&lt;br /&gt;
*Example LLRPECWrite - Used to Write a EPC ID&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/000000000001111111111268/LLRPEPCWrite/accesspwd=12345678&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordWrite - Used to Write a Kill Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordWrite/accesspwd=12345678;killpwd=87654321&lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordWrite - Used to Write a Access Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPAccessPasswordWrite/oldaccesspwd=12345678;accesspwd=98765432&lt;br /&gt;
&lt;br /&gt;
*Example LLRPEPCLock - Set EPC Lock Priveledge&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPEPCLock/accesspwd=98765432;epclockprivilege=Read_Write&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordLock - Set Kill Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordLock/accesspwd=98765432;killpwdlockprivilege=Read_Write &lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordLock - Set Access Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordLock/accesspwd=98765432;privilege=Read_Write&lt;br /&gt;
===Single Shot Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic otherwise response is synchronous&lt;br /&gt;
*Topic naming convention: {readerID}/encode&lt;br /&gt;
&lt;br /&gt;
===Encode Single Shot Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/LLRP_Tag_Encoding</id>
		<title>LLRP Tag Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/LLRP_Tag_Encoding"/>
				<updated>2014-10-26T17:23:39Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* LLRP Encode Single Shot Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LLRP Tag Encoding Options=&lt;br /&gt;
==LLRP Encode Command==&lt;br /&gt;
LLRP Encode Command is used to encode a new Tag with the following operations:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Order:  operationCode&lt;br /&gt;
 1 - LLRPAccessPasswordWrite&lt;br /&gt;
 2 - LLRPEPCWrite&lt;br /&gt;
 3 - LLRPKillPasswordWrite&lt;br /&gt;
 4 - LLRPEPCLock&lt;br /&gt;
 5 - LLRPKillPasswordLock&lt;br /&gt;
 6 - LLRPAccessPasswordLock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What are EPC, Kill Password, Access Password:&lt;br /&gt;
*EPC is the GEN2 EPC ID for a Tag&lt;br /&gt;
*Kill Password is used to set the password necessary to kill/destroy a tag for future use (by default there is no password (value(0))&lt;br /&gt;
*Access Password is used to perform tag writes such as EPC, Kill Password, Access Password (by default there is no password (value(0))&lt;br /&gt;
*C1G2Write and C1G2Lock are the LLRP Access Spec operations used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Command&lt;br /&gt;
llrpencode/{readerID}/{sessionID}/{tag}- Performs all LLRP Encoding operations for a New RFID Tag&lt;br /&gt;
&lt;br /&gt;
*Example&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666&lt;br /&gt;
*Prerequisites &lt;br /&gt;
# Only one tag can be present(This is Not a Bulk encoding operation)&lt;br /&gt;
# Must be a LLRP reader&lt;br /&gt;
# Must be a valid readerID and sessionID&lt;br /&gt;
# tag must be evenly divide by 4 (word in hex) and tag must be able to support length&lt;br /&gt;
# access password and kill password must be evenly divide by 4 (4 or 8 characters/1 or 2 words) or 0&lt;br /&gt;
# Only one encoding session per reader can be active at one time&lt;br /&gt;
&lt;br /&gt;
===Global Settings via Edge_Server_Configuration===&lt;br /&gt;
Global Properties below need to be set for LLRP encode based on ones requirements&lt;br /&gt;
*Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Note: These are set globally using the Rifidi Edge Configuration [[Edge_Server_Configuration]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.targetepc=000000000000000000000000 -   (Hex Value) Sets the EPC Tag Data to perform operation on (Must be even block of 4 charaters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.tagmask=000000000000000000000000 -  (Hex Value) Sets the Tag Mask to perform operation on (0 is wildcard match, F is Exact Match) (Must be even block of 4 characters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.timeout=5000 - Sets the duration of time to attempt operation (O is infinite until operation occurs, set in milliseconds)&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwd=0 - Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.oldaccesspwd=0 - Old Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0 Note: used when setting new access password &lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwd=0 - Kill Password (Hex Value) (8 Characters or value of 0)  - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwdlockprivilege=Read_Write     - If Set Performs a Kill Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock) - default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwdlockprivilege=Read_Write     - If Set Performs a Access Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.epclockprivilege=Read_Write     - If Set Performs a EPC Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  -  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker  --   mqtt broker url (if set, received response of encode operation is posted to this queue in asynchronous mode). Mqttqos and mqttclientid must be set too in order to post to queue&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos  -- Quality of service level for mqtt, example: 2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid  -- Client id to publish messages on queue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: These are optional Global variables for MQTT. If these are set then llrpencode command operations response to sent  asynchronously to a topic &lt;br /&gt;
*topic naming convention {readerId}/encode with result of encoding operations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos=2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker=tcp://localhost:1883&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid=llrpEncodeId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic&lt;br /&gt;
*Topic naming convention: {readerID}/encode &lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LLRP Encode Single Shot Commands==&lt;br /&gt;
These are used to perform single operations and override Global properties therefore all values must be supplied in request&lt;br /&gt;
Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Command&lt;br /&gt;
/llrpencode/{readerID}/{sessionID}/{tag}/{operationCode}/{properties}&lt;br /&gt;
&lt;br /&gt;
List of operationCodes&lt;br /&gt;
 LLRPEPCWrite&lt;br /&gt;
 LLRPKillPasswordWrite&lt;br /&gt;
 LLRPAccessPasswordWrite&lt;br /&gt;
 LLRPEPCLock&lt;br /&gt;
 LLRPKillPasswordLock&lt;br /&gt;
 LLRPAccessPasswordLock&lt;br /&gt;
*Example LLRPECWrite - Used to Write a EPC ID&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/000000000001111111111268/LLRPEPCWrite/accesspwd=12345678&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordWrite - Used to Write a Kill Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordWrite/accesspwd=12345678;killpwd=87654321&lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordWrite - Used to Write a Access Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPAccessPasswordWrite/oldaccesspwd=12345678;accesspwd=98765432&lt;br /&gt;
&lt;br /&gt;
*Example LLRPEPCLock - Set EPC Lock Priveledge&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPEPCLock/accesspwd=98765432;epclockprivilege=Read_Write&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordLock - Set Kill Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordLock/accesspwd=98765432;killpwdlockprivilege=Read_Write &lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordLock - Set Access Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666/LLRPKillPasswordLock/accesspwd=98765432;accesspwdlockprivilege=Read_Write&lt;br /&gt;
===Single Shot Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic otherwise response is synchronous&lt;br /&gt;
*Topic naming convention: {readerID}/encode&lt;br /&gt;
&lt;br /&gt;
===Encode Single Shot Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/LLRP_Tag_Encoding</id>
		<title>LLRP Tag Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/LLRP_Tag_Encoding"/>
				<updated>2014-10-26T17:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* LLRP Encode Single Shot Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LLRP Tag Encoding Options=&lt;br /&gt;
==LLRP Encode Command==&lt;br /&gt;
LLRP Encode Command is used to encode a new Tag with the following operations:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Order:  operationCode&lt;br /&gt;
 1 - LLRPAccessPasswordWrite&lt;br /&gt;
 2 - LLRPEPCWrite&lt;br /&gt;
 3 - LLRPKillPasswordWrite&lt;br /&gt;
 4 - LLRPEPCLock&lt;br /&gt;
 5 - LLRPKillPasswordLock&lt;br /&gt;
 6 - LLRPAccessPasswordLock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What are EPC, Kill Password, Access Password:&lt;br /&gt;
*EPC is the GEN2 EPC ID for a Tag&lt;br /&gt;
*Kill Password is used to set the password necessary to kill/destroy a tag for future use (by default there is no password (value(0))&lt;br /&gt;
*Access Password is used to perform tag writes such as EPC, Kill Password, Access Password (by default there is no password (value(0))&lt;br /&gt;
*C1G2Write and C1G2Lock are the LLRP Access Spec operations used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Command&lt;br /&gt;
llrpencode/{readerID}/{sessionID}/{tag}- Performs all LLRP Encoding operations for a New RFID Tag&lt;br /&gt;
&lt;br /&gt;
*Example&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666&lt;br /&gt;
*Prerequisites &lt;br /&gt;
# Only one tag can be present(This is Not a Bulk encoding operation)&lt;br /&gt;
# Must be a LLRP reader&lt;br /&gt;
# Must be a valid readerID and sessionID&lt;br /&gt;
# tag must be evenly divide by 4 (word in hex) and tag must be able to support length&lt;br /&gt;
# access password and kill password must be evenly divide by 4 (4 or 8 characters/1 or 2 words) or 0&lt;br /&gt;
# Only one encoding session per reader can be active at one time&lt;br /&gt;
&lt;br /&gt;
===Global Settings via Edge_Server_Configuration===&lt;br /&gt;
Global Properties below need to be set for LLRP encode based on ones requirements&lt;br /&gt;
*Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Note: These are set globally using the Rifidi Edge Configuration [[Edge_Server_Configuration]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.targetepc=000000000000000000000000 -   (Hex Value) Sets the EPC Tag Data to perform operation on (Must be even block of 4 charaters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.tagmask=000000000000000000000000 -  (Hex Value) Sets the Tag Mask to perform operation on (0 is wildcard match, F is Exact Match) (Must be even block of 4 characters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.timeout=5000 - Sets the duration of time to attempt operation (O is infinite until operation occurs, set in milliseconds)&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwd=0 - Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.oldaccesspwd=0 - Old Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0 Note: used when setting new access password &lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwd=0 - Kill Password (Hex Value) (8 Characters or value of 0)  - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwdlockprivilege=Read_Write     - If Set Performs a Kill Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock) - default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwdlockprivilege=Read_Write     - If Set Performs a Access Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.epclockprivilege=Read_Write     - If Set Performs a EPC Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  -  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker  --   mqtt broker url (if set, received response of encode operation is posted to this queue in asynchronous mode). Mqttqos and mqttclientid must be set too in order to post to queue&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos  -- Quality of service level for mqtt, example: 2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid  -- Client id to publish messages on queue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: These are optional Global variables for MQTT. If these are set then llrpencode command operations response to sent  asynchronously to a topic &lt;br /&gt;
*topic naming convention {readerId}/encode with result of encoding operations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos=2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker=tcp://localhost:1883&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid=llrpEncodeId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic&lt;br /&gt;
*Topic naming convention: {readerID}/encode &lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LLRP Encode Single Shot Commands==&lt;br /&gt;
These are used to perform single operations and override Global properties therefore all values must be supplied in request&lt;br /&gt;
Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Command&lt;br /&gt;
/llrpencode/{readerID}/{sessionID}/{tag}/{operationCode}/{properties}&lt;br /&gt;
&lt;br /&gt;
List of operationCodes&lt;br /&gt;
 LLRPEPCWrite&lt;br /&gt;
 LLRPKillPasswordWrite&lt;br /&gt;
 LLRPAccessPasswordWrite&lt;br /&gt;
 LLRPEPCLock&lt;br /&gt;
 LLRPKillPasswordLock&lt;br /&gt;
 LLRPAccessPasswordLock&lt;br /&gt;
*Example LLRPECWrite - Used to Write a EPC ID&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/000000000001111111111268/LLRPEPCWrite/accesspwd=12345678&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordWrite - Used to Write a Kill Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordWrite/accesspwd=12345678;killpwd=87654321&lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordWrite - Used to Write a Access Password&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/00001111222233334444555566667777/LLRPAccessPasswordWrite/oldaccesspwd=12345678;accesspwd=98765432&lt;br /&gt;
&lt;br /&gt;
*Example LLRPEPCLock - Set EPC Lock Priveledge&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/00001111222233334444555566667777/LLRPEPCLock/accesspwd=98765432;epclockprivilege=Read_Write&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordLock - Set Kill Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordLock/accesspwd=98765432;killpwdlockprivilege=Read_Write &lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordLock - Set Access Password Lock Privilege&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordLock/accesspwd=98765432;accesspwdlockprivilege=Read_Write&lt;br /&gt;
===Single Shot Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic otherwise response is synchronous&lt;br /&gt;
*Topic naming convention: {readerID}/encode&lt;br /&gt;
&lt;br /&gt;
===Encode Single Shot Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/LLRP_Tag_Encoding</id>
		<title>LLRP Tag Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/LLRP_Tag_Encoding"/>
				<updated>2014-10-26T17:20:51Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* LLRP Encode Command */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LLRP Tag Encoding Options=&lt;br /&gt;
==LLRP Encode Command==&lt;br /&gt;
LLRP Encode Command is used to encode a new Tag with the following operations:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Order:  operationCode&lt;br /&gt;
 1 - LLRPAccessPasswordWrite&lt;br /&gt;
 2 - LLRPEPCWrite&lt;br /&gt;
 3 - LLRPKillPasswordWrite&lt;br /&gt;
 4 - LLRPEPCLock&lt;br /&gt;
 5 - LLRPKillPasswordLock&lt;br /&gt;
 6 - LLRPAccessPasswordLock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What are EPC, Kill Password, Access Password:&lt;br /&gt;
*EPC is the GEN2 EPC ID for a Tag&lt;br /&gt;
*Kill Password is used to set the password necessary to kill/destroy a tag for future use (by default there is no password (value(0))&lt;br /&gt;
*Access Password is used to perform tag writes such as EPC, Kill Password, Access Password (by default there is no password (value(0))&lt;br /&gt;
*C1G2Write and C1G2Lock are the LLRP Access Spec operations used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Command&lt;br /&gt;
llrpencode/{readerID}/{sessionID}/{tag}- Performs all LLRP Encoding operations for a New RFID Tag&lt;br /&gt;
&lt;br /&gt;
*Example&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/111122223333444455556666&lt;br /&gt;
*Prerequisites &lt;br /&gt;
# Only one tag can be present(This is Not a Bulk encoding operation)&lt;br /&gt;
# Must be a LLRP reader&lt;br /&gt;
# Must be a valid readerID and sessionID&lt;br /&gt;
# tag must be evenly divide by 4 (word in hex) and tag must be able to support length&lt;br /&gt;
# access password and kill password must be evenly divide by 4 (4 or 8 characters/1 or 2 words) or 0&lt;br /&gt;
# Only one encoding session per reader can be active at one time&lt;br /&gt;
&lt;br /&gt;
===Global Settings via Edge_Server_Configuration===&lt;br /&gt;
Global Properties below need to be set for LLRP encode based on ones requirements&lt;br /&gt;
*Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Note: These are set globally using the Rifidi Edge Configuration [[Edge_Server_Configuration]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.targetepc=000000000000000000000000 -   (Hex Value) Sets the EPC Tag Data to perform operation on (Must be even block of 4 charaters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.tagmask=000000000000000000000000 -  (Hex Value) Sets the Tag Mask to perform operation on (0 is wildcard match, F is Exact Match) (Must be even block of 4 characters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.timeout=5000 - Sets the duration of time to attempt operation (O is infinite until operation occurs, set in milliseconds)&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwd=0 - Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.oldaccesspwd=0 - Old Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0 Note: used when setting new access password &lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwd=0 - Kill Password (Hex Value) (8 Characters or value of 0)  - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwdlockprivilege=Read_Write     - If Set Performs a Kill Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock) - default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwdlockprivilege=Read_Write     - If Set Performs a Access Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.epclockprivilege=Read_Write     - If Set Performs a EPC Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  -  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker  --   mqtt broker url (if set, received response of encode operation is posted to this queue in asynchronous mode). Mqttqos and mqttclientid must be set too in order to post to queue&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos  -- Quality of service level for mqtt, example: 2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid  -- Client id to publish messages on queue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: These are optional Global variables for MQTT. If these are set then llrpencode command operations response to sent  asynchronously to a topic &lt;br /&gt;
*topic naming convention {readerId}/encode with result of encoding operations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos=2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker=tcp://localhost:1883&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid=llrpEncodeId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic&lt;br /&gt;
*Topic naming convention: {readerID}/encode &lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LLRP Encode Single Shot Commands==&lt;br /&gt;
These are used to perform single operations and override Global properties therefore all values must be supplied in request&lt;br /&gt;
Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Command&lt;br /&gt;
/llrpencode/{readerID}/{sessionID}/{tag}/{operationCode}/{properties}&lt;br /&gt;
&lt;br /&gt;
List of operationCodes&lt;br /&gt;
 LLRPEPCWrite&lt;br /&gt;
 LLRPKillPasswordWrite&lt;br /&gt;
 LLRPAccessPasswordWrite&lt;br /&gt;
 LLRPEPCLock&lt;br /&gt;
 LLRPKillPasswordLock&lt;br /&gt;
 LLRPAccessPasswordLock&lt;br /&gt;
*Example LLRPECWrite - Used to Write a EPC ID&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/000000000001111111111268/LLRPEPCWrite/accesspwd=12345678&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordWrite - Used to Write a Kill Password&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordWrite/accesspwd=12345678;killpwd=87654321&lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordWrite - Used to Write a Access Password&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPAccessPasswordWrite/oldaccesspwd=12345678;accesspwd=98765432&lt;br /&gt;
&lt;br /&gt;
*Example LLRPEPCLock - Set EPC Lock Priveledge&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPEPCLock/accesspwd=98765432;epclockprivilege=Read_Write&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordLock - Set Kill Password Lock Privilege&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordLock/accesspwd=98765432;killpwdlockprivilege=Read_Write &lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordLock - Set Access Password Lock Privilege&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordLock/accesspwd=98765432;accesspwdlockprivilege=Read_Write&lt;br /&gt;
===Single Shot Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic otherwise response is synchronous&lt;br /&gt;
*Topic naming convention: {readerID}/encode&lt;br /&gt;
&lt;br /&gt;
===Encode Single Shot Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/LLRP_Tag_Encoding</id>
		<title>LLRP Tag Encoding</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/LLRP_Tag_Encoding"/>
				<updated>2014-10-26T17:20:26Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* LLRP Encode Command */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=LLRP Tag Encoding Options=&lt;br /&gt;
==LLRP Encode Command==&lt;br /&gt;
LLRP Encode Command is used to encode a new Tag with the following operations:  &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Order:  operationCode&lt;br /&gt;
 1 - LLRPAccessPasswordWrite&lt;br /&gt;
 2 - LLRPEPCWrite&lt;br /&gt;
 3 - LLRPKillPasswordWrite&lt;br /&gt;
 4 - LLRPEPCLock&lt;br /&gt;
 5 - LLRPKillPasswordLock&lt;br /&gt;
 6 - LLRPAccessPasswordLock&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What are EPC, Kill Password, Access Password:&lt;br /&gt;
*EPC is the GEN2 EPC ID for a Tag&lt;br /&gt;
*Kill Password is used to set the password necessary to kill/destroy a tag for future use (by default there is no password (value(0))&lt;br /&gt;
*Access Password is used to perform tag writes such as EPC, Kill Password, Access Password (by default there is no password (value(0))&lt;br /&gt;
*C1G2Write and C1G2Lock are the LLRP Access Spec operations used&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Command&lt;br /&gt;
llrpencode/{readerID}/{sessionID}/{tag}- Performs all LLRP Encoding operations for a New RFID Tag&lt;br /&gt;
&lt;br /&gt;
*Example&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/00001111222233334444555566667777&lt;br /&gt;
*Prerequisites &lt;br /&gt;
# Only one tag can be present(This is Not a Bulk encoding operation)&lt;br /&gt;
# Must be a LLRP reader&lt;br /&gt;
# Must be a valid readerID and sessionID&lt;br /&gt;
# tag must be evenly divide by 4 (word in hex) and tag must be able to support length&lt;br /&gt;
# access password and kill password must be evenly divide by 4 (4 or 8 characters/1 or 2 words) or 0&lt;br /&gt;
# Only one encoding session per reader can be active at one time&lt;br /&gt;
&lt;br /&gt;
===Global Settings via Edge_Server_Configuration===&lt;br /&gt;
Global Properties below need to be set for LLRP encode based on ones requirements&lt;br /&gt;
*Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Note: These are set globally using the Rifidi Edge Configuration [[Edge_Server_Configuration]]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.targetepc=000000000000000000000000 -   (Hex Value) Sets the EPC Tag Data to perform operation on (Must be even block of 4 charaters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.tagmask=000000000000000000000000 -  (Hex Value) Sets the Tag Mask to perform operation on (0 is wildcard match, F is Exact Match) (Must be even block of 4 characters and size depends on Tag - typical is 24 characters) - default if not set is 000000000000000000000000&lt;br /&gt;
-Dorg.rifidi.llrp.encode.timeout=5000 - Sets the duration of time to attempt operation (O is infinite until operation occurs, set in milliseconds)&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwd=0 - Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.oldaccesspwd=0 - Old Access Password (Hex Value) (8 Characters or value of 0) - default if not set is 0 Note: used when setting new access password &lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwd=0 - Kill Password (Hex Value) (8 Characters or value of 0)  - default if not set is 0&lt;br /&gt;
-Dorg.rifidi.llrp.encode.killpwdlockprivilege=Read_Write     - If Set Performs a Kill Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock) - default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.accesspwdlockprivilege=Read_Write     - If Set Performs a Access Password Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.epclockprivilege=Read_Write     - If Set Performs a EPC Lock Operation (values can be Read_Write (which Locks), Perma_Lock, Unlock)  -  default if not set is Read_Write&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker  --   mqtt broker url (if set, received response of encode operation is posted to this queue in asynchronous mode). Mqttqos and mqttclientid must be set too in order to post to queue&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos  -- Quality of service level for mqtt, example: 2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid  -- Client id to publish messages on queue&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: These are optional Global variables for MQTT. If these are set then llrpencode command operations response to sent  asynchronously to a topic &lt;br /&gt;
*topic naming convention {readerId}/encode with result of encoding operations&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttqos=2&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttbroker=tcp://localhost:1883&lt;br /&gt;
-Dorg.rifidi.llrp.encode.mqttclientid=llrpEncodeId&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic&lt;br /&gt;
*Topic naming convention: {readerID}/encode &lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPasswordWrite:Sucess&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPKillPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPAccessPaswordLock: Success&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==LLRP Encode Single Shot Commands==&lt;br /&gt;
These are used to perform single operations and override Global properties therefore all values must be supplied in request&lt;br /&gt;
Note: All MQTT (if set), timeout tagmask and epctarget always come form Global Variables&lt;br /&gt;
*Command&lt;br /&gt;
/llrpencode/{readerID}/{sessionID}/{tag}/{operationCode}/{properties}&lt;br /&gt;
&lt;br /&gt;
List of operationCodes&lt;br /&gt;
 LLRPEPCWrite&lt;br /&gt;
 LLRPKillPasswordWrite&lt;br /&gt;
 LLRPAccessPasswordWrite&lt;br /&gt;
 LLRPEPCLock&lt;br /&gt;
 LLRPKillPasswordLock&lt;br /&gt;
 LLRPAccessPasswordLock&lt;br /&gt;
*Example LLRPECWrite - Used to Write a EPC ID&lt;br /&gt;
http://localhost:8111/llrpencode/LLRP_1/1/000000000001111111111268/LLRPEPCWrite/accesspwd=12345678&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordWrite - Used to Write a Kill Password&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordWrite/accesspwd=12345678;killpwd=87654321&lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordWrite - Used to Write a Access Password&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPAccessPasswordWrite/oldaccesspwd=12345678;accesspwd=98765432&lt;br /&gt;
&lt;br /&gt;
*Example LLRPEPCLock - Set EPC Lock Priveledge&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPEPCLock/accesspwd=98765432;epclockprivilege=Read_Write&lt;br /&gt;
&lt;br /&gt;
*Example LLRPKillPasswordLock - Set Kill Password Lock Privilege&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordLock/accesspwd=98765432;killpwdlockprivilege=Read_Write &lt;br /&gt;
&lt;br /&gt;
*Example LLRPAccessPasswordLock - Set Access Password Lock Privilege&lt;br /&gt;
http://localhost:8111/LLRP_1/1/00001111222233334444555566667777/LLRPKillPasswordLock/accesspwd=98765432;accesspwdlockprivilege=Read_Write&lt;br /&gt;
===Single Shot Encode Operations Response===&lt;br /&gt;
If MQTT Variables defined Globally (above) then operations result response will be sent to MQTT topic otherwise response is synchronous&lt;br /&gt;
*Topic naming convention: {readerID}/encode&lt;br /&gt;
&lt;br /&gt;
===Encode Single Shot Response===&lt;br /&gt;
&lt;br /&gt;
Response: Success&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Response: Fail&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;response&amp;gt;&lt;br /&gt;
   &amp;lt;message&amp;gt;Fail&amp;lt;/message&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt; LLRP Message Returned goes here such as Tag mask and Tag data not matching - such&amp;lt;/Description&amp;gt;&lt;br /&gt;
&amp;lt;/response&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Some types of Fail responses could be&lt;br /&gt;
# More than one tag&lt;br /&gt;
# Not a LLLRP reader&lt;br /&gt;
# Not a valid session&lt;br /&gt;
# Invalid access spec request&lt;br /&gt;
# Encoding session already active&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Success Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Success&amp;lt;/Status&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Fail Message&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;Fail&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;operationList&amp;gt;&lt;br /&gt;
     &amp;lt;operation&amp;gt;LLRPEPCLock:No_Response_From_Tag&amp;lt;/operation&amp;gt;&lt;br /&gt;
&amp;lt;/operationList&amp;gt;&lt;br /&gt;
&amp;lt;/encodeMessage&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Full List of Return Failure Codes:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Insufficient_Power &lt;br /&gt;
           &lt;br /&gt;
No_Response_From_Tag &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Reader_Error &lt;br /&gt;
           &lt;br /&gt;
Nonspecific_Tag_Error &lt;br /&gt;
 &lt;br /&gt;
Tag_Memory_Locked_Error &lt;br /&gt;
           &lt;br /&gt;
Tag_Memory_Overrun_Error &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Rifidi:Source_Code</id>
		<title>Rifidi:Source Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Rifidi:Source_Code"/>
				<updated>2014-08-14T23:05:24Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* Add Repository */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:developerDoc]]&lt;br /&gt;
This page explains how to download and run the source code for the Rifidi products.  However, please keep in mind that the code in this repository is not guaranteed to be stable. If you are interested in our latest stable release, visit our sourceforge page: http://sourceforge.net/projects/rifidi/.&lt;br /&gt;
=Quick Instructions=&lt;br /&gt;
The following are the basic steps needed to begin running Rifidi from source.  If you have trouble or need more explanation, please see the more detailed instructions on this page.&lt;br /&gt;
# Download the Eclipse for plugin developers (3.5 is what we are using)&lt;br /&gt;
# Install the subclipse plugin&lt;br /&gt;
# Add this svn to the list of repositories: emulator, prototyper - https://transcends.svn.cloudforge.com/emulator, edge, workbench - https://transcends.svn.cloudforge.com/rifidi&lt;br /&gt;
# Check out the following projects from rifidi/trunk: org.rifidi.binary, org.rifidi.emulator.target, org.rifidi.ui.ide&lt;br /&gt;
# Open up the target file in org.rifidi.emulator.target and click the button that says &amp;quot;set as target platform&amp;quot;&lt;br /&gt;
# Open up the .product file in org.rifidi.ui.ide and click &amp;quot;launch an eclipse application&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Rifidi Source Code=&lt;br /&gt;
For those who need to see the source code for the Rifidi products, you will have to check out the code from svn.  This section explains how to check out and run the code from source.&lt;br /&gt;
==Organization==&lt;br /&gt;
In general the code for Rifidi is organized into Eclipse plugins or bundles.  Eclipse handles the loading and execution of the plugins.  For more detailed information about how our source code is organized, please see [[Development and Release Process#Concepts]].&lt;br /&gt;
* '''SVN Structure''' - There are three main folders in the Rifidi directory on &amp;lt;code&amp;gt;rep-external&amp;lt;/code&amp;gt; (the main svn repository for Rifidi).  The ''trunk'' folder contains the code that is being developed.  It is ''not'' guaranteed to be stable.  The ''tags'' folder contains tagged versions of the source for each of &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.timewing.com.sg/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;aircon service&amp;lt;/span&amp;gt;] the plugins.  The source in these plugins should be relatively stable.  The ''branches'' folder contains plugins that have been branched so that larger changes can be made on plugins without holding up other developers.  These changes can then later be merged back in.  For more details about our SVN, see [[Development and Release Process#SVN Structure]]&lt;br /&gt;
* Target Platform - A target platform is the base set of &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.timewing.com.sg/ac_service.html &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;ac repair&amp;lt;/span&amp;gt;] plugins that an Eclipse application needs to run.  In order to provide a more stable environment and to ensure a clean separation between the base plugins that Rifidi needs and the base plugins that your Eclipse IDE needs, we provide a target platform for each of the Rifidi products.  You can find these in the trunk.  They will be named something like &amp;lt;code&amp;gt;org.rifidi.emulator.target&amp;lt;/code&amp;gt;.  For more information see [[Development and Release Process#Target Platforms]].&lt;br /&gt;
* org.rifidi.binary - As the source code for Rifidi gets larger it begins to get harder to maintain a stable set of plugins.  In order to simplify things, there is a folder in the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.timewing.com.sg/refrg_service.html&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; refrigerator repair&amp;lt;/span&amp;gt;] svn into which stable binaries of each of the plugins used in the rifidi project will be placed.  This folder is used in conjunction with the target platform.&lt;br /&gt;
* Product File - In Eclipse, a product file is used to define the needed eclipse plugins.  Running this file will create a new Eclipse 'Run Configuration' in your IDE.  You can then tweak this run configuration as needed.&lt;br /&gt;
* Source Code Plugins - A stable binary version of each of the plugins is &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://jamumassagesingapore.com/services/dejamu/post-natal&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; jamu postnatal massage&amp;lt;/span&amp;gt;] contained in the org.rifidi.binary folder.  However, if you wish to view the source of a particular plugin or run a plugin from source, you must download the code from either the version in the trunk or a tagged version in the tags directory.&lt;br /&gt;
&lt;br /&gt;
==Downloading the Code==&lt;br /&gt;
&lt;br /&gt;
Our code is hosted at https://transcends.svn.cloudforge.com/rifidi and https://transcends.svn.cloudforge.com/emulator.  The svn repository allows anonymous read access.  Because the svn repository is the same one that developers submit to, it contains the latest Rifidi code.&lt;br /&gt;
&lt;br /&gt;
The following steps explain how to check out and run Rifidi Emulator.  The other products in the Rifidi Suite follow similar steps.  If you need help with them, you can ask questions on IRC or our forums.&lt;br /&gt;
&lt;br /&gt;
===Prerequisites===&lt;br /&gt;
&lt;br /&gt;
The Rifidi Emulator is written in java and consists of Eclipse plugins. At this point it is easiest to compile and build it inside of the eclipse environment.  &lt;br /&gt;
&lt;br /&gt;
====Install Eclipse====&lt;br /&gt;
Note that you need the &amp;quot;Eclipse for RCP/Plug-in Developers&amp;quot; version of eclipse.  Rifidi will not run on other versions.&lt;br /&gt;
* If you do not already have eclipse, or if you have a different version, you will need to get this version&lt;br /&gt;
** Go to http://www.eclipse.org/downloads/ and download the &amp;quot;Eclipse for RCP/Plug-in Developers&amp;quot; version of Eclipse to a convenient location.&lt;br /&gt;
** Unzip the package.&lt;br /&gt;
** Double click on the execution file to get it started [[Image:Rifidi_from_source-1-opening_eclipse.png |none|thumb|800px|Double click on the executable to open up eclipse]]&lt;br /&gt;
* If you have not used eclipse before, you will be required to select a workspace when eclipse is opening.&lt;br /&gt;
** After eclipse opens go to the workbench[[Image:Rifidi_from_source-2-wokbench.png |none|thumb|800px|Open up the workbench]]&lt;br /&gt;
* If you have an existing workspace, you will need to create a new one.&lt;br /&gt;
** Go to file -&amp;gt; switch workspace -&amp;gt; other [[Image:Rifidi_from_source-3-switch_workspace.png |none|thumb|800px|Open up the workbench]] &lt;br /&gt;
** Select a new directory for your Rifidi workspace.&lt;br /&gt;
&lt;br /&gt;
====Install Subclipse====&lt;br /&gt;
&lt;br /&gt;
Subclipse is an eclipse plugin that manages svn commands.&lt;br /&gt;
&lt;br /&gt;
* Follow the instructions at http://subclipse.tigris.org/install.html.&lt;br /&gt;
* In step 6 of the above instructions, don't install the Optional Integrations.  Only the subclipse plugin is needed&lt;br /&gt;
&lt;br /&gt;
===Add Repository===&lt;br /&gt;
&lt;br /&gt;
* Open the 'SVN Repository Exploring' perspective&lt;br /&gt;
** Window -&amp;gt; Open Perspective -&amp;gt; Other [[Image:Rifidi_from_source-4-svn_rep_explore1.png |none|thumb|800px|Open up the perspective picker]]&lt;br /&gt;
** SVN Repository Exploring [[Image:Rifidi_from_source-5-svn_rep_explore2.png |none|thumb|400px|Open up the SVN Repository Explorer]]&lt;br /&gt;
* Add the rifidi repository&lt;br /&gt;
** Click 'Add SVN Repository' button&lt;br /&gt;
** Add ' https://transcends.svn.cloudforge.com/rifidi '[[Image:Rifidi_from_source-6-add_rep.png |none|400px|thumb|Add the repository]]&lt;br /&gt;
&lt;br /&gt;
===Check Out Code===&lt;br /&gt;
&lt;br /&gt;
* Check out all the projects in the rifidi/trunk folder of the repository&lt;br /&gt;
** Highlight the folders you would like to check out. For Emulator you will need&lt;br /&gt;
*** &amp;lt;code&amp;gt;org.rifidi.binary&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;org.rifidi.emulator.taget3.5.2&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &amp;lt;code&amp;gt;org.rifidi.ui.ide&amp;lt;/code&amp;gt;&lt;br /&gt;
** Right click them and select checkout [[Image:Rifidi_from_source-7-checkout1.png |none|800px|thumb|Select the projects]]&lt;br /&gt;
** Select Finish. [[Image:Rifidi_from_source-8-checkout2.png |none|400px|thumb|Checkout projects]]&lt;br /&gt;
&lt;br /&gt;
===Set The Target Platform===&lt;br /&gt;
* Open up the .target file in &amp;lt;code&amp;gt;org.rifidi.emulator.target&amp;lt;/code&amp;gt;&lt;br /&gt;
* Click the button that says &amp;quot;set as target platform&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Running Rifidi==&lt;br /&gt;
&lt;br /&gt;
The last step to get Rifidi running is to create a run configuration.&lt;br /&gt;
&lt;br /&gt;
A run configuration is the set of plugins that will be loaded when you run the application.  Plugins can come from one of two places:&lt;br /&gt;
#Workspace - these are the plugins that you have in the source tree on the left&lt;br /&gt;
#Target Environment - These are the plugins defined by the target environment that you are using that the time.&lt;br /&gt;
&lt;br /&gt;
Because there is a product file  for emulator defined in the &amp;lt;code&amp;gt;org.rifidi.ui.ide&amp;lt;/code&amp;gt; plugin, the easiest way to create a new run configuration is by running the product file.  This will automatically create a new run configuration&lt;br /&gt;
&lt;br /&gt;
To Create a new Run Configuration: &lt;br /&gt;
* Switch to the Java perspective in the same way that you switched to the repository exploring view [[Image:Rifidi_from_source-9-java_view.png  |none|400px|thumb|Run Rifidi]]&lt;br /&gt;
* Right click on Rifidi.product in the org.rifidi.ui.ide project&lt;br /&gt;
* Click on &amp;quot;Run as eclipse application&amp;quot; [[Image:Rifidi_from_source-10_run_eclipse.png  |none|thumb|800px|Run Rifidi]]&lt;br /&gt;
* From now on, you can start Rifidi via the green triangle button at the top of eclipse&lt;br /&gt;
&lt;br /&gt;
If there was an error when starting the application, follow the step below to edit the run configuration:&lt;br /&gt;
&lt;br /&gt;
To Edit a Run Configuration:&lt;br /&gt;
* Run -&amp;gt; Open Run Dialog -&amp;gt; Eclipse Application -&amp;gt; Rifidi.product.  This is the run configuration.&lt;br /&gt;
* Go to the Tab Plug-ins.  The selected plugins are the ones that will be run.  Notice that there are two sections: &amp;quot;workspace&amp;quot; and &amp;quot;target platform&amp;quot;&lt;br /&gt;
* click the Button &amp;quot;Add Required Plug-ins&amp;quot; [[Image:Rifidi_from_source-11_add_plugins.png  |none|thumb|600px|Add required plugins]]&lt;br /&gt;
* check any plugins specifically required for the application to run (for example, the emulator requires the readers to be included).  Make sure that the plugin is coming from the place &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.miiny.com&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; deals singapore&amp;lt;/span&amp;gt;] that you intended (i.e. workspace or target platform).&lt;br /&gt;
* click the Button &amp;quot;Validate Plug-ins&amp;quot; to make sure everything is set up correctly&lt;br /&gt;
* click the Button &amp;quot;Apply&amp;quot;&lt;br /&gt;
* click the Button &amp;quot;Run&amp;quot; and start the Project&lt;br /&gt;
&lt;br /&gt;
==Updating the code==&lt;br /&gt;
&lt;br /&gt;
Now that you have downloaded the code into an eclipse workspace, it is easy to get changes to the code as soon as we add them to the svn.  &lt;br /&gt;
&lt;br /&gt;
To update the code:&lt;br /&gt;
&lt;br /&gt;
* Open up the Team Synchronizing Perspective in eclipse&lt;br /&gt;
* Click the button that says &amp;quot;Synchronize&amp;quot;.&lt;br /&gt;
* Select all projects.&lt;br /&gt;
* Install any updates by selecting all the updates show, right clicking and choosing 'update'&lt;br /&gt;
&lt;br /&gt;
Now that you have the new code, just hit the green run button on the toolbar at the top (Eclipse automatically compiles the code for you, so you don't have to worry about that).&lt;br /&gt;
&lt;br /&gt;
==Switching Branches==&lt;br /&gt;
If you need to run code from another branch or tag, please see [[Switching Branches]].&lt;br /&gt;
&lt;br /&gt;
==Viewing Source and Running From Trunk==&lt;br /&gt;
By default all of the rifidi plugins you are running in eclipse are pre-compiled, binary plugins contained in the &amp;lt;code&amp;gt;org.rifidi.binary&amp;lt;/code&amp;gt; folder.  If you want to view or edit the source for a particular plugin, you will need to check out the plugin from the trunk.  Once it is checked out make sure to edit your run configuration so that the application will use the plugin from the workspace and not from the target platform. &lt;br /&gt;
&lt;br /&gt;
For example, suppose I want to view the source for the Alien reader plugin.  I need to follow the steps above to check out and run rifidi emulator.  In addition, I need to check out the &amp;lt;code&amp;gt;org.rifidi.emulator.readers.alien&amp;lt;/code&amp;gt; plugin.  This is the code for the alien reader.  In addition, I need to edit the run configuration to make sure that my workspace alien reader plugin is being used instead of the target platform alien reader plugin.&lt;br /&gt;
&lt;br /&gt;
=Reporting Bugs=&lt;br /&gt;
&lt;br /&gt;
To report bugs, please use the forum at&lt;br /&gt;
&lt;br /&gt;
 http://forums.rifidi.net&lt;br /&gt;
&lt;br /&gt;
or drop by our IRC channel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;nowiki&amp;gt;#rifidi on irc.freenode.org.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also visit us online at http://www.rifidi.net&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/1.3_Maven_Build</id>
		<title>1.3 Maven Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/1.3_Maven_Build"/>
				<updated>2014-05-13T22:32:25Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: Removing all content from page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Custom_LLRP_Extension_Jumpstart</id>
		<title>Custom LLRP Extension Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Custom_LLRP_Extension_Jumpstart"/>
				<updated>2014-04-04T04:06:44Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: New page: Coming soon!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Coming soon!&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Edge_Server_Configuration</id>
		<title>Edge Server Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Edge_Server_Configuration"/>
				<updated>2013-09-06T04:55:57Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* RifidiEdgeServer.ini */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the various configuration options of the Rifidi Edge Server&lt;br /&gt;
=RifidiEdgeServer.ini=&lt;br /&gt;
The RifidiEdgeServer.ini is a property file that contains options for various options when the edge server starts up.  For linux, these arguments are in the &amp;quot;rifidi-server&amp;quot; executable.  &lt;br /&gt;
==rifidiserver.ini file==&lt;br /&gt;
As of release 1.3.0, the default rifidiserver.ini file looks like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-console&lt;br /&gt;
-vmargs&lt;br /&gt;
-Declipse.ignoreApp=true&lt;br /&gt;
-Dosgi.noShutdown=true&lt;br /&gt;
-Dorg.rifidi.edge.configuration=config/rifidi.xml&lt;br /&gt;
-Dosgi.clean=true&lt;br /&gt;
-Dorg.osgi.framework.bootdelegation=javax.xml.ws&lt;br /&gt;
-Dcom.sun.management.jmxremote.port=2021&lt;br /&gt;
-Dcom.sun.management.jmxremote.authenticate=false&lt;br /&gt;
-Dcom.sun.management.jmxremote.ssl=false&lt;br /&gt;
-Djava.rmi.server.hostname=127.0.0.1&lt;br /&gt;
-Dorg.rifidi.edge.core.rmi.port=1101&lt;br /&gt;
-Dorg.rifidi.edge.ale.port=8081&lt;br /&gt;
-Dorg.rifidi.edge.ale.host=127.0.0.1&lt;br /&gt;
-Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook&lt;br /&gt;
-Dorg.aspectj.osgi.verbose=true&lt;br /&gt;
-Dorg.rifidi.edge.autostart=true&lt;br /&gt;
-Dorg.rifidi.edge.logging=config/logging.properties&lt;br /&gt;
-Dorg.rifidi.ui.notify=false&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
;-console&lt;br /&gt;
:This starts up the OSGi console so that you can interact with the edge server from the command line.  For a list of commands that are available see [[Edge Server Commands]].  If you would like the console to be available over the network, supply a port after the -console (e.g. -console 2020). Now it is possible to telnet into the server at the given port.  It is recommended that you use ssh tunneling for security reasons (i.e. first ssh to the machine that is running the edge server, then telnet to the console). One thing to note is that after you telnet to the OSGi console, you cannot use the &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt; command as you normally would to close the telnet session.  This is because &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt; will be caught by the OSGi console and will perform a System.exit().  Instead, to exit the telnet session while keeping the server running, just close the telnet window.&lt;br /&gt;
==VMArgs==&lt;br /&gt;
VMArgs must follow the &amp;lt;tt&amp;gt;-vmargs&amp;lt;/tt&amp;gt; flag in the .ini file.  They must start with &amp;lt;tt&amp;gt;-D&amp;lt;/tt&amp;gt;.  Default values can be found in the &amp;lt;tt&amp;gt;bundle.properties&amp;lt;/tt&amp;gt; file in the spring directory for the appropriate option. Important VM args:&lt;br /&gt;
;-Dorg.rifidi.edge.configuration&lt;br /&gt;
:This is the path to the persistence file. See [[#rifidi.xml]].&lt;br /&gt;
;-Dcom.sun.management.jmxremote.port&lt;br /&gt;
:The port to open up JMX on.  This is important if you are using a program like VisualVM to profile the server&lt;br /&gt;
;-Djava.rmi.server.hostname&lt;br /&gt;
:The hostname to open up the RMI registry at.  Default is &amp;lt;tt&amp;gt;127.0.0.1&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.edge.core.rmi.port&lt;br /&gt;
:The port of the RMI registry Default is &amp;lt;tt&amp;gt;1101&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.edge.ale.host&lt;br /&gt;
:The hostname to publish the ALE webservices at.  Default is &amp;lt;tt&amp;gt;127.0.0.1&amp;lt;/tt&amp;gt; '''(NOTE: ALE has been removed in version 1.3)'''&lt;br /&gt;
;-Dorg.rifidi.edge.ale.port&lt;br /&gt;
:The port to publish the ALE webservices at.  Default is &amp;lt;tt&amp;gt;8081&amp;lt;/tt&amp;gt; '''(NOTE: ALE has been removed in version 1.3)'''&lt;br /&gt;
;-Dorg.rifidi.edge.ale.read&lt;br /&gt;
:The service name of the ALE reading service.  Default is &amp;lt;tt&amp;gt;ALEService&amp;lt;/tt&amp;gt; '''(NOTE: ALE has been removed in version 1.3)'''&lt;br /&gt;
;-Dorg.rifidi.edge.ale.logicalreader&lt;br /&gt;
:The service name of the ALE logical reader service. Default is &amp;lt;tt&amp;gt;ALELRService&amp;lt;/tt&amp;gt; '''(NOTE: ALE has been removed in version 1.3)'''&lt;br /&gt;
;-Dorg.rifidi.home&lt;br /&gt;
:The Rifidi directory. If not set, it defaults to ${user.dir}&lt;br /&gt;
;-Dorg.rifidi.ui.notify&lt;br /&gt;
:If set to true, reader adapters will send tag notifications to workbench. Default is true&lt;br /&gt;
&lt;br /&gt;
=rifidi.xml=&lt;br /&gt;
The rifidi.xml file is the persistence file for the Rifidi Edge Server.  The two important services that are saved are Reader Configurations and Command Configurations.&lt;br /&gt;
&lt;br /&gt;
==Loading a configuration file==&lt;br /&gt;
Whenever the edge server starts up, it looks for the file that is specified in the &amp;lt;tt&amp;gt;org.rifidi.configuration&amp;lt;/tt&amp;gt; vm flag. After the configuration file is read, the server will attempt to recreate all services specified in the file.  If a needed factory is not available, the service will be skipped and recreated when the factory becomes available.  For example, suppose the configuration file has an Alien Reader Configuration and an LLRP Reader Configuration.  Suppose that when  the server starts up, only the Alien plugin is available (so the Alien Reader Factory is available, but the LLRP Reader Factory is not).  At this point the Alien Reader is recreated.  If later the LLRP plugin is installed, then the LLRP reader will be recreated.&lt;br /&gt;
&lt;br /&gt;
==File Structure==&lt;br /&gt;
The edge server uses JAXB to persist a configuration file.  Each service will have a serviceID and a factoryID.  The serviceID is the unique name of the service, and is used when using the service (such as starting a session on a reader).  The factoryID is the ID of the factory that can create a service.   The following is an example of file that has one Alien Reader saved.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;configurationStore&amp;gt;&lt;br /&gt;
    &amp;lt;services&amp;gt;&lt;br /&gt;
        &amp;lt;attributes&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;ReconnectionInterval&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;500&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;Port&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;20000&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;InvertExternalOutput&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;PersistTime&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;-1&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;Username&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;alien&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;Password&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;password&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;InvertExternalInput&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;ReaderNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;ExternalOutput&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;IpAddress&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;127.0.0.1&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;MaxNumConnectionAttempts&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;10&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;RFAttenuation&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;/attributes&amp;gt;&lt;br /&gt;
        &amp;lt;factoryID&amp;gt;Alien&amp;lt;/factoryID&amp;gt;&lt;br /&gt;
        &amp;lt;serviceID&amp;gt;Alien_1&amp;lt;/serviceID&amp;gt;&lt;br /&gt;
    &amp;lt;/services&amp;gt;&lt;br /&gt;
&amp;lt;/configurationStore&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/User%27s_Guide</id>
		<title>User's Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/User%27s_Guide"/>
				<updated>2013-04-21T06:07:54Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_User_1.2.pdf User's Guide for 1.2.0]&lt;br /&gt;
*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_User_1.3.pdf User's Guide for 1.3.0]&lt;br /&gt;
*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_User_2.0.pdf User's Guide for 2.0.0]&lt;br /&gt;
*[http://wiki.rifidi.net/images/6/61/Rifidi_Edge_Server_User_2.1.pdf User's Guide for 2.1.0]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Developer%27s_Guide</id>
		<title>Developer's Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Developer%27s_Guide"/>
				<updated>2013-04-21T06:05:13Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_Developer_1.2.pdf Developer's Guide for 1.2.0]&lt;br /&gt;
*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_Developer_1.3.pdf Developer's Guide for 1.3.0]&lt;br /&gt;
*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_Developer_2.0.pdf Developer's Guide for 2.0.0]&lt;br /&gt;
*[http://wiki.rifidi.net/images/5/51/Rifidi_Edge_Server_Developer_2.1.pdf Developer's Guide for 2.1.0]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/User%27s_Guide</id>
		<title>User's Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/User%27s_Guide"/>
				<updated>2013-04-21T06:03:44Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_User_1.2.pdf User's Guide for 1.2.0]&lt;br /&gt;
*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_User_1.3.pdf User's Guide for 1.3.0]&lt;br /&gt;
*[http://www.transcends.co/www/docs/Rifidi_Edge_Server_User_2.0.pdf User's Guide for 2.0.0]&lt;br /&gt;
*[http://wiki.rifidi.net/index.php?title=Image:Rifidi_Edge_Server_User_2.1.pdf User's Guide for 2.1.0]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/File:Rifidi_Edge_Server_User_2.1.pdf</id>
		<title>File:Rifidi Edge Server User 2.1.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/File:Rifidi_Edge_Server_User_2.1.pdf"/>
				<updated>2013-04-21T05:51:10Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/File:Rifidi_Edge_Server_Developer_2.1.pdf</id>
		<title>File:Rifidi Edge Server Developer 2.1.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/File:Rifidi_Edge_Server_Developer_2.1.pdf"/>
				<updated>2013-04-21T05:50:47Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/File:Rifidi_Edge_Server_User.pdf</id>
		<title>File:Rifidi Edge Server User.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/File:Rifidi_Edge_Server_User.pdf"/>
				<updated>2013-04-21T05:48:57Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Main_Page"/>
				<updated>2013-04-21T03:58:31Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&lt;br /&gt;
    style=&amp;quot;text-align:center;margin-left:auto;margin-right:auto&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;h1&amp;gt;Welcome&lt;br /&gt;
        to the &amp;lt;strong&amp;gt;RIFIDI Community Wiki&amp;lt;/strong&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;p&amp;gt;RIFIDI is an open source RFID Middleware Platform&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;p&amp;gt;Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin&lt;br /&gt;
        editing. &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Remove this tr tag to remove the announcement --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;tr&lt;br /&gt;
    style=&amp;quot;text-align:center;margin-left:auto;margin-right:auto&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:lightpink&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Announcing Rifidi Edge Server 2.1!!!&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;p&amp;gt;Version 2.1 fixes some of the issues that existed in 2.0. See [[Version 2.1]] for details&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width:80%&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Edge Server&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Getting Started|Getting Started]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[User's Guide | User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Configuration|Configuration]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Console|Console]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Sensor Plugins | Sensor Plugin User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Installing an Application]] &amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi Edge Licensing - GPL v2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Developer&lt;br /&gt;
                Documentation &amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Developer's Guide | Developer's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi Edge Server Application Tutorials]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server API]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Sensor Plugin API]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Architecture|Architecture]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Development Environment|Setting up a Development Environment]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi App Upgrade Guide|Upgrade a Rifidi App from 1.2 to 1.3]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server HOWTOs | HOWTOs]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi Services Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Social Media Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Cloud Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Database Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[JMS Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Workbench&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Workbench User's Guide|Getting Started]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;quot;&amp;gt;Toolkit&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Emulator User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Prototyper User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Tag Streamer User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Release Features]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Developer Documentation &amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Emulator documentation summary | Emulator Documentation]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[tag streamer documentation summary | Tag Streamer Documentation]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;Virtual [[Reader Guides]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Development Process| How to Develop Rifidi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt; [[:Category:developerDoc|browse more developer documents...]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width:80%&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Rifidi Suite&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Asset Tracking: An end-to end solution with the Rifidi Platform]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi roadmap|Rifidi Roadmap]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://rifidi.net/ About Rifidi]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;General Information&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Developer FAQ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[How to Contribute to the Rifidi project]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Useful Links&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Rifidi Project&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://forums.rifidi.net Rifidi Forums]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://trac.rifidi.org/rep-edge-trac/ Rifidi Bug Tracker]&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://svn.rifidi.org/svn/rep-external Rifidi Emulator/Prototyper/Tagstreamer Source SVN]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://svn.rifidi.org/svn/rep-edge Rifidi Edge/Workbench Source SVN]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://www.transcends.co Transcends' Website]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Other Projects&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/ Spring]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://esper.codehaus.org/about/esper/esper.html Esper is a trademark of EsperTech Inc]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://help.eclipse.org/juno/index.jsp Eclipse]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://springsource.com/repository/app/ Spring Enterprise Bundle Repository]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.1</id>
		<title>Version 2.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.1"/>
				<updated>2013-04-21T00:47:38Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Changes in 2.1==&lt;br /&gt;
&lt;br /&gt;
We are pleased to announce the release of Rifidi 2.1!&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features:&lt;br /&gt;
&lt;br /&gt;
===Small bug fixes===&lt;br /&gt;
&lt;br /&gt;
There were several smaller bugs present which have now been fixed.  &lt;br /&gt;
&lt;br /&gt;
===Thinkify now works on Windows===&lt;br /&gt;
&lt;br /&gt;
The Thinkify TR-50/TR-200 was not working on windows for some people.  This has now been fixed.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Javadocs (method signatures same as 2.0.0):&lt;br /&gt;
http://www.transcends.co/www/javadoc/edge2.0.0/&lt;br /&gt;
&lt;br /&gt;
[[Developer's_Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User's_Guide]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.1</id>
		<title>Version 2.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.1"/>
				<updated>2013-04-21T00:44:21Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Changes in 2.1==&lt;br /&gt;
&lt;br /&gt;
We are pleased to announce the release of Rifidi 2.1!&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features:&lt;br /&gt;
&lt;br /&gt;
===Small bug fixes===&lt;br /&gt;
&lt;br /&gt;
There were several smaller bugs present which have now been fixed.  &lt;br /&gt;
&lt;br /&gt;
===Thinkify now works on Windows===&lt;br /&gt;
&lt;br /&gt;
The Thinkify TR-50/TR-200 was not working on windows for some people.  This has now been fixed.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.1</id>
		<title>Version 2.1</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.1"/>
				<updated>2013-04-21T00:43:54Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: New page: We are pleased to announce the release of Rifidi 2.1!  Here are some of the new features:  ===Small bug fixes===  There were several smaller bugs present which have now been fixed.    ===T...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are pleased to announce the release of Rifidi 2.1!&lt;br /&gt;
&lt;br /&gt;
Here are some of the new features:&lt;br /&gt;
&lt;br /&gt;
===Small bug fixes===&lt;br /&gt;
&lt;br /&gt;
There were several smaller bugs present which have now been fixed.  &lt;br /&gt;
&lt;br /&gt;
===Thinkify now works on Windows===&lt;br /&gt;
&lt;br /&gt;
The Thinkify TR-50/TR-200 was not working on windows for some people.  This has now been fixed.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.0</id>
		<title>Version 2.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.0"/>
				<updated>2013-01-16T05:24:17Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* Changes in 2.0 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Changes in 2.0==&lt;br /&gt;
&lt;br /&gt;
===Equinox/OSGi upgraded from 3.5 to 3.8===&lt;br /&gt;
&lt;br /&gt;
We're happy to announce that we've upgraded Equinox from version 3.5 to 3.8.  With it comes a performance improvement and a new expanded console.&lt;br /&gt;
&lt;br /&gt;
===Thinkify TR-50 Embedded reader support===&lt;br /&gt;
&lt;br /&gt;
We have added support for the Thinkify TR-50 reader.  To learn more about the Thinkify, &lt;br /&gt;
&lt;br /&gt;
LLRP added GPIO support now, so you can test GPI ports and set GPO ports on an LLRP reader from within a RifidiApp.  &lt;br /&gt;
&lt;br /&gt;
===Spring upgraded to 3.1.2===&lt;br /&gt;
&lt;br /&gt;
Spring has been upgraded and all new features available in 3.1.2 are now available for RifidiApps.  &lt;br /&gt;
&lt;br /&gt;
===Esper upgraded to 4.7===&lt;br /&gt;
&lt;br /&gt;
Esper has been upgraded to version 4.7.  Performance has increased, and there are new features.  &lt;br /&gt;
&lt;br /&gt;
===Amazon cloud support===&lt;br /&gt;
[[Cloud Jumpstart|AWS Cloud Jumpstart]].&lt;br /&gt;
&lt;br /&gt;
===Changes to Esper for RifidiApps with Custom esper rules===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
See Esper documentation for full list of changes&lt;br /&gt;
http://esper.codehaus.org/esper/documentation/documentation.html&lt;br /&gt;
&lt;br /&gt;
===Bug Fixes===&lt;br /&gt;
&lt;br /&gt;
You can now start Rifidi while offline without issue.  The issue with the installer throwing an exception when offline is now fixed.&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Javadocs:&lt;br /&gt;
http://www.transcends.co/www/javadoc/edge2.0.0/&lt;br /&gt;
&lt;br /&gt;
[[Developer's_Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User's_Guide]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.0</id>
		<title>Version 2.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.0"/>
				<updated>2013-01-16T05:24:00Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Changes in 2.0==&lt;br /&gt;
&lt;br /&gt;
===Equinox/OSGi upgraded from 3.5 to 3.8===&lt;br /&gt;
&lt;br /&gt;
We're happy to announce that we've upgraded Equinox from version 3.5 to 3.8.  With it comes a performance improvement and a new expanded console.&lt;br /&gt;
&lt;br /&gt;
===Thinkify TR-50 Embedded reader support===&lt;br /&gt;
&lt;br /&gt;
We have added support for the Thinkify TR-50 reader.  To learn more about the Thinkify, &lt;br /&gt;
&lt;br /&gt;
LLRP added GPIO support now, so you can test GPI ports and set GPO ports on an LLRP reader from within a RifidiApp.  &lt;br /&gt;
&lt;br /&gt;
===Performance increase and optimization for embedded devices===&lt;br /&gt;
&lt;br /&gt;
===Spring upgraded to 3.1.2===&lt;br /&gt;
&lt;br /&gt;
Spring has been upgraded and all new features available in 3.1.2 are now available for RifidiApps.  &lt;br /&gt;
&lt;br /&gt;
===Esper upgraded to 4.7===&lt;br /&gt;
&lt;br /&gt;
Esper has been upgraded to version 4.7.  Performance has increased, and there are new features.  &lt;br /&gt;
&lt;br /&gt;
===Amazon cloud support===&lt;br /&gt;
[[Cloud Jumpstart|AWS Cloud Jumpstart]].&lt;br /&gt;
&lt;br /&gt;
===Changes to Esper for RifidiApps with Custom esper rules===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
See Esper documentation for full list of changes&lt;br /&gt;
http://esper.codehaus.org/esper/documentation/documentation.html&lt;br /&gt;
&lt;br /&gt;
===Bug Fixes===&lt;br /&gt;
&lt;br /&gt;
You can now start Rifidi while offline without issue.  The issue with the installer throwing an exception when offline is now fixed.  &lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Javadocs:&lt;br /&gt;
http://www.transcends.co/www/javadoc/edge2.0.0/&lt;br /&gt;
&lt;br /&gt;
[[Developer's_Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User's_Guide]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.0</id>
		<title>Version 2.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.0"/>
				<updated>2013-01-16T03:09:45Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Changes in 2.0==&lt;br /&gt;
&lt;br /&gt;
===Equinox/OSGi upgraded from 3.5 to 3.8===&lt;br /&gt;
&lt;br /&gt;
We're happy to announce that we've upgraded Equinox from version 3.5 to 3.8.  With it comes a performance improvement and a new expanded console.&lt;br /&gt;
&lt;br /&gt;
===Thinkify TR-50 Embedded reader support===&lt;br /&gt;
&lt;br /&gt;
We have added support for the Thinkify TR-50 reader.  To learn more about the Thinkify, &lt;br /&gt;
&lt;br /&gt;
LLRP added GPIO support now, so you can test GPI ports and set GPO ports on an LLRP reader from within a RifidiApp.  &lt;br /&gt;
&lt;br /&gt;
===Performance increase and optimization for embedded devices===&lt;br /&gt;
&lt;br /&gt;
===Spring upgraded to 3.1.2===&lt;br /&gt;
&lt;br /&gt;
Spring has been upgraded. &lt;br /&gt;
&lt;br /&gt;
===Esper upgraded to 4.7===&lt;br /&gt;
&lt;br /&gt;
Esper has been upgraded to version 4.7.  Performance has increased, and there are new features.  &lt;br /&gt;
&lt;br /&gt;
===Amazon cloud support===&lt;br /&gt;
[[Cloud Jumpstart|AWS Cloud Jumpstart]].&lt;br /&gt;
&lt;br /&gt;
===Changes to Esper for RifidiApps with Custom esper rules===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
See Esper documentaion for full list of changes &lt;br /&gt;
http://esper.codehaus.org/esper/documentation/documentation.html&lt;br /&gt;
&lt;br /&gt;
===Bug Fixes===&lt;br /&gt;
&lt;br /&gt;
You can now start rifidi when offline with no issues&lt;br /&gt;
The issue with the installer throwing an exception when offline is now fixed&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Javadocs:&lt;br /&gt;
http://www.transcends.co/www/javadoc/edge2.0.0/&lt;br /&gt;
&lt;br /&gt;
[[Developer's_Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User's_Guide]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.0</id>
		<title>Version 2.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.0"/>
				<updated>2013-01-16T01:47:55Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: /* Equinox/OSGi upgraded from 3.5 to 3.8 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Changes in 2.0==&lt;br /&gt;
&lt;br /&gt;
===Equinox/OSGi upgraded from 3.5 to 3.8===&lt;br /&gt;
&lt;br /&gt;
We're happy to announce that we've upgraded Equinox from version 3.5 to 3.8.  With it comes a performance improvement and a new expanded console.&lt;br /&gt;
&lt;br /&gt;
===Thinkify TR-50 Embedded reader support===&lt;br /&gt;
&lt;br /&gt;
LLRP added GPIO support now, so you can test GPI ports and set GPO ports on an LLRP reader from within a RifidiApp.  &lt;br /&gt;
&lt;br /&gt;
===Performance increase and optimization for embedded devices===&lt;br /&gt;
&lt;br /&gt;
===Spring upgraded to 3.1.2===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Esper upgraded to 4.7===&lt;br /&gt;
&lt;br /&gt;
Performance Increase and Extended Commands&lt;br /&gt;
&lt;br /&gt;
===Amazon cloud support===&lt;br /&gt;
[[Cloud Jumpstart|AWS Cloud Jumpstart]].&lt;br /&gt;
&lt;br /&gt;
===Changes to Esper for RifidiApps with Custom esper rules===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
See Esper documentaion for full list of changes &lt;br /&gt;
http://esper.codehaus.org/esper/documentation/documentation.html&lt;br /&gt;
&lt;br /&gt;
===Bug Fixes===&lt;br /&gt;
&lt;br /&gt;
You can now start rifidi when offline with no issues&lt;br /&gt;
The issue with the installer throwing an exception when offline is now fixed&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Javadocs:&lt;br /&gt;
http://www.transcends.co/www/javadoc/edge2.0.0/&lt;br /&gt;
&lt;br /&gt;
[[Developer's_Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User's_Guide]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Version_2.0</id>
		<title>Version 2.0</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Version_2.0"/>
				<updated>2013-01-10T23:25:40Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Changes in 2.0==&lt;br /&gt;
&lt;br /&gt;
===Equinox/OSGi upgraded from 3.5 to 3.8===&lt;br /&gt;
&lt;br /&gt;
Performance Increase and Extended Commands&lt;br /&gt;
&lt;br /&gt;
===Thinkify TR-50 Embedded reader support===&lt;br /&gt;
&lt;br /&gt;
LLRP added GPIO support now, so you can test GPI ports and set GPO ports on an LLRP reader from within a RifidiApp.  &lt;br /&gt;
&lt;br /&gt;
===Performance increase and optimization for embedded devices===&lt;br /&gt;
&lt;br /&gt;
===Spring upgraded to 3.1.2===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Esper upgraded to 4.7===&lt;br /&gt;
&lt;br /&gt;
Performance Increase and Extended Commands&lt;br /&gt;
&lt;br /&gt;
===Amazon cloud support===&lt;br /&gt;
[[Cloud Jumpstart|AWS Cloud Jumpstart]].&lt;br /&gt;
&lt;br /&gt;
===Changes to Esper for RifidiApps with Custom esper rules===&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
See Esper documentaion for full list of changes &lt;br /&gt;
http://esper.codehaus.org/esper/documentation/documentation.html&lt;br /&gt;
&lt;br /&gt;
===Bug Fixes===&lt;br /&gt;
&lt;br /&gt;
You can now start rifidi when offline with no issues&lt;br /&gt;
The issue with the installer throwing an exception when offline is now fixed&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
Javadocs:&lt;br /&gt;
http://www.transcends.co/www/javadoc/edge2.0.0/&lt;br /&gt;
&lt;br /&gt;
[[Developer's_Guide]]&lt;br /&gt;
&lt;br /&gt;
[[User's_Guide]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Edge_Server_HOWTOs</id>
		<title>Edge Server HOWTOs</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Edge_Server_HOWTOs"/>
				<updated>2012-11-14T01:06:55Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[How to change logging levels]]&lt;br /&gt;
*[[How to export a service using RMI]]&lt;br /&gt;
*[[How to export a service using web services]]&lt;br /&gt;
*[[EdgeServerJMS#Setting up a Consumer|How to consume tag events from the Internal JMS Message Bus]]&lt;br /&gt;
*[[How to write esper queries]]&lt;br /&gt;
*[[How to configure Manifest.MF in my bundle]]&lt;br /&gt;
*[[How to configure spring.xml in my bundle]]&lt;br /&gt;
*[[How to use OSGi Services]]&lt;br /&gt;
*[[How to create a sensor plugin]]&lt;br /&gt;
*[[How to configure the run configuration in eclipse]]&lt;br /&gt;
*[[How to Add your own event types to Esper]]&lt;br /&gt;
*[[How to export your custom Rifidi application]]&lt;br /&gt;
*[[Rifidi App Upgrade Guide|How to upgrade a 1.2 RifidiApp to 1.3]]&lt;br /&gt;
*[[1.3 Maven Build]]&lt;br /&gt;
*[[Adding Third Party Libraries]]&lt;br /&gt;
*[[Custom Esper Rules Jumpstart]]&lt;br /&gt;
*[[GPIO Tutorial]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Edge_Server_HOWTOs</id>
		<title>Edge Server HOWTOs</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Edge_Server_HOWTOs"/>
				<updated>2012-11-14T01:06:37Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[How to change logging levels]]&lt;br /&gt;
*[[How to export a service using RMI]]&lt;br /&gt;
*[[How to export a service using web services]]&lt;br /&gt;
*[[EdgeServerJMS#Setting up a Consumer|How to consume tag events from the Internal JMS Message Bus]]&lt;br /&gt;
*[[How to write esper queries]]&lt;br /&gt;
*[[How to configure Manifest.MF in my bundle]]&lt;br /&gt;
*[[How to configure spring.xml in my bundle]]&lt;br /&gt;
*[[How to use OSGi Services]]&lt;br /&gt;
*[[How to create a sensor plugin]]&lt;br /&gt;
*[[How to configure the run configuration in eclipse]]&lt;br /&gt;
*[[How to Add your own event types to Esper]]&lt;br /&gt;
*[[How to export your custom Rifidi application]]&lt;br /&gt;
*[[Rifidi App Upgrade Guide|How to upgrade a 1.2 RifidiApp to 1.3]]&lt;br /&gt;
*[[1.3 Maven Build]]&lt;br /&gt;
*[[Adding Third Party Libraries]]&lt;br /&gt;
*[[Custom Esper Rules Jumpstart]]&lt;br /&gt;
*[[GPIO_Tutorial]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/File:DBApp.zip</id>
		<title>File:DBApp.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/File:DBApp.zip"/>
				<updated>2012-07-10T22:05:06Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: uploaded a new version of &amp;quot;Image:DBApp.zip&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A sample database application for Rifidi Edge.  Eclipse project and compiled version included.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Alien_Edge_Server_Guide</id>
		<title>Alien Edge Server Guide</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Alien_Edge_Server_Guide"/>
				<updated>2012-05-15T00:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Getting started==&lt;br /&gt;
&lt;br /&gt;
This guide will help you quickly get an Alien reader up and reading tags on Rifidi Edge.  The supported Alien readers are the 9800, the 9900, the 8800, and the 9600.  Other versions haven't been tested, but may still work.  &lt;br /&gt;
&lt;br /&gt;
*Start the edge server and the edge client.  Connect the client to the server.  &lt;br /&gt;
*Right click on the 'Edge Server' icon in the 'Edge Server View' and select 'New Reader'.&lt;br /&gt;
*Select 'Alien' from the drop-down and click 'Next'.  &lt;br /&gt;
*Type in the IP and port of the reader you wish to in their respective boxes.  If you are using an emulated Alien, you can check this in the emulator itself.  If you are connecting to a physical reader, you might need to use the discovery tool in the Alien software to find out what the IP and port are if you don't know them offhand.  &lt;br /&gt;
*Set the username and password of the reader.  The default is 'alien' and 'password', respectively.  &lt;br /&gt;
*Select the reconnect interval (in milliseconds).  If you want the Edge Server to keep trying to connect if the reader loses connection while running or if it can't connect to start with, you can set this value to what you want (in milliseconds).  If you are unsure, you can just leave it at the default 500.  &lt;br /&gt;
*Select the maximum number of times the server will try to connect to an unresponsive reader.  -1 means it will keep going until it gets a connection.  To turn this feature off, set it to 0.  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reading Tags==&lt;br /&gt;
&lt;br /&gt;
Now that the reader is set up, its time to actually connect to it and read some tags.  &lt;br /&gt;
&lt;br /&gt;
*First, click on the reader icon that has appeared under the 'Edge Server'.  It probably looks something like 'Alien_1'.  Now look at the 'properties' tab at the bottom.  There are many properties here, some of which can be adjusted.  If you wish to adjust a property, type in the new value you want, press 'enter', then right click on the reader and select 'Commit Property Changes'.  If you wish to learn more about a specific property, consult the Alien documentation.  &lt;br /&gt;
*Right click the reader and press 'create session'.  If the IP is correct and the reader is turned on, the session should go to 'green'.  If something is wrong, it will stay yellow or go back to red.  Check and make sure the IP and port are correct and the reader is turned on if you have trouble connecting.  &lt;br /&gt;
*Now go to the bottom left window, the 'Command View'.  Right click on the 'Alien-Poll' folder and click 'create command template'.  &lt;br /&gt;
*Click on the command you just created, and set the options you wish in the same way you set the reader properties (just with the command instead).  &lt;br /&gt;
*Now right click on the session you created under the reader and press 'submit job'.  Select the 'Alien-Poll' job you created, select 'Recurring Execution', and select the interval you want to read tags for (default is 1 second).  &lt;br /&gt;
*Press 'Finish'.  Congratulations!  You are now reading tags from an Alien reader.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Database_Jumpstart</id>
		<title>Database Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Database_Jumpstart"/>
				<updated>2012-04-13T23:35:30Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to the Database==&lt;br /&gt;
* 5. The MySQL JDBC API is included with Rifidi.  You can also import other APIs if you wish by adding third party libraries.  You can connect to the database via Spring or in the traditional way in Java.  Here is a sample database application:&lt;br /&gt;
&lt;br /&gt;
[[Media:DBApp.zip|DBApp]]&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/File:DBApp.zip</id>
		<title>File:DBApp.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/File:DBApp.zip"/>
				<updated>2012-04-13T23:32:01Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: A sample database application for Rifidi Edge.  Eclipse project and compiled version included.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A sample database application for Rifidi Edge.  Eclipse project and compiled version included.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Cloud_Jumpstart</id>
		<title>Cloud Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Cloud_Jumpstart"/>
				<updated>2012-04-13T21:32:50Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Cloud Interface==&lt;br /&gt;
* 5. There are many ways you can communicate with the cloud, and many libraries that you can use to communicate with it.  For this example we'll be using the [https://aws.amazon.com/sdkforjava/ Amazon AWS SDK for Java], specifically the [https://aws.amazon.com/simpledb/ SimpleDB].  There is a great example for how to use the SimpleDB [https://www.ibm.com/developerworks/java/library/j-javadev2-9/ here].  After you set up the credentials for the system, you can talk to the SimpleDB in a similar fashion that you would talk to any other database.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	@Override&lt;br /&gt;
	public void tagArrived(TagReadEvent tag) {&lt;br /&gt;
		System.out.println(&amp;quot;Tag arrived at location &amp;quot; + location + &amp;quot;: &amp;quot; + tag.getTag().getFormattedID());&lt;br /&gt;
		List&amp;lt;ReplaceableItem&amp;gt; data = new ArrayList&amp;lt;ReplaceableItem&amp;gt;();&lt;br /&gt;
		data.add(new ReplaceableItem().withName(tag.getTag().getFormattedID()).withAttributes(&lt;br /&gt;
			new ReplaceableAttribute().withName(&amp;quot;Antenna&amp;quot;).withValue(tag.getAntennaID()),&lt;br /&gt;
			new ReplaceableAttribute().withName(&amp;quot;Timestamp&amp;quot;).withValue(tag.getTimestamp())));&lt;br /&gt;
		//&amp;quot;sdb&amp;quot; is the SimpleDB client object, &amp;quot;domain&amp;quot; is the name of the domain you wish to insert the tag in&lt;br /&gt;
		sdb.batchPutAttributes(new BatchPutAttributesRequest(domain, data));&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Cloud_Jumpstart</id>
		<title>Cloud Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Cloud_Jumpstart"/>
				<updated>2012-04-13T17:39:39Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Cloud Interface==&lt;br /&gt;
* 5. There are many ways you can communicate with the cloud, and many libraries that you can use to communicate with it.  For this example we'll be using the [https://aws.amazon.com/sdkforjava/ Amazon AWS SDK for Java], specifically the [https://aws.amazon.com/simpledb/ SimpleDB].  There is a great example for how to use the SimpleDB [https://www.ibm.com/developerworks/java/library/j-javadev2-9/ here].  After you set up the credentials for the system, you can talk to the SimpleDB in a similar fashion that you would talk to any other database.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Cloud_Jumpstart</id>
		<title>Cloud Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Cloud_Jumpstart"/>
				<updated>2012-04-13T17:35:57Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Cloud Interface==&lt;br /&gt;
* 5. There are many ways you can communicate with the cloud, and many libraries that you can use to communicate with it.  For this example we'll be using the [https://aws.amazon.com/sdkforjava/ Amazon AWS SDK for Java], specifically the [https://aws.amazon.com/simpledb/ SimpleDB].  There is a great example for how to use the SimpleDB [https://www.ibm.com/developerworks/java/library/j-javadev2-9/ here].&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Social_Media_Jumpstart</id>
		<title>Social Media Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Social_Media_Jumpstart"/>
				<updated>2012-04-10T18:50:40Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to Social Media Interface==&lt;br /&gt;
* 5. You can link to a social media interface using the [http://www.springsource.org/spring-social Spring Social] [http://static.springsource.org/spring-social/docs/1.0.x/reference/html/serviceprovider.html API].  &lt;br /&gt;
&lt;br /&gt;
Here is an example of a link to social media within an &amp;quot;arrived&amp;quot; method of a subscriber:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	@Override&lt;br /&gt;
	public void tagArrived(TagReadEvent tag) {&lt;br /&gt;
		System.out.println(&amp;quot;Tag arrived at location &amp;quot; + location + &amp;quot;: &amp;quot; + tag.getTag().getFormattedID());&lt;br /&gt;
		TwitterTemplate twitter = new TwitterTemplate(apiKey, apiSecret, accessToken, accessTokenSecret);&lt;br /&gt;
		twitter.updateStatus(&amp;quot;Tag &amp;quot; + tag.getTag.getFormattedID() + &amp;quot; has arrived at location &amp;quot; + location + &amp;quot;!&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
		FacebookTemplate facebook = new FacebookTemplate(accessToken);&lt;br /&gt;
		facebook.updateStatus(&amp;quot;Tag &amp;quot; + tag.getTag.getFormattedID() + &amp;quot; has arrived at location &amp;quot; + location + &amp;quot;!&amp;quot;);&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You'll need the credentials for a twitter and/or facebook account.  You can find a good explanation of those credentials [http://gognamunish.blogspot.com/2011/01/accessing-social-network-using-spring.html here].  &lt;br /&gt;
&lt;br /&gt;
For this example we simply used the tag ID and the location that the Northwind project has as an example of publishing information to facebook or twitter.  In reality the tagID probably wouldn't be particularly useful, and it would be advisable to go to the database and get some useful information the tag ID points to (such as the name of a person, or an item).&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Database_Jumpstart</id>
		<title>Database Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Database_Jumpstart"/>
				<updated>2012-04-10T01:09:54Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to the Database==&lt;br /&gt;
* 5. The MySQL JDBC API is included with Rifidi.  You can also import other APIs if you wish by adding third party libraries.  You can connect to the database via Spring or in the traditional way in Java.  A DBApp example will be included here soon.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Database_Jumpstart</id>
		<title>Database Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Database_Jumpstart"/>
				<updated>2012-04-10T01:08:39Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: New page: ==Create a RifidiApp== * 1. Create a RifidiApp.  First, be sure to set up a developer environment using these steps.   Then check the developer guid...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to the Database==&lt;br /&gt;
* 5. The MySQL JDBC API is included with Rifidi.  You can also import other APIs if you wish by adding third party libraries.  A DBApp example will be included here soon.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Main_Page"/>
				<updated>2012-04-10T00:23:23Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&lt;br /&gt;
    style=&amp;quot;text-align:center;margin-left:auto;margin-right:auto&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;h1&amp;gt;Welcome&lt;br /&gt;
        to the &amp;lt;strong&amp;gt;RIFIDI Community Wiki&amp;lt;/strong&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;p&amp;gt;RIFIDI is an open source RFID Middleware Platform&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;p&amp;gt;Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin&lt;br /&gt;
        editing. &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Remove this tr tag to remove the announcement --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;tr&lt;br /&gt;
    style=&amp;quot;text-align:center;margin-left:auto;margin-right:auto&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:lightpink&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Announcing Rifidi Edge Server 1.3.1!!!&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;p&amp;gt;Version 1.3.1 offers many new features, including an improved LLRP plugin. See [[Version 1.3.1]] for details&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width:80%&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Edge Server&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Getting Started|Getting Started]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[User's Guide | User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Configuration|Configuration]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Console|Console]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Sensor Plugins | Sensor Plugin User's Guide]]&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Installing an Application]]&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Developer&lt;br /&gt;
                Documentation &amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Developer's Guide | Developer's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi Edge Server Application Tutorials]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server API]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Sensor Plugin API]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Architecture|Architecture]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Development Environment|Setting up a Development Environment]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi App Upgrade Guide|Upgrade a Rifidi App from 1.2 to 1.3]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server HOWTOs | HOWTOs]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi Services Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Social Media Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Cloud Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Database Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[JMS Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Workbench&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Workbench User's Guide|Getting Started]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;quot;&amp;gt;Toolkit&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Emulator User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Prototyper User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Tag Streamer User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Release Features]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Developer Documentation &amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Emulator documentation summary | Emulator Documentation]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[tag streamer documentation summary | Tag Streamer Documentation]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;Virtual [[Reader Guides]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Development Process| How to Develop Rifidi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt; [[:Category:developerDoc|browse more developer documents...]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width:80%&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Rifidi Suite&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Asset Tracking: An end-to end solution with the Rifidi Platform]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi roadmap|Rifidi Roadmap]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://rifidi.org/ About Rifidi]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;General Information&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Developer FAQ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[How to Contribute to the Rifidi project]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Useful Links&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Rifidi Project&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://forums.rifidi.org Rifidi Forums]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://trac.rifidi.org/rep-edge-trac/ Rifidi Bug Tracker]&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://svn.rifidi.org/svn/rep-external Rifidi Emulator/Prototyper/Tagstreamer Source SVN]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://svn.rifidi.org/svn/rep-edge Rifidi Edge/Workbench Source SVN]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://www.transcends.co Transcends' Website]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Other Projects&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ Spring]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://esper.codehaus.org/about/esper/esper.html Esper]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://help.eclipse.org/galileo/index.jsp Eclipse]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://springsource.com/repository/app/ Spring Enterprise Bundle Repository]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Cloud_Jumpstart</id>
		<title>Cloud Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Cloud_Jumpstart"/>
				<updated>2012-04-10T00:20:12Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: New page: ==Create a RifidiApp== * 1. Create a RifidiApp.  First, be sure to set up a developer environment using these steps.   Then check the developer guid...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Cloud Interface==&lt;br /&gt;
* 5. You can use the [http://www.springsource.org/features/cloud-ready Spring Source Cloud API] to communicate with the cloud.&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Social_Media_Jumpstart</id>
		<title>Social Media Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Social_Media_Jumpstart"/>
				<updated>2012-04-09T22:45:48Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to Social Media Interface==&lt;br /&gt;
* 5. You can link to a social media interface using the [http://www.springsource.org/spring-social Spring Social] [http://static.springsource.org/spring-social/docs/1.0.x/reference/html/serviceprovider.html API].&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Social_Media_Jumpstart</id>
		<title>Social Media Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Social_Media_Jumpstart"/>
				<updated>2012-04-09T21:51:46Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom Esper Rules Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to Social Media Interface==&lt;br /&gt;
* 5. You can link to a social media interface&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Social_Media_Jumpstart</id>
		<title>Social Media Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Social_Media_Jumpstart"/>
				<updated>2012-04-09T21:51:28Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom_Esper_Rules_Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to Social Media Interface==&lt;br /&gt;
* 5. You can link to a social media interface&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Social_Media_Jumpstart</id>
		<title>Social Media Jumpstart</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Social_Media_Jumpstart"/>
				<updated>2012-04-09T21:51:18Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Social Media jumpstart:&lt;br /&gt;
&lt;br /&gt;
==Create a RifidiApp==&lt;br /&gt;
* 1. Create a RifidiApp.  First, be sure to set up a developer environment using [[Edge_Server_Development_Environment|these steps]].  &lt;br /&gt;
Then check the developer guide for [[Developer%27s_Guide|creating your own Rifidi App]].&lt;br /&gt;
Check the section starting at &amp;quot;Importing a Project Template&amp;quot; on page 5 for how to do this. &lt;br /&gt;
&lt;br /&gt;
After your application is set up, you'll have to choose how you want to receive your tags.  Tags that are read by RFID readers will be inserted into an event processing engine called Esper.  There are a few different ways to receive these tags, as outlined here:&lt;br /&gt;
&lt;br /&gt;
==Import Services==&lt;br /&gt;
* 2. You can use one of the default services to send and receive tags.  You can see a description of the default services [[Rifidi_Services_Jumpstart|here]].  &lt;br /&gt;
You can also see an example of the two services in action in the &amp;quot;Northwind&amp;quot; example (specifically, the &amp;quot;ReadZoneMonitoringService&amp;quot; and the &amp;quot;StableSetService&amp;quot;).  See the developer's guide for an overview of the Northwind example.  The source code for the example (which can be imported as a project) is in the &amp;quot;apps&amp;quot; folder of the SDK. &lt;br /&gt;
&lt;br /&gt;
Taking the ReadZoneMonitoringService as an example, a method will be called on designated classes whenever a tag arrives or departs.  You can find out the ID of this tag (as well as other useful information) and then do whatever you wish with it, including writing the event to a cloud or to social media. &lt;br /&gt;
&lt;br /&gt;
==Create Custom Esper Rules==&lt;br /&gt;
* 3. You can also write your own custom Esper rules, usually in concert with the ReadZoneMonitoringService.  You can find out how to create custom Esper rules at the [[Custom_Esper_Rules_Jumpstart]] page.  &lt;br /&gt;
&lt;br /&gt;
==Add Third Party Libraries==&lt;br /&gt;
* 4. You may need to add a third party library to your app.  Check the [[Adding Third Party Libraries]] page to find out how to do that.  &lt;br /&gt;
&lt;br /&gt;
==Link to Social Media Interface==&lt;br /&gt;
* 5. You can link to a social media interface&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php/Main_Page"/>
				<updated>2012-04-09T21:43:52Z</updated>
		
		<summary type="html">&lt;p&gt;Matt: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width: 100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&lt;br /&gt;
    style=&amp;quot;text-align:center;margin-left:auto;margin-right:auto&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;h1&amp;gt;Welcome&lt;br /&gt;
        to the &amp;lt;strong&amp;gt;RIFIDI Community Wiki&amp;lt;/strong&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;p&amp;gt;RIFIDI is an open source RFID Middleware Platform&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;p&amp;gt;Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin&lt;br /&gt;
        editing. &amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Remove this tr tag to remove the announcement --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &amp;lt;tr&lt;br /&gt;
    style=&amp;quot;text-align:center;margin-left:auto;margin-right:auto&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td colspan=&amp;quot;2&amp;quot; style=&amp;quot;background-color:lightpink&amp;quot;&amp;gt;&amp;lt;h4&amp;gt;Announcing Rifidi Edge Server 1.3.1!!!&amp;lt;/h4&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;p&amp;gt;Version 1.3.1 offers many new features, including an improved LLRP plugin. See [[Version 1.3.1]] for details&amp;lt;/p&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width:80%&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Edge Server&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Getting Started|Getting Started]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[User's Guide | User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Configuration|Configuration]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Console|Console]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Sensor Plugins | Sensor Plugin User's Guide]]&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Installing an Application]]&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Developer&lt;br /&gt;
                Documentation &amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Developer's Guide | Developer's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi Edge Server Application Tutorials]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server API]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Sensor Plugin API]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Architecture|Architecture]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server Development Environment|Setting up a Development Environment]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi App Upgrade Guide|Upgrade a Rifidi App from 1.2 to 1.3]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Edge Server HOWTOs | HOWTOs]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi Services Jumpstart]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Workbench&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Workbench User's Guide|Getting Started]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;quot;&amp;gt;Toolkit&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;User Documentation&amp;lt;/strong&amp;gt; &amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Emulator User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Prototyper User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Tag Streamer User's Guide]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Release Features]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Developer Documentation &amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Emulator documentation summary | Emulator Documentation]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[tag streamer documentation summary | Tag Streamer Documentation]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;Virtual [[Reader Guides]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Development Process| How to Develop Rifidi]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt; [[:Category:developerDoc|browse more developer documents...]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;table border=&amp;quot;0&amp;quot; style=&amp;quot;width:80%&amp;quot;&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Rifidi Suite&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Asset Tracking: An end-to end solution with the Rifidi Platform]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Rifidi roadmap|Rifidi Roadmap]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://rifidi.org/ About Rifidi]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;General Information&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[Developer FAQ]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[[How to Contribute to the Rifidi project]]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td&amp;gt;&amp;lt;p&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
            &amp;lt;tr&amp;gt;&lt;br /&gt;
              &amp;lt;td style=&amp;quot;background-color:rgb(240, 247, 255)&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;text-align:center&amp;quot; &amp;gt;&amp;lt;strong&amp;gt;Useful Links&amp;lt;/strong&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
                &amp;lt;hr&amp;gt;&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Rifidi Project&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://forums.rifidi.org Rifidi Forums]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://trac.rifidi.org/rep-edge-trac/ Rifidi Bug Tracker]&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://svn.rifidi.org/svn/rep-external Rifidi Emulator/Prototyper/Tagstreamer Source SVN]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[https://svn.rifidi.org/svn/rep-edge Rifidi Edge/Workbench Source SVN]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://www.transcends.co Transcends' Website]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
                &amp;lt;p&amp;gt;&amp;lt;strong&amp;gt;Other Projects&amp;lt;/strong&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
                &amp;lt;ul&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/ Spring]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://esper.codehaus.org/about/esper/esper.html Esper]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://help.eclipse.org/galileo/index.jsp Eclipse]&amp;lt;/li&amp;gt;&lt;br /&gt;
                  &amp;lt;li&amp;gt;[http://springsource.com/repository/app/ Spring Enterprise Bundle Repository]&amp;lt;/li&amp;gt;&lt;br /&gt;
                &amp;lt;/ul&amp;gt;&lt;br /&gt;
              &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;/tr&amp;gt;&lt;br /&gt;
        &amp;lt;/table&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;/div&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	</feed>