<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.rifidi.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.rifidi.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andreas</id>
		<title>RifidiWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.rifidi.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andreas"/>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Special:Contributions/Andreas"/>
		<updated>2026-06-03T16:28:12Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Development_and_Release_Process</id>
		<title>Development and Release Process</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Development_and_Release_Process"/>
				<updated>2009-03-31T12:37:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes the development and release processes for the products in the Rifidi Suite as well as various conventions that developers should be following.  This document is intended for developers who are fairly familiar with the Rifidi code base, especially with eclipse and OSGi concepts.&lt;br /&gt;
=Goals=&lt;br /&gt;
# Standardize the development and release processes for Rifidi Developers&lt;br /&gt;
# Enable a relatively lightweight release process that is able to be extended later by a fully automatic build tool like maven&lt;br /&gt;
# Define a common set of conventions to use when checking in, checking out, and tagging code.&lt;br /&gt;
&lt;br /&gt;
This document is not intended to be a &amp;quot;how to&amp;quot; guide for eclipse, but rather to define some common operating procedures around how code is developed and released in the Rifidi project&lt;br /&gt;
&lt;br /&gt;
=Concepts=&lt;br /&gt;
==Target Platforms==&lt;br /&gt;
===About Target Platforms===&lt;br /&gt;
A target platform is the set of base plugins that your application depends on.  Normally when you build a project in eclipse that uses eclipse functionality (SWT, JFace, etc), eclipse gets that functionality from the plugins and features folder located in you eclipse installation.  Therefore it is using your eclipse base installation as your target platform.  However, it is possible to define your own target platform for the application you are building rather than relying on the default one.  Doing this is useful for several reasons&lt;br /&gt;
# It creates a separation between the plugins you use in your developing environment and the plugins used by your application.  This means that you can, for example, upgrade the eclipse you use as your IDE without upgrading the plugins used by your application.  Also, you can add plugins to your application without using them in your IDE.  For example suppose you want to use the GEF bundles in your application, but you don't want them inside your eclipse development environment.&lt;br /&gt;
# A closely related advantage is that you can limit the plugins that are available to your application.  If you use the base eclipse installation as your target platform, all of the plugins are available to your application.  This makes it easy for application developers to simply add dependencies as they like.  However, because an added dependency often means changes to other things, such as build processes, adding bundle dependencies should require some deliberation.  Having a target platform simply makes bundle dependencies more explicit.&lt;br /&gt;
# It is possible to place more than just eclipse base plugins in the custom target platform.  You can put bundles in there that you have built that are required for you application.  This means that you could put, for example, tagged, stable versions of all of the plugins in your application in your target platform.  Then when you need to modify a plugin, you can check out the source code from svn.  Because eclipse will look in your workspace before it looks in your target platform, it will find that plugin first.  This means developers only have to check out code for bundles that they want to modify, which forces him to think about the code that he wants to write.  It also means that, because the code in the target platform is tagged and stable, that if one developer checks in code with a change in it that breaks another plugin, that other developers can continue developing with the stable bundles in the target platform.&lt;br /&gt;
===Target Platforms in Rifidi===&lt;br /&gt;
Each major Rifidi project in the Rifidi suite should have its own target platform.  For example, there is a target platform called &amp;lt;code&amp;gt;org.rifidi.emulator.target&amp;lt;/code&amp;gt;.  There should be a directory in the target platform called &amp;lt;code&amp;gt;rifidi&amp;lt;/code&amp;gt; where all the bundle binaries that are required for that particular project. In addition there are various target platforms used for deploying products, such as &amp;lt;code&amp;gt;org.rifidi.rcp.target&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Bundle Versioning==&lt;br /&gt;
All bundles in OSGi have version numbers, with the following form 1.2.3, where 1 is the major version, 2 is the minor version, and 3 is the point version.  The Rifidi project uses the following conventions:&lt;br /&gt;
# The '''major''' version should be increased only if there is a major API change for the bundle.  A major version change usually involve a change that would break another plugin, for example, changing a method signature. A good rule of thumb is that if bundle X depends on bundle Y and bundle X was modified as a result of the changes to bundle Y, then bundle Y had a major API change.  For example, suppose bundle Y has a method called &amp;lt;code&amp;gt;foo()&amp;lt;/code&amp;gt;.  Suppose bundle X, for some reason, needs to pass in a string to &amp;lt;code&amp;gt;foo()&amp;lt;/code&amp;gt;.  So you modify &amp;lt;code&amp;gt;foo()&amp;lt;/code&amp;gt; to become &amp;lt;code&amp;gt;foo(String string)&amp;lt;/code&amp;gt;.  This was a major change in bundle Y.&lt;br /&gt;
# The '''minor''' version should be increased if there is a minor API change.  A minor API change is something that would not break existing compatibility with dependent bundles.  For example, adding a method signature to a class, or adding more functionality to the bundle in the form of classes is a minor API change.  The key difference between a minor and a major API change is that a minor API change will not cause other bundles that depend on it to break.&lt;br /&gt;
# The '''point''' version should be increased for small internal changes and bug fixes.  These changes do not involve the bundle's API.&lt;br /&gt;
&lt;br /&gt;
Note that it is not necessary to change the version numbers any time you submit.  It is only necessary to modify the version numbers if the changes are relatively well tested and stable.  For example, you might want to make some changes then submit the changes back to the trunk for another developer to look at, test, or modify. ''If you don't expect to make any further changes to the code, then you should modify then version number''&lt;br /&gt;
&lt;br /&gt;
==Dependencies==&lt;br /&gt;
In OSGi there are two ways of specifying dependencies.  &lt;br /&gt;
#'''Require-Bundle''' should be used for dependencies to bundles that contain code which is written for the Rifidi project. Usually, this is anything that begins with &amp;lt;code&amp;gt;org.rifidi.*&amp;lt;/code&amp;gt;.&lt;br /&gt;
#'''Import-Package''' should be used for for dependencies to bundles that do not contain code that is maintained by the Rifidi project, for example, to third party libraries such as log4j, cajo, or eclipse base plugins such as SWT or GEF.  It is also possible to find certain third party libraries that have already been made into a plugin at the eclipse [http://www.eclipse.org/orbit/overview.php eclipse orbit project].  &lt;br /&gt;
&lt;br /&gt;
The advantage to using Import-Package over Require-Bundle is that Import-Package is more flexible.  The plugin is more flexible because it could use any loaded OSGi bundle that exposes that particular plugin with the given version constraints.  In addition, because importing packages is more granular than requiring bundles, it makes the developer think a little more about the dependencies his is using.&lt;br /&gt;
&lt;br /&gt;
In both Require-Bundle and Import-Package dependencies, the minimum version ''must'' be specified.  It is also recommended that the maximum version be specified as well.  This is because it is possible for more than one bundle with the same name but different versions to be loaded by OSGi during runtime.  So if an incorrect version of a bundle is already loaded, but the bundle that requires that bundle does not specify the version it needs, bad things might happen.  &lt;br /&gt;
&lt;br /&gt;
A good way to specify versions is to have the minimum version be inclusive and the maximum version be exclusive.  For example, if the minimum version is set to 2.2.0 inclusive and the maximum version is 2.3.0 exclusive, then any version starting with 2.2 is acceptable.  This makes sense, because we have adopted a versioning scheme where the minor version number signifies a minor API change.&lt;br /&gt;
&lt;br /&gt;
==SVN Structure==&lt;br /&gt;
There are four repositories used in Rifidi:&lt;br /&gt;
* &amp;lt;code&amp;gt;rep-external&amp;lt;/code&amp;gt; - main repository for Rifidi development&lt;br /&gt;
* &amp;lt;code&amp;gt;rep-internal&amp;lt;/code&amp;gt; - repository to hold code that is necessary, but that should not be released&lt;br /&gt;
* &amp;lt;code&amp;gt;rep-edge&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;sandbox&amp;lt;/code&amp;gt; - repository to hold projects for playing around with&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;code&amp;gt;rep-external&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rep-edge&amp;lt;/code&amp;gt; are the main repositories for Rifidi development. They have the following structure:&lt;br /&gt;
&lt;br /&gt;
*'''org.rifidi.binary'''&lt;br /&gt;
*: A project containing all the bundles as binaries for rifidi.  It is used so that you don't have to check out the code when developing or releasing&lt;br /&gt;
* '''readme''' &lt;br /&gt;
*:a project that contains a text file that describes what all the bundles in trunk are used for&lt;br /&gt;
* '''rifidi'''&lt;br /&gt;
*: The code for the Rifidi project&lt;br /&gt;
** '''branches'''&lt;br /&gt;
*: If a developer want to add a major feature that requires alot of time, and he wants to check the code into the svn before he is ready to integrate the code back into the trunk, he can check the code into the branches directory&lt;br /&gt;
** '''tags'''&lt;br /&gt;
**: When a stable version of a bundle is reached, the code should be placed in a sub directory that has the name of the bundle's version.  See [[Development and Release Process#Tags| Tags]] for a description of when to create a new tag&lt;br /&gt;
*** '''org.rifidi.bundle.a'''&lt;br /&gt;
**** 1.0.0 - contains eclipse project&lt;br /&gt;
**** 1.1.0 - contains eclipse project&lt;br /&gt;
**** 2.0.0 - contains eclipse project&lt;br /&gt;
*** '''org.rifidi.bundle.b'''&lt;br /&gt;
**** 1.0.0 - contains eclipse project&lt;br /&gt;
** '''trunk'''&lt;br /&gt;
**: The trunk contains the latest code for each bundle.  It might be unstable.  All changes to code should be made to the bundles located in the trunk&lt;br /&gt;
*** org.rifidi.bundle.a - contains eclipse project&lt;br /&gt;
*** org.rifidi.bundle.b - contains eclipse project&lt;br /&gt;
&lt;br /&gt;
==Tags==&lt;br /&gt;
The purpose of tagging a bundle is to save the code at a stable point so that future changes can be reversed if they introduce a bug that older versions did not have.  A new tag ''must'' be created in svn when either the major or the minor version number of the plugin is incremented.  It is not required to create a new tag when the point version number is incremented, but it is ok to do so.&lt;br /&gt;
&lt;br /&gt;
==Product File==&lt;br /&gt;
A product file defines the required plugins for a particular project.  It is used to build the project.  It is important to keep this file updated as new plugins are added or old ones are removed.&lt;br /&gt;
&lt;br /&gt;
=Processes=&lt;br /&gt;
This section defines a few procedures that should be followed when developing code for the Rifidi project&lt;br /&gt;
==Setting up a development environment==&lt;br /&gt;
# Download the target platform for the project you are working with.  For example, if you are developing a plugin for emulator, you would download the target platform for emulator&lt;br /&gt;
# Download &amp;lt;code&amp;gt;org.rifidi.binary&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download any bundles that you need to modify.  For example, if you are making changes to the alien reader, download &amp;lt;code&amp;gt;org.rifidi.emulator.reader.alien&amp;lt;/code&amp;gt;&lt;br /&gt;
# Set the target platform as the target platform for the workspace&lt;br /&gt;
# Clean the workspace&lt;br /&gt;
&lt;br /&gt;
==Modifying an Existing Bundle==&lt;br /&gt;
Suppose you have modified an existing bundle and the changes are relatively stable and tested, and you are ready to integrate them back in with the rest of the project.&lt;br /&gt;
&lt;br /&gt;
# If the changes you have made require a version change make sure that is done&lt;br /&gt;
# If you had to change the major or the minor version number, create a new svn tag for the plugin.&lt;br /&gt;
# Export the bundle as a binary bundle using the export wizard on the Manifest.MF file for the plugin&lt;br /&gt;
# Add the bundle to &amp;lt;code&amp;gt;org.rifidi.binary&amp;lt;/code&amp;gt;&lt;br /&gt;
# Submit bundle changes and target platform changes back to trunk.&lt;br /&gt;
&lt;br /&gt;
If you have made changes to a bundle but are not ready to integrate them back with the rest of the project, you can do one of two things:&lt;br /&gt;
# Submit them back to the trunk, but don't change the version numbers.  This is ok to do because everyone else should be using tagged stable bundles in the target platform.&lt;br /&gt;
# Create a folder in the branches directory and put it there.  Only do this if multiple developers are modifying the same plugin at the same time.&lt;br /&gt;
&lt;br /&gt;
==Creating a new Bundle==&lt;br /&gt;
To create a new bundle called &amp;lt;code&amp;gt;org.rifidi.xyz&amp;lt;/code&amp;gt;:&lt;br /&gt;
# Create a new plugin project with the name &amp;lt;code&amp;gt;org.rifidi.xyz&amp;lt;/code&amp;gt;&lt;br /&gt;
# In the Manifest.MF file&lt;br /&gt;
## Add 'Pramari, LLC' as the provider&lt;br /&gt;
## Give the bundle a name such as 'Rifidi xyz'.  It is important that the first word is 'Rifidi' so that all bundles created as a part of the Rifidi project are easy to locate when there are alot of bundles installed as part of an eclipse installation.&lt;br /&gt;
# Write the code for the plugin&lt;br /&gt;
# Follow the steps for [[Development and Release Process#Modifying and Existing Bundle| Modifying and Existing Bundle]]&lt;br /&gt;
# If you tagged the bundle and added it to the target platform, then make sure you add the new bundle and its dependencies to the product file&lt;br /&gt;
# Add an entry to the readme project at the top level of the svn&lt;br /&gt;
&lt;br /&gt;
==Releasing a Product==&lt;br /&gt;
# Download the rifidi build target platform and set it as the target platform for your workspace&lt;br /&gt;
# Download the project that contains the product file for the project you are trying to build&lt;br /&gt;
# Export the project using the export wizard&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Main_Page"/>
				<updated>2008-05-07T17:47:01Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 100%; margin-top: -0.2em;&amp;quot; id=&amp;quot;mp&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-right: 13.8em;&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;search&amp;quot; style=&amp;quot;border-bottom: 1px solid rgb(255, 204, 102); margin-bottom: 0.9em; background-color: rgb(240, 247, 255); background-repeat: no-repeat; background-position: right top;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div id=&amp;quot;book&amp;quot; style=&amp;quot;padding: 1em 0pt 0.6em; bakground-repeat: no-repeat background-position: 0% 20%;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;h1 style=&amp;quot;border: medium none ; margin: Opt; padding: Opt; font-size: 175%;&amp;quot;&amp;gt;&lt;br /&gt;
			Welcome&amp;amp;nbsp;to&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;b&amp;gt;RIFIDI Community Wiki&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;[[RIFIDI]] is an open source [[RFID Environment Emulation]] tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;'''Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin editing.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div style=&amp;quot;clear: left; height: 1px; overflow: hidden;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: left; width: 50%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for users&amp;lt;/h2&amp;gt;&lt;br /&gt;
           &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[FAQ |Frequently Asked Questions]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Designer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Tag Streamer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Release Features]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Reader Guides]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255);margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
		&amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Rifidi roadmap|Rifidi Roadmap]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[designer documentation summary | Designer Documentation]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[tag streamer documentation summary | Tag Streamer Documentation]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;      &lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Developer FAQ]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;    &lt;br /&gt;
			&amp;lt;li syle = &amp;quot;margin 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Style Guide]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Compiling Rifidi with JDK 6.0 update 4]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;              &lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;b&amp;gt;[[:Category:developerDoc|browse more developer documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Project Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
		&amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[http://www.rifidi.org Rifidi's Home Page]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[https://67.207.137.86/svn/rep-external Rifidi Source SVN]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[http://www.pramari.com Pramari's Website]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Idea box&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Rifidi:implementationIdeas|Implementation Ideas]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Rifidi:loading|Loading]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Useful Links]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Eclipse Tips]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;b&amp;gt;[[:Category:ideaBox| browse more ideas...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
        &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;New Developer Documentation (Proposal)&amp;lt;/h2&amp;gt;&lt;br /&gt;
		&amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Developers:howtoUseSVN|How to use SVN]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Main_Page"/>
				<updated>2008-05-07T17:45:37Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__ &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 100%; margin-top: -0.2em;&amp;quot; id=&amp;quot;mp&amp;quot;&amp;gt; &lt;br /&gt;
&amp;lt;div style=&amp;quot;margin-right: 13.8em;&amp;quot;&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;search&amp;quot; style=&amp;quot;border-bottom: 1px solid rgb(255, 204, 102); margin-bottom: 0.9em; background-color: rgb(240, 247, 255); background-repeat: no-repeat; background-position: right top;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div id=&amp;quot;book&amp;quot; style=&amp;quot;padding: 1em 0pt 0.6em; bakground-repeat: no-repeat background-position: 0% 20%;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;h1 style=&amp;quot;border: medium none ; margin: Opt; padding: Opt; font-size: 175%;&amp;quot;&amp;gt;&lt;br /&gt;
			Welcome&amp;amp;nbsp;to&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;b&amp;gt;RIFIDI Community Wiki&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;[[RIFIDI]] is an open source [[RFID Environment Emulation]] tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
			&amp;lt;p&amp;gt;'''Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin editing.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
		&amp;lt;/div&amp;gt;&lt;br /&gt;
		&amp;lt;div style=&amp;quot;clear: left; height: 1px; overflow: hidden;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: left; width: 50%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for users&amp;lt;/h2&amp;gt;&lt;br /&gt;
           &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[FAQ |Frequently Asked Questions]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Designer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Tag Streamer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Release Features]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Reader Guides]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255);margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
		&amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Rifidi roadmap|Rifidi Roadmap]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[designer documentation summary | Designer Documentation]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[tag streamer documentation summary | Tag Streamer Documentation]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;      &lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Developer FAQ]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;    &lt;br /&gt;
			&amp;lt;li syle = &amp;quot;margin 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Style Guide]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Compiling Rifidi with JDK 6.0 update 4]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;              &lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
		&amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;b&amp;gt;[[:Category:developerDoc|browse more developer documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
		&amp;lt;/p&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Project Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
		&amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[http://www.rifidi.org Rifidi's Home Page]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[https://67.207.137.86/svn/rep-external Rifidi Source SVN]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[http://www.pramari.com Pramari's Website]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Idea box&amp;lt;/h2&amp;gt;&lt;br /&gt;
        &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Rifidi:implementationIdeas|Implementation Ideas]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Rifidi:loading|Loading]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Rifidi:codingIdeas|Coding Ideas]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Useful Links]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
		[[Eclipse Tips]]&lt;br /&gt;
		&amp;lt;/li&amp;gt;&lt;br /&gt;
        &amp;lt;/ul&amp;gt;&lt;br /&gt;
        &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
        	&amp;lt;b&amp;gt;[[:Category:ideaBox| browse more ideas...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
        &amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;New Developer Documentation (Proposal)&amp;lt;/h2&amp;gt;&lt;br /&gt;
		&amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
			[[Developers:howtoUseSVN|How to use SVN]]&lt;br /&gt;
			&amp;lt;/li&amp;gt;&lt;br /&gt;
		&amp;lt;/ul&amp;gt;&lt;br /&gt;
	&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Main_Page"/>
				<updated>2008-05-07T17:28:04Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: Reverted edits by Andreas (Talk); changed back to last version by Prasith&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 100%; margin-top: -0.2em;&amp;quot; id=&amp;quot;mp&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;margin-right: 13.8em;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;search&amp;quot; style=&amp;quot;border-bottom: 1px solid rgb(255, 204, 102); margin-bottom: 0.9em; background-color: rgb(240, 247, 255); background-repeat: no-repeat; background-position: right top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;book&amp;quot; style=&amp;quot;padding: 1em 0pt 0.6em; bakground-repeat: no-repeat background-position: 0% 20%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;h1 style=&amp;quot;border: medium none ; margin: Opt; padding: Opt; font-size: 175%;&amp;quot;&amp;gt;&lt;br /&gt;
     Welcome&amp;amp;nbsp;to&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;b&amp;gt;RIFIDI Community Wiki&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;[[RIFIDI]] is an open source [[RFID Environment Emulation]] tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;'''Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin editing.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: left; height: 1px; overflow: hidden;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: left; width: 50%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for users&amp;lt;/h2&amp;gt;&lt;br /&gt;
           &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[FAQ |Frequently Asked Questions]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Designer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Tag Streamer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Release Features]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Reader Guides]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255);margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi roadmap|Rifidi Roadmap]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[designer documentation summary | Designer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[tag streamer documentation summary | Tag Streamer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Developer FAQ]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;    &lt;br /&gt;
      &amp;lt;li syle = &amp;quot;margin 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
        [[Style Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Compiling Rifidi with JDK 6.0 update 4]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;              &lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:developerDoc|browse more developer documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Idea box&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:implementationIdeas|Implementation Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:loading|Loading]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:codingIdeas|Coding Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Useful Links]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Eclipse Tips]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:ideaBox| browse more ideas...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Project Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.rifidi.org Rifidi's Home Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [https://67.207.137.86/svn/rep-external Rifidi Source SVN]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.pramari.com Pramari's Website]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;General Wiki Information&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://meta.wikimedia.org/wiki/Help:Contents User's Guide]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:wiki|browse more wiki Links...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;New Developer Documentation (Proposal)&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Developers:howtoUseSVN|How to use SVN]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Main_Page"/>
				<updated>2008-05-07T17:26:56Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 100%; margin-top: -0.2em;&amp;quot; id=&amp;quot;mp&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;margin-right: 13.8em;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;search&amp;quot; style=&amp;quot;border-bottom: 1px solid rgb(255, 204, 102); margin-bottom: 0.9em; background-color: rgb(240, 247, 255); background-repeat: no-repeat; background-position: right top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;book&amp;quot; style=&amp;quot;padding: 1em 0pt 0.6em; bakground-repeat: no-repeat background-position: 0% 20%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;h1 style=&amp;quot;border: medium none ; margin: Opt; padding: Opt; font-size: 175%;&amp;quot;&amp;gt;&lt;br /&gt;
     Welcome&amp;amp;nbsp;to&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;b&amp;gt;RIFIDI Community Wiki&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;[[RIFIDI]] is an open source [[RFID Environment Emulation]] tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;'''Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin editing.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: left; height: 1px; overflow: hidden;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: left; width: 50%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for users&amp;lt;/h2&amp;gt;&lt;br /&gt;
           &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[FAQ |Frequently Asked Questions]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Designer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Tag Streamer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Release Features]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Reader Guides]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255);margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi roadmap|Rifidi Roadmap]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[designer documentation summary | Designer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[tag streamer documentation summary | Tag Streamer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Developer FAQ]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;    &lt;br /&gt;
      &amp;lt;li syle = &amp;quot;margin 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
        [[Style Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Compiling Rifidi with JDK 6.0 update 4]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;              &lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:developerDoc|browse more developer documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Project Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.rifidi.org Rifidi's Home Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [https://svn.rifidi.org/svn/rep-external Rifidi Source SVN]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.pramari.com Pramari's Website]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Idea box&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:implementationIdeas|Implementation Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:loading|Loading]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:codingIdeas|Coding Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Useful Links]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Eclipse Tips]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:ideaBox| browse more ideas...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;New Developer Documentation (Proposal)&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Developers:howtoUseSVN|How to use SVN]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Main_Page"/>
				<updated>2008-05-07T17:25:03Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 100%; margin-top: -0.2em;&amp;quot; id=&amp;quot;mp&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;margin-right: 13.8em;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;search&amp;quot; style=&amp;quot;border-bottom: 1px solid rgb(255, 204, 102); margin-bottom: 0.9em; background-color: rgb(240, 247, 255); background-repeat: no-repeat; background-position: right top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;book&amp;quot; style=&amp;quot;padding: 1em 0pt 0.6em; bakground-repeat: no-repeat background-position: 0% 20%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;h1 style=&amp;quot;border: medium none ; margin: Opt; padding: Opt; font-size: 175%;&amp;quot;&amp;gt;&lt;br /&gt;
     Welcome&amp;amp;nbsp;to&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;b&amp;gt;RIFIDI Community Wiki&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;[[RIFIDI]] is an open source [[RFID Environment Emulation]] tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;'''Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin editing.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: left; height: 1px; overflow: hidden;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: left; width: 50%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for users&amp;lt;/h2&amp;gt;&lt;br /&gt;
           &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[FAQ |Frequently Asked Questions]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Designer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Tag Streamer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Release Features]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Reader Guides]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255);margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi roadmap|Rifidi Roadmap]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[designer documentation summary | Designer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[tag streamer documentation summary | Tag Streamer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Developer FAQ]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;    &lt;br /&gt;
      &amp;lt;li syle = &amp;quot;margin 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
        [[Style Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Compiling Rifidi with JDK 6.0 update 4]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;              &lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:developerDoc|browse more developer documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Idea box&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:implementationIdeas|Implementation Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:loading|Loading]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:codingIdeas|Coding Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Useful Links]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Eclipse Tips]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:ideaBox| browse more ideas...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Project Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.rifidi.org Rifidi's Home Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [https://svn.rifidi.org/svn/rep-external Rifidi Source SVN]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.pramari.com Pramari's Website]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;General Wiki Information&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://meta.wikimedia.org/wiki/Help:Contents User's Guide]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:wiki|browse more wiki Links...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;New Developer Documentation (Proposal)&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Developers:howtoUseSVN|How to use SVN]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Tag_Streamer_User%27s_Guide_1.1</id>
		<title>Tag Streamer User's Guide 1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Tag_Streamer_User%27s_Guide_1.1"/>
				<updated>2008-04-30T21:49:23Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Run TestSuite form Command Line */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Purpose=&lt;br /&gt;
Tag Streamer is a load testing tool for edge servers.  It allows the user to create multiple virtual readers, chain them together in some way, and add batches of tags to the readers based on patterns.  Furthermore, because the readers can exist on different physical hosts, Tag Streamer can distribute its load among several machines.  The Tag Streamer UI allows users to rapidly construct the necessary xml files for a test suite.  In addition, it allows the user to easily run test suites.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This section will help you get started running Tag Streamer 1.1&lt;br /&gt;
==Requirements==&lt;br /&gt;
*Microsoft Windows 2000/XP/2003 or Linux (Ubuntu, Red Hat, SuSe)&lt;br /&gt;
*Sun Java Runtime Environment 1.6 update 4 or greater (Tag Streamer 2.0 will not work with previous versions of the JRE)&lt;br /&gt;
==Installation==&lt;br /&gt;
There are two ways to run Tag Streamer:&lt;br /&gt;
*Download the release from sourceforge (http://sourceforge.net/project/showfiles.php?group_id=170933)&lt;br /&gt;
** Double click on the installer and click next until it is installed&lt;br /&gt;
** Double click on the executable to run Tag Streamer&lt;br /&gt;
*Download the latest code from our external [[Rifidi:Source_Code | svn]]&lt;br /&gt;
** Once the code is downloaded into eclipse, right click on the Tag Streamer product file and select Run As-&amp;gt;Eclipse Application&lt;br /&gt;
&lt;br /&gt;
=Tag Streamer Concepts=&lt;br /&gt;
==Test Suite==&lt;br /&gt;
A Test Suite is a collection of four elements that define a particular simulation run of Tag Streamer.  Conceptually, a Test Suite represents a particular configuration of readers and tag load that the user would like simulate.  For example, a test suite could represent the receiving dock doors at a distribution center; the distribution center has four dock doors that are independent; tags seen by reader at dock door 1 will not be seen by the reader at dock door 2.  In addition tags are seen in bursts, as workers unload the trucks with fork lifts.  All this information is captured within a Test Suite.&lt;br /&gt;
&lt;br /&gt;
A Test Suite can be completely created within Tag Streamer and saved as an XML.  In addition, a user can load a previously saved Test Suite, edit it and save it again.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
Components are the emulated devices in a test suite simulation.  At this time the only components are virtual RFID readers, but in the future there could be other kinds of components that could act in the simulation, such as electric eyes, barriers, or push arms.  the important thing about components are that they represent a ''physical'' configuration for the objec; the component defines configuration information for the reader such as its IP, port, number of antennas and GPI/O ports, etc.  It does not contain any information about how the reader is used.&lt;br /&gt;
===Scenarios===&lt;br /&gt;
Scenarios define a linear flow path of components.  For example a scenario having two readers in it could represent an assembly line with two readers where tags seen by reader 1 will be seen by reader 2 at some later time.  Scenarios are made up of ''path items'', where each path item has a component  (i.e. reader) and also a travel time to the next component in the scenario.  This allows us to specify the number of milliseconds that it would tags to travel from reader 1 to reader 2.&lt;br /&gt;
===Batches===&lt;br /&gt;
Batches are a sequence of patterns of actions that happen on a reader.  For example, a batch cause 20 C1G2 tags to be shown to a reader for 500 milliseconds, then wait for 5 seconds, then cause a GPI port to go high for 5 seconds.  The important thing to note about batches is that they define a pattern that can be applied to any reader.  In other words, batches do ''not'' define on which reader they are applied.  This information is left up the the Test Unit.&lt;br /&gt;
There are three basic units called ''actions''&lt;br /&gt;
;Tag Action&lt;br /&gt;
:The tag action defines a pattern of tags that is shown to a reader.  For example, 10 Gen 1 tags are placed in the reader's field of view for 5 seconds.  Currently, every time that a tag action executes, the tags are regenerated according to the defined pattern.  This means that if &amp;lt;tt&amp;gt;Reader1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Reader2&amp;lt;/tt&amp;gt; both see a particular tag action, they will see different tags (i.e. the ids will be different).&lt;br /&gt;
;GPI Action&lt;br /&gt;
:The GPI action will set a certain GPI port either high or low for a certain amount of time.  For example a GPI Action might be to set GPI port 3 high for 10 seconds.&lt;br /&gt;
;Wait Action&lt;br /&gt;
:A wait Action is simply a wait time between actions.&lt;br /&gt;
&lt;br /&gt;
The other important aspect about batches is that they are ''sequences'' of actions.  That is, a particular batch can have an arbitrary number of actions inside of it that are executed in order.  For example, a batch can have a GPI action followed by a tag action followed by another GPI action.&lt;br /&gt;
&lt;br /&gt;
===Test Unit===&lt;br /&gt;
The Test Unit combines the previous three elements into a runnable simulation.  It short, it simply makes the connection between scenarios and batches. Each batch-scenario pair is run in parallel.  For example, if a user defines two scenarios and two batches, the Test Unit associates a batch with a scenario.  Then, when this test unit is run, it will start both batch-scenario pairs at the same time.&lt;br /&gt;
&lt;br /&gt;
In addition the Test Unit defines the number of iterations that batches should execute on a scenario.  For example, a batch may run on the scenario just once; in this case the simulation would be finished when the last action in the batch executes on the final reader in the scenario.  In another case, the user may set the number of runs to infinity, so that the batch keeps executing on the scenario.&lt;br /&gt;
&lt;br /&gt;
==Interaction between elements==&lt;br /&gt;
//TODO: insert a diagram depicting how the four elements work together&lt;br /&gt;
&lt;br /&gt;
=Using Tag Streamer=&lt;br /&gt;
This section will give step-by-step instructions on how to use Tag Streamer.&lt;br /&gt;
==Components==&lt;br /&gt;
Components are the descriptions of physical readers.  It gives information such as IP, number of antennas, etc.&lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Component Wizard&amp;quot;&lt;br /&gt;
# Select a type of reader and an unused Component ID in the New Component Wizard&lt;br /&gt;
# Finish creating the reader&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-component-select.png|300px|thumb|left|Select new component wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-component-new.png|300px|thumb|left|Select a type of reader]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-component-new-alien.png|300px|thumb|left| select properties for the reader]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing components:&lt;br /&gt;
# Select the component you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
[[Image:ts-component-edit.png|300px|thumb|none|Edit Components]]&lt;br /&gt;
&lt;br /&gt;
==Scenarios==&lt;br /&gt;
Scenarios are paths of components along which batches flow.  For example, if we have three readers (reader_A, reader_B, and reader_C), we can define a scenario as &lt;br /&gt;
&amp;lt;pre&amp;gt; reader_C -&amp;gt; reader_A -&amp;gt; reader_B&amp;lt;/pre&amp;gt;&lt;br /&gt;
which means that tags will be initially seen by reader_C, then by reader_A, and finally by reader_A.&lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Scenario Wizard&amp;quot;&lt;br /&gt;
# Add Components to the scenario&lt;br /&gt;
## The component ID is the ID number of the component you wish to add&lt;br /&gt;
## The travel time is the amount of time after the batch items have finished executing on the reader before they appear on the next reader&lt;br /&gt;
## The Antenna is the antenna number that tags should be added to when they enter this component&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-scenario-select.png|300px|thumb|left|Select new scenario wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-scenario-new.png|300px|thumb|left|Add components to the scenario]]&lt;br /&gt;
|}&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing scenarios:&lt;br /&gt;
# Select the scenario you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
[[Image:ts-scenario-edit.png|300px|thumb|none|Edit Scenario]]&lt;br /&gt;
==Batches==&lt;br /&gt;
A batch is a pattern of actions that will act on a component.  The available pattern types are:&lt;br /&gt;
#Tag Patterns, called Tag Actions&lt;br /&gt;
#GPI Patterns, called GPI Actions&lt;br /&gt;
#Wait Patterns, called Wait Actoin&lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Batch Wizard&amp;quot;&lt;br /&gt;
# Add Actions to the Batch (at least one Tag, GPI, or Wait action is required)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-batch-new.png|300px|thumb|left|Select new batch wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-batch-tagAction.png|300px|thumb|left|Add tag actions to the batch]]&lt;br /&gt;
||&lt;br /&gt;
|[[Image:Ts-batch-GPIAction.png|300px|thumb|left|Add GPI actions to the batch]]&lt;br /&gt;
||&lt;br /&gt;
|[[Image:Ts-batch-waitAction.png|300px|thumb|left|Add wait actions to the batch]]&lt;br /&gt;
|}&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing batches&lt;br /&gt;
# Select the batch you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
# Make sure to click the save button after you finish editing&lt;br /&gt;
[[Image:ts-batch-edit.png|300px|thumb|none|Edit Batches]]&lt;br /&gt;
==Test Unit==&lt;br /&gt;
Test Units match up scenarios to batches and are the &amp;quot;executable&amp;quot; part of a Tag Streamer file. &lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Test Unit Wizard&amp;quot;&lt;br /&gt;
# Add at least one batch-scenario pair&lt;br /&gt;
# Optionally add wait actions so that the batch will pause before moving on to the next batch-scenario pair&lt;br /&gt;
# Select the number of repetitions (anywhere from 1 to infinity)&lt;br /&gt;
# If you want wait times before or after the test unit begins execution, fill in the pre and post wait times.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-testunit-select.png|300px|thumb|left|Select new test unit wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-testunit-new.png|300px|thumb|left|Add a batch-scenario pair]]&lt;br /&gt;
|}&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing Test Units:&lt;br /&gt;
# Select the test unit you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
# Make sure to click the save button after you change settings&lt;br /&gt;
[[Image:ts-testunit-edit.png|300px|thumb|none|Edit Test Unit]]&lt;br /&gt;
===Save===&lt;br /&gt;
If you wish to save the test suite that you made for future use: &lt;br /&gt;
# Click File-&amp;gt;Save Test Suite&lt;br /&gt;
# Choose a file name and a directory&lt;br /&gt;
&lt;br /&gt;
===Load===&lt;br /&gt;
If you wish to load a previously saved Test Suite:&lt;br /&gt;
# Click File-&amp;gt;Load&lt;br /&gt;
# Select the test suite file (xml) that you wish to load&lt;br /&gt;
&lt;br /&gt;
==Run Test Suite==&lt;br /&gt;
To run a test suite:&lt;br /&gt;
#Highlight the test unit that you wish to run in the tree on the right&lt;br /&gt;
#Click the run button() at the top ([[Image:Ts-Start.png]])&lt;br /&gt;
[[Image:ts-testunit-start.png|300px|thumb|none|Start Test Unit]]&lt;br /&gt;
&lt;br /&gt;
=== Run a TestSuite from command line ===&lt;br /&gt;
&lt;br /&gt;
Since version 1.1 of Rifidi TagStreamer it is also possible to run a previously created TestSuite File (XML) via command line. There are two arguments you need to specify for the execution these are the TestSuite save file and the ID of the TestSuite you want to execute.&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TagStreamer.exe [Filename] [#ID of TestUnit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
for example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TagStreamer.exe C:/temp/streamer.xml 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sample Test Suites=&lt;br /&gt;
==Assembly Line==&lt;br /&gt;
==Dock Door==&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Tag_Streamer_User%27s_Guide_1.1</id>
		<title>Tag Streamer User's Guide 1.1</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Tag_Streamer_User%27s_Guide_1.1"/>
				<updated>2008-04-30T21:44:50Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Run Test Suite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Purpose=&lt;br /&gt;
Tag Streamer is a load testing tool for edge servers.  It allows the user to create multiple virtual readers, chain them together in some way, and add batches of tags to the readers based on patterns.  Furthermore, because the readers can exist on different physical hosts, Tag Streamer can distribute its load among several machines.  The Tag Streamer UI allows users to rapidly construct the necessary xml files for a test suite.  In addition, it allows the user to easily run test suites.&lt;br /&gt;
&lt;br /&gt;
=Getting Started=&lt;br /&gt;
This section will help you get started running Tag Streamer 1.1&lt;br /&gt;
==Requirements==&lt;br /&gt;
*Microsoft Windows 2000/XP/2003 or Linux (Ubuntu, Red Hat, SuSe)&lt;br /&gt;
*Sun Java Runtime Environment 1.6 update 4 or greater (Tag Streamer 2.0 will not work with previous versions of the JRE)&lt;br /&gt;
==Installation==&lt;br /&gt;
There are two ways to run Tag Streamer:&lt;br /&gt;
*Download the release from sourceforge (http://sourceforge.net/project/showfiles.php?group_id=170933)&lt;br /&gt;
** Double click on the installer and click next until it is installed&lt;br /&gt;
** Double click on the executable to run Tag Streamer&lt;br /&gt;
*Download the latest code from our external [[Rifidi:Source_Code | svn]]&lt;br /&gt;
** Once the code is downloaded into eclipse, right click on the Tag Streamer product file and select Run As-&amp;gt;Eclipse Application&lt;br /&gt;
&lt;br /&gt;
=Tag Streamer Concepts=&lt;br /&gt;
==Test Suite==&lt;br /&gt;
A Test Suite is a collection of four elements that define a particular simulation run of Tag Streamer.  Conceptually, a Test Suite represents a particular configuration of readers and tag load that the user would like simulate.  For example, a test suite could represent the receiving dock doors at a distribution center; the distribution center has four dock doors that are independent; tags seen by reader at dock door 1 will not be seen by the reader at dock door 2.  In addition tags are seen in bursts, as workers unload the trucks with fork lifts.  All this information is captured within a Test Suite.&lt;br /&gt;
&lt;br /&gt;
A Test Suite can be completely created within Tag Streamer and saved as an XML.  In addition, a user can load a previously saved Test Suite, edit it and save it again.&lt;br /&gt;
&lt;br /&gt;
===Components===&lt;br /&gt;
Components are the emulated devices in a test suite simulation.  At this time the only components are virtual RFID readers, but in the future there could be other kinds of components that could act in the simulation, such as electric eyes, barriers, or push arms.  the important thing about components are that they represent a ''physical'' configuration for the objec; the component defines configuration information for the reader such as its IP, port, number of antennas and GPI/O ports, etc.  It does not contain any information about how the reader is used.&lt;br /&gt;
===Scenarios===&lt;br /&gt;
Scenarios define a linear flow path of components.  For example a scenario having two readers in it could represent an assembly line with two readers where tags seen by reader 1 will be seen by reader 2 at some later time.  Scenarios are made up of ''path items'', where each path item has a component  (i.e. reader) and also a travel time to the next component in the scenario.  This allows us to specify the number of milliseconds that it would tags to travel from reader 1 to reader 2.&lt;br /&gt;
===Batches===&lt;br /&gt;
Batches are a sequence of patterns of actions that happen on a reader.  For example, a batch cause 20 C1G2 tags to be shown to a reader for 500 milliseconds, then wait for 5 seconds, then cause a GPI port to go high for 5 seconds.  The important thing to note about batches is that they define a pattern that can be applied to any reader.  In other words, batches do ''not'' define on which reader they are applied.  This information is left up the the Test Unit.&lt;br /&gt;
There are three basic units called ''actions''&lt;br /&gt;
;Tag Action&lt;br /&gt;
:The tag action defines a pattern of tags that is shown to a reader.  For example, 10 Gen 1 tags are placed in the reader's field of view for 5 seconds.  Currently, every time that a tag action executes, the tags are regenerated according to the defined pattern.  This means that if &amp;lt;tt&amp;gt;Reader1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;Reader2&amp;lt;/tt&amp;gt; both see a particular tag action, they will see different tags (i.e. the ids will be different).&lt;br /&gt;
;GPI Action&lt;br /&gt;
:The GPI action will set a certain GPI port either high or low for a certain amount of time.  For example a GPI Action might be to set GPI port 3 high for 10 seconds.&lt;br /&gt;
;Wait Action&lt;br /&gt;
:A wait Action is simply a wait time between actions.&lt;br /&gt;
&lt;br /&gt;
The other important aspect about batches is that they are ''sequences'' of actions.  That is, a particular batch can have an arbitrary number of actions inside of it that are executed in order.  For example, a batch can have a GPI action followed by a tag action followed by another GPI action.&lt;br /&gt;
&lt;br /&gt;
===Test Unit===&lt;br /&gt;
The Test Unit combines the previous three elements into a runnable simulation.  It short, it simply makes the connection between scenarios and batches. Each batch-scenario pair is run in parallel.  For example, if a user defines two scenarios and two batches, the Test Unit associates a batch with a scenario.  Then, when this test unit is run, it will start both batch-scenario pairs at the same time.&lt;br /&gt;
&lt;br /&gt;
In addition the Test Unit defines the number of iterations that batches should execute on a scenario.  For example, a batch may run on the scenario just once; in this case the simulation would be finished when the last action in the batch executes on the final reader in the scenario.  In another case, the user may set the number of runs to infinity, so that the batch keeps executing on the scenario.&lt;br /&gt;
&lt;br /&gt;
==Interaction between elements==&lt;br /&gt;
//TODO: insert a diagram depicting how the four elements work together&lt;br /&gt;
&lt;br /&gt;
=Using Tag Streamer=&lt;br /&gt;
This section will give step-by-step instructions on how to use Tag Streamer.&lt;br /&gt;
==Components==&lt;br /&gt;
Components are the descriptions of physical readers.  It gives information such as IP, number of antennas, etc.&lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Component Wizard&amp;quot;&lt;br /&gt;
# Select a type of reader and an unused Component ID in the New Component Wizard&lt;br /&gt;
# Finish creating the reader&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-component-select.png|300px|thumb|left|Select new component wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-component-new.png|300px|thumb|left|Select a type of reader]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-component-new-alien.png|300px|thumb|left| select properties for the reader]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing components:&lt;br /&gt;
# Select the component you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
[[Image:ts-component-edit.png|300px|thumb|none|Edit Components]]&lt;br /&gt;
&lt;br /&gt;
==Scenarios==&lt;br /&gt;
Scenarios are paths of components along which batches flow.  For example, if we have three readers (reader_A, reader_B, and reader_C), we can define a scenario as &lt;br /&gt;
&amp;lt;pre&amp;gt; reader_C -&amp;gt; reader_A -&amp;gt; reader_B&amp;lt;/pre&amp;gt;&lt;br /&gt;
which means that tags will be initially seen by reader_C, then by reader_A, and finally by reader_A.&lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Scenario Wizard&amp;quot;&lt;br /&gt;
# Add Components to the scenario&lt;br /&gt;
## The component ID is the ID number of the component you wish to add&lt;br /&gt;
## The travel time is the amount of time after the batch items have finished executing on the reader before they appear on the next reader&lt;br /&gt;
## The Antenna is the antenna number that tags should be added to when they enter this component&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-scenario-select.png|300px|thumb|left|Select new scenario wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-scenario-new.png|300px|thumb|left|Add components to the scenario]]&lt;br /&gt;
|}&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing scenarios:&lt;br /&gt;
# Select the scenario you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
[[Image:ts-scenario-edit.png|300px|thumb|none|Edit Scenario]]&lt;br /&gt;
==Batches==&lt;br /&gt;
A batch is a pattern of actions that will act on a component.  The available pattern types are:&lt;br /&gt;
#Tag Patterns, called Tag Actions&lt;br /&gt;
#GPI Patterns, called GPI Actions&lt;br /&gt;
#Wait Patterns, called Wait Actoin&lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Batch Wizard&amp;quot;&lt;br /&gt;
# Add Actions to the Batch (at least one Tag, GPI, or Wait action is required)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-batch-new.png|300px|thumb|left|Select new batch wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-batch-tagAction.png|300px|thumb|left|Add tag actions to the batch]]&lt;br /&gt;
||&lt;br /&gt;
|[[Image:Ts-batch-GPIAction.png|300px|thumb|left|Add GPI actions to the batch]]&lt;br /&gt;
||&lt;br /&gt;
|[[Image:Ts-batch-waitAction.png|300px|thumb|left|Add wait actions to the batch]]&lt;br /&gt;
|}&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing batches&lt;br /&gt;
# Select the batch you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
# Make sure to click the save button after you finish editing&lt;br /&gt;
[[Image:ts-batch-edit.png|300px|thumb|none|Edit Batches]]&lt;br /&gt;
==Test Unit==&lt;br /&gt;
Test Units match up scenarios to batches and are the &amp;quot;executable&amp;quot; part of a Tag Streamer file. &lt;br /&gt;
===Create===&lt;br /&gt;
# Click the &amp;quot;New Item&amp;quot; icon ([[Image:AddItem.gif]]).&lt;br /&gt;
# Select &amp;quot;new Test Unit Wizard&amp;quot;&lt;br /&gt;
# Add at least one batch-scenario pair&lt;br /&gt;
# Optionally add wait actions so that the batch will pause before moving on to the next batch-scenario pair&lt;br /&gt;
# Select the number of repetitions (anywhere from 1 to infinity)&lt;br /&gt;
# If you want wait times before or after the test unit begins execution, fill in the pre and post wait times.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; style=&amp;quot;background:transparent;&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
[[Image:Ts-testunit-select.png|300px|thumb|left|Select new test unit wizard]]&lt;br /&gt;
||&lt;br /&gt;
[[Image:Ts-testunit-new.png|300px|thumb|left|Add a batch-scenario pair]]&lt;br /&gt;
|}&lt;br /&gt;
===Edit===&lt;br /&gt;
To edit existing Test Units:&lt;br /&gt;
# Select the test unit you wish to edit on the tree on the left.&lt;br /&gt;
# Change the settings in the right pane&lt;br /&gt;
# Make sure to click the save button after you change settings&lt;br /&gt;
[[Image:ts-testunit-edit.png|300px|thumb|none|Edit Test Unit]]&lt;br /&gt;
===Save===&lt;br /&gt;
If you wish to save the test suite that you made for future use: &lt;br /&gt;
# Click File-&amp;gt;Save Test Suite&lt;br /&gt;
# Choose a file name and a directory&lt;br /&gt;
&lt;br /&gt;
===Load===&lt;br /&gt;
If you wish to load a previously saved Test Suite:&lt;br /&gt;
# Click File-&amp;gt;Load&lt;br /&gt;
# Select the test suite file (xml) that you wish to load&lt;br /&gt;
&lt;br /&gt;
==Run Test Suite==&lt;br /&gt;
To run a test suite:&lt;br /&gt;
#Highlight the test unit that you wish to run in the tree on the right&lt;br /&gt;
#Click the run button() at the top ([[Image:Ts-Start.png]])&lt;br /&gt;
[[Image:ts-testunit-start.png|300px|thumb|none|Start Test Unit]]&lt;br /&gt;
&lt;br /&gt;
=== Run TestSuite form Command Line ===&lt;br /&gt;
&lt;br /&gt;
Since version 1.1 of Rifidi TagStreamer it is also possible to run a saved XML TestSuite via command line. All you need to do is start RifidiStreamer Executable and give two arguments.&lt;br /&gt;
&lt;br /&gt;
For Windows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TagStreamer.exe [Filename] [#ID of TestUnit]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
for example&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TagStreamer.exe C:/temp/streamer.xml 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Sample Test Suites=&lt;br /&gt;
==Assembly Line==&lt;br /&gt;
==Dock Door==&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Rifidi:Source_Code</id>
		<title>Rifidi:Source Code</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Rifidi:Source_Code"/>
				<updated>2008-04-28T22:05:29Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Reporting Bugs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:developerDoc]]&lt;br /&gt;
If you are interested in running the latest and greatest, bleeding edge Emulator or if you want to have a look at the source code, you will need to follow the instructions on this page.  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;
&lt;br /&gt;
=Downloading the Code=&lt;br /&gt;
&lt;br /&gt;
Our code is hosted at https://67.207.137.86/svn/rep-external.  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;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
The Rifidi Emulator is written in java and consists of Eclipse plugins. At this point it must be compiled and built inside of the eclipse environment.  &lt;br /&gt;
&lt;br /&gt;
===Install Eclipse===&lt;br /&gt;
&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;
&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://67.207.137.86/svn/rep-external'[[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.&lt;br /&gt;
*** To run the Emulator check out these [[Emulator Packages |packages]]&lt;br /&gt;
*** To run the Designer check out these [[Designer Packages |packages]]&lt;br /&gt;
*** To run the Tag Streamer check out these [[Tag Streamer Packages |packages]]&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;
=Running Rifidi=&lt;br /&gt;
&lt;br /&gt;
The last step to get Rifidi Running you need to change the Runtime Configuration&lt;br /&gt;
&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.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;
* If you get an error, click no and perform the following instructions:&lt;br /&gt;
** Run -&amp;gt; Open Run Dialog -&amp;gt; Eclipse Application -&amp;gt; Rifidi.product&lt;br /&gt;
** Goto the Tab Plug-ins&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)&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;
* From now on, you can start Rifidi via the green triangle button at the top of eclipse&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;
=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.org&lt;br /&gt;
&lt;br /&gt;
For more information, please subscribe to and contact us via our mailing list:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/mail/?group_id=170933,&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.org&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Rifidi:Source_Code</id>
		<title>Rifidi:Source Code</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Rifidi:Source_Code"/>
				<updated>2008-04-28T22:05:04Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Reporting Bugs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:developerDoc]]&lt;br /&gt;
If you are interested in running the latest and greatest, bleeding edge Emulator or if you want to have a look at the source code, you will need to follow the instructions on this page.  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;
&lt;br /&gt;
=Downloading the Code=&lt;br /&gt;
&lt;br /&gt;
Our code is hosted at https://67.207.137.86/svn/rep-external.  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;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
The Rifidi Emulator is written in java and consists of Eclipse plugins. At this point it must be compiled and built inside of the eclipse environment.  &lt;br /&gt;
&lt;br /&gt;
===Install Eclipse===&lt;br /&gt;
&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;
&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://67.207.137.86/svn/rep-external'[[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.&lt;br /&gt;
*** To run the Emulator check out these [[Emulator Packages |packages]]&lt;br /&gt;
*** To run the Designer check out these [[Designer Packages |packages]]&lt;br /&gt;
*** To run the Tag Streamer check out these [[Tag Streamer Packages |packages]]&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;
=Running Rifidi=&lt;br /&gt;
&lt;br /&gt;
The last step to get Rifidi Running you need to change the Runtime Configuration&lt;br /&gt;
&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.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;
* If you get an error, click no and perform the following instructions:&lt;br /&gt;
** Run -&amp;gt; Open Run Dialog -&amp;gt; Eclipse Application -&amp;gt; Rifidi.product&lt;br /&gt;
** Goto the Tab Plug-ins&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)&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;
* From now on, you can start Rifidi via the green triangle button at the top of eclipse&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;
=Reporting Bugs=&lt;br /&gt;
&lt;br /&gt;
To report bugs, please use the forum at&lt;br /&gt;
&lt;br /&gt;
 http://forums.wiki.org&lt;br /&gt;
&lt;br /&gt;
For more information, please subscribe to and contact us via our mailing list:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/mail/?group_id=170933,&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.org&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Rifidi:Source_Code</id>
		<title>Rifidi:Source Code</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Rifidi:Source_Code"/>
				<updated>2008-04-28T22:04:28Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Reporting Bugs */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:developerDoc]]&lt;br /&gt;
If you are interested in running the latest and greatest, bleeding edge Emulator or if you want to have a look at the source code, you will need to follow the instructions on this page.  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;
&lt;br /&gt;
=Downloading the Code=&lt;br /&gt;
&lt;br /&gt;
Our code is hosted at https://67.207.137.86/svn/rep-external.  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;
==Prerequisites==&lt;br /&gt;
&lt;br /&gt;
The Rifidi Emulator is written in java and consists of Eclipse plugins. At this point it must be compiled and built inside of the eclipse environment.  &lt;br /&gt;
&lt;br /&gt;
===Install Eclipse===&lt;br /&gt;
&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;
&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://67.207.137.86/svn/rep-external'[[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.&lt;br /&gt;
*** To run the Emulator check out these [[Emulator Packages |packages]]&lt;br /&gt;
*** To run the Designer check out these [[Designer Packages |packages]]&lt;br /&gt;
*** To run the Tag Streamer check out these [[Tag Streamer Packages |packages]]&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;
=Running Rifidi=&lt;br /&gt;
&lt;br /&gt;
The last step to get Rifidi Running you need to change the Runtime Configuration&lt;br /&gt;
&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.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;
* If you get an error, click no and perform the following instructions:&lt;br /&gt;
** Run -&amp;gt; Open Run Dialog -&amp;gt; Eclipse Application -&amp;gt; Rifidi.product&lt;br /&gt;
** Goto the Tab Plug-ins&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)&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;
* From now on, you can start Rifidi via the green triangle button at the top of eclipse&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;
=Reporting Bugs=&lt;br /&gt;
&lt;br /&gt;
To report bugs, please use the bug tracker on our sourceforge page, or send a note out on our mailing list.&lt;br /&gt;
For more information&lt;br /&gt;
&lt;br /&gt;
 http://forums.wiki.org&lt;br /&gt;
&lt;br /&gt;
For more information, please subscribe to and contact us via our mailing list:&lt;br /&gt;
&lt;br /&gt;
http://sourceforge.net/mail/?group_id=170933,&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.org&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Help:Contents</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Help:Contents"/>
				<updated>2008-04-28T22:03:15Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;*[[Rifidi User's Guide]]&lt;br /&gt;
&lt;br /&gt;
*[[FAQ |Frequently Asked Questions]] &lt;br /&gt;
&lt;br /&gt;
*[[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
&lt;br /&gt;
*[[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
&lt;br /&gt;
*[[:Category:developerDoc|Developer Documentation]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''If you need more help feel free to contact us:'''&lt;br /&gt;
&lt;br /&gt;
'''Forum:'''&lt;br /&gt;
 http://forums.rifidi.org&lt;br /&gt;
&lt;br /&gt;
'''Email Lists:'''&lt;br /&gt;
 http://sourceforge.net/mail/?group_id=170933&lt;br /&gt;
&lt;br /&gt;
'''IRC channel:''' &lt;br /&gt;
 #rifidi on irc.freenode.org.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''You can also visit us online at http://www.rifidi.org'''.&lt;br /&gt;
&lt;br /&gt;
[[Category:help]]&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Designer_User%27s_Guide</id>
		<title>Designer User's Guide</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Designer_User%27s_Guide"/>
				<updated>2008-04-28T21:24:43Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:userDoc]]&lt;br /&gt;
&lt;br /&gt;
=Requirements=&lt;br /&gt;
*Microsoft Windows 2000/XP/2003 or Linux (Ubuntu, Red Hat, SuSe)&lt;br /&gt;
*Sun Java Runtime Environment &amp;gt; 1.6 (J2SE 6.0)&lt;br /&gt;
** If you are having trouble running Designer 1.0 or 1.1, please see [[Specifying JRE 5 |Workaround for JRE 1.6 Issue]]&lt;br /&gt;
&lt;br /&gt;
=Installation=&lt;br /&gt;
Designer is completely written in Java so installation is very easy. Additionally, Designer is packaged in a standard installer.&lt;br /&gt;
&lt;br /&gt;
# Download the latest version of Rifidi Emulator from http://sourceforge.net/projects/rifidi/&lt;br /&gt;
# Double click to run the install.  Follow the on screen instructions.&lt;br /&gt;
&lt;br /&gt;
=Launching Rifidi Designer=&lt;br /&gt;
&lt;br /&gt;
*Windows Users: Simply click the shortcut located in the Rifidi folder in the Start Menu/Programs folder.&lt;br /&gt;
*Linux Users: Double click the executable file located in the installation directory.&lt;br /&gt;
&lt;br /&gt;
=Getting Started - Example Designer Simulation=&lt;br /&gt;
==Create Layout==&lt;br /&gt;
#Once the program is loaded, the main UI will be present.  [[Image:DesignerHome.png |none|thumb|800px|The Rifidi Designer UI]]&lt;br /&gt;
#To create a new layout, click the 'file' and 'new layout'.  &lt;br /&gt;
#Enter in a layout name, select size of the room (64x64 or 256x256 square feet) and click 'Finish'.[[Image:DesignerNewLayoutWizard.png |none|thumb|400px|Create New Layout]]  &lt;br /&gt;
#A new empty layout will be displayed in the UI ready for use [[Image:DesignerNewLayout.png |none|thumb|800px|New Layout]]&lt;br /&gt;
&lt;br /&gt;
==Add a Conveyor==&lt;br /&gt;
#Click on the 'Components' Tab to view the library of all available components to add to a layout.[[Image:DesignerComponentView.png |none|thumb|800px|The Rifidi Designer UI]]&lt;br /&gt;
#If the list is not expanded already, Click on the '+' next to RFID Base Models to expand the list. [[Image:DesignerComponentViewExpanded.png |none|thumb|800px|The Rifidi Designer UI]]&lt;br /&gt;
#Highlight the 'Conveyor' component and drag and drop to the 'Layout Designer'&lt;br /&gt;
#Enter a name for the component and the feet per second. (Example 1 ft/sec) [[Image:DesignerConveyorWizard.png |none|thumb|800px|The Rifidi Designer UI]]&lt;br /&gt;
#You will now see the component displayed in the 'Layout Designer'. ''Note: For placement refer to the Component Placement Section''&lt;br /&gt;
&lt;br /&gt;
==Add a Push Arm==&lt;br /&gt;
#Click on the 'Components' Tab to view the library of all available components to add to a layout.&lt;br /&gt;
#If the list is not expanded already, Click on the '+' next to RFID Base Models to expand the list.&lt;br /&gt;
#Highlight the 'Push Arm' component and drag and drop to the 'Layout Designer'&lt;br /&gt;
#Enter a name for the component, the seconds per push and click 'Finish'. (Example: 1 sec/push)&lt;br /&gt;
#You will now see the component displayed in the 'Layout Designer'. ''Note: For placement refer to the Component Placement Section''&lt;br /&gt;
&lt;br /&gt;
==Add a Gate==&lt;br /&gt;
#Click on the 'Components' Tab to view the library of all available components to add to a layout.&lt;br /&gt;
#If the list is not expanded already, Click on the '+' next to RFID Base Models to expand the list.&lt;br /&gt;
#Highlight the 'Gate' component and drag and drop to the 'Layout Designer'&lt;br /&gt;
#Enter a name for the component, select a reader type and click 'Next'. &lt;br /&gt;
#Enter a name for the reader and click 'Finish'.&lt;br /&gt;
#You will now see the component displayed in the 'Layout Designer'. ''Note: For placement refer to the Component Placement Section''&lt;br /&gt;
&lt;br /&gt;
==Add a Box Producer==&lt;br /&gt;
#Click on the 'Components' Tab to view the library of all available components to add to a layout.&lt;br /&gt;
#If the list is not expanded already, Click on the '+' next to RFID Base Models to expand the list.&lt;br /&gt;
#Highlight the 'Producer' component and drag and drop to the 'Layout Designer'&lt;br /&gt;
#Enter a name for the component, seconds per box and click 'Finish'. (Example: 5 sec/box)&lt;br /&gt;
#You will now see the component displayed in the 'Layout Designer'. ''Note: For placement refer to the Component Placement Section''&lt;br /&gt;
&lt;br /&gt;
==Component Placement==&lt;br /&gt;
===Conveyor Placement===&lt;br /&gt;
#In the Layout Designer View, click on the conveyor. ''Note: Yellow arrows will show the direction of the conveyor''&lt;br /&gt;
#Move the conveyor to the desired location by holding the left mouse button down. ''Note: The area below the component will be highlighted in green when placement is valid and red when placement is invalid.''&lt;br /&gt;
#Release the left mouse button once the desired location has been reached.&lt;br /&gt;
#If placement is valid the component will move to the new location and if placement is invalid the component will move to the prior valid location&lt;br /&gt;
&lt;br /&gt;
===Box Producer Placement===&lt;br /&gt;
#In the Layout Designer View, click on the Box Producer. &lt;br /&gt;
#Move the producer to the desired location by holding the left mouse button down. ''Note: The area below the component will be highlighted.''&lt;br /&gt;
#Once the producer is over the end of the conveyor, release the left mouse button to finish placement.&lt;br /&gt;
&lt;br /&gt;
===Push Arm Placement===&lt;br /&gt;
#In the Layout Designer View, click on the Push Arm. &lt;br /&gt;
#Move the gate to the desired location by holding the left mouse button down. ''Note: The area below the component will be highlighted.''&lt;br /&gt;
#Once the push arm is next to the right end of the conveyor, release the left mouse button.&lt;br /&gt;
#To finalize the placement, verify the push arm is pointed in the direction to push over the conveyor (Look for shaded area to be over conveyor). If not then you can rotate the component by 90 degrees by clicking on the component and then clicking on the rotate 90 degrees button in the toolbar. ''Note: Click twice to turn the component in the opposite direction.&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
===Gate Placement===&lt;br /&gt;
#In the Layout Designer View, click on the Gate. &lt;br /&gt;
#Verify the space between the gate's legs can fit over the conveyor based on the conveyor's placement. If not then click on the gate and rotate 90 degrees by clicking on the 90 degree rotate button in the toolbar.&lt;br /&gt;
#Move the gate to the desired location by holding the left mouse button down. ''Note: The area below the component will be highlighted in green when placement is valid and red when placement is invalid.''&lt;br /&gt;
#Once the gate is over the center of the conveyor, release the left mouse button.&lt;br /&gt;
&lt;br /&gt;
==Assign a Data Producer to a Producer component==&lt;br /&gt;
#Click on the Layout Navigator tab. &lt;br /&gt;
#Click on the '+' next to Ungrouped Components to expand the ungrouped components list if not expanded already.&lt;br /&gt;
#Click on the '+' next to Data Producer to expand the data producer list if not expanded already.&lt;br /&gt;
#In the Data Producer list click on the desired tag data to be associated with the box producer. (Example: DOD tags)&lt;br /&gt;
#Hold the left mouse button down on the desired data producer and drag and drop onto the Box Producer located in the ungrouped components list.&lt;br /&gt;
#You have now associated a Data Producer to the Box Producer which is a necessary step for the simulation to generate the desired tag data format.&lt;br /&gt;
&lt;br /&gt;
==Create a Group==&lt;br /&gt;
#Click on the Layout Navigator tab. &lt;br /&gt;
#Right click on Grouped Components&lt;br /&gt;
#In the right click menu, click on create group&lt;br /&gt;
#In the create group wizard, enter in a group name (example: group1)&lt;br /&gt;
#You will now see the new group listed under Grouped Components&lt;br /&gt;
&lt;br /&gt;
==Add Components to Group==&lt;br /&gt;
#Click on the Layout Navigator tab. &lt;br /&gt;
#Click on the '+' next to Ungrouped Components to expand the ungrouped components list if not expanded already.&lt;br /&gt;
#Click on the '+' next to Grouped Components to expand the grouped list if not expanded already.&lt;br /&gt;
#In the Ungrouped Components list, click on the conveyor component (Example: conveyor1).&lt;br /&gt;
#Hold the left mouse button down on the conveyor component and drag and drop into the Group (Example: group1)&lt;br /&gt;
#Repeat steps 2 - 4 for each or the remaining ungrouped components&lt;br /&gt;
#Once all the steps have been completed, you will now have all the components assigned to a group. (Example: group1) Now you can move the components around in a group in the Layout Designer instead of having to move each component seperately. There are other benefits of groups which will be described in later sections.&lt;br /&gt;
&lt;br /&gt;
==Turn On Components==&lt;br /&gt;
There are two ways to turn on components:&lt;br /&gt;
&lt;br /&gt;
#Click on the Layout Navigator tab if not already selected. &lt;br /&gt;
#Click on the '+' next to Grouped Components to expand the grouped list if not expanded already.&lt;br /&gt;
#Click on the '+' next to the group name (Example: group1) to expand the group if not expanded already.&lt;br /&gt;
#Right click on the conveyor component&lt;br /&gt;
#In the conveyor component right click menu, click on turn On&lt;br /&gt;
#Repeat steps 3-4 for each component in the group&lt;br /&gt;
&lt;br /&gt;
or the short cut is to:&lt;br /&gt;
&lt;br /&gt;
#Click on the Layout Navigator tab if not already selected. &lt;br /&gt;
#Click on the '+' next to Grouped Components to expand the grouped list if not expanded already.&lt;br /&gt;
#Click on the '+' next to the group name (Example: group1) to expand the group if not expanded already.&lt;br /&gt;
#Right click on group (Example: group1)&lt;br /&gt;
#In the group right click menu, click on Turn On&lt;br /&gt;
#This will Turn On all the components assigned to tha group&lt;br /&gt;
&lt;br /&gt;
You can now connect to the virtual reader (Alien, AWID, Symbol, LLRP) you created with a client such as telnet, client library, middleware or EdgeServer.&lt;br /&gt;
&lt;br /&gt;
==Start Simulation==&lt;br /&gt;
#On the Designer Toolbar, you can now click on the play button to start the simultaion&lt;br /&gt;
#Once you start the simultaion you should now see boxes being produced and the conveyor and push arm moving at their defined rates.&lt;br /&gt;
#The client connected to the virtual reader should now report tags as the boxes pass through the gate's aetenna.&lt;br /&gt;
&lt;br /&gt;
==Pause Simulation==&lt;br /&gt;
#On the Designer Toolbar, you can now click on the Pause button to start the simultaion&lt;br /&gt;
#Once you pause the simultaion you should now see boxes being produced and the conveyor and push arm moving pause, left in the previous state.&lt;br /&gt;
#The client connected to the virtual reader will continue to be connected.&lt;br /&gt;
&lt;br /&gt;
==Reset Simulation==&lt;br /&gt;
#On the Designer Toolbar, you can now click on the reset button to start the simultaion&lt;br /&gt;
#Once you reset the simultaion you should now see boxes being produced, the conveyor and push arm moving be reset&lt;br /&gt;
#The client connected to the virtual reader will continue to be connected.&lt;br /&gt;
&lt;br /&gt;
==Turn Off Components==&lt;br /&gt;
There are two ways to Turn Off components:&lt;br /&gt;
&lt;br /&gt;
#Click on the Layout Navigator tab if not already selected. &lt;br /&gt;
#Click on the '+' next to Grouped Components to expand the grouped list if not expanded already.&lt;br /&gt;
#Click on the '+' next to the group name (Example: group1) to expand the group if not expanded already.&lt;br /&gt;
#Right click on the conveyor component&lt;br /&gt;
#In the conveyor component right click menu, click on Turn Off&lt;br /&gt;
#Repeat steps 3-4 for each component in the group&lt;br /&gt;
&lt;br /&gt;
or the short cut is to:&lt;br /&gt;
&lt;br /&gt;
#Click on the Layout Navigator tab if not already selected. &lt;br /&gt;
#Click on the '+' next to Grouped Components to expand the grouped list if not expanded already.&lt;br /&gt;
#Click on the '+' next to the group name (Example: group1) to expand the group if not expanded already.&lt;br /&gt;
#Right click on group (Example: group1)&lt;br /&gt;
#In the group right click menu, click on Turn Off&lt;br /&gt;
#This will Turn Off all the components assigned to the group&lt;br /&gt;
&lt;br /&gt;
The client should now disconnect from the virtual reader as if the device has been powered off&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
===Edit Conveyor Speed===&lt;br /&gt;
==Add Components to Group==&lt;br /&gt;
#Click on the Layout Navigator tab. &lt;br /&gt;
#Click on the '+' next to Grouped Components to expand the grouped list if not expanded already.&lt;br /&gt;
#Click on the '+' next to the group (Example: groups1) to expand the assigned grouped component list if not expanded already.&lt;br /&gt;
#Click on the conveyor component.&lt;br /&gt;
#At the bottom below the Layout Designer view you will now see the conveyor component's property view.&lt;br /&gt;
#Click on the speed property and change the value.&lt;br /&gt;
#The next time you Turn On the components (if not on already) and play the simulation you will see the new speed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Edit Box Producer Rate===&lt;br /&gt;
#Click on the Layout Navigator tab. &lt;br /&gt;
#Click on the '+' next to Grouped Components to expand the grouped list if not expanded already.&lt;br /&gt;
#Click on the '+' next to the group (Example: groups1) to expand the assigned grouped component list if not expanded already.&lt;br /&gt;
#Click on the box producer component.&lt;br /&gt;
#At the bottom below the Layout Designer view you will now see the box producer component's property view.&lt;br /&gt;
#Click on the rate property and change the value.&lt;br /&gt;
#The next time you Turn On the components (if not on already) and play the simulation you will see the new rate.&lt;br /&gt;
&lt;br /&gt;
=Layouts=&lt;br /&gt;
==Create Layout==&lt;br /&gt;
#Once the program is loaded, the main UI will be present.  [[Image:DesignerHome.PNG |none|thumb|800px|The Rifidi Designer GUI]]&lt;br /&gt;
#To create a new layout, click the 'file' and 'new layout'.  &lt;br /&gt;
#Enter in a layout name, select size of the room (64x64 or 256x256 square feet) and click 'Finish'.[[Image:DesignerCreateLayout.png |none|thumb|400px|Create New Layout]]  &lt;br /&gt;
#A new empty layout will be displayed in the UI ready for use [[Image:DesignerNewLayout.png |none|thumb|800px|New Layout]]&lt;br /&gt;
&lt;br /&gt;
==Open Layout==&lt;br /&gt;
# Once the program is loaded, the main UI will be present.  [[Image:DesignerHome.png  |none|thumb|800px|The Rifidi Designer UI]]&lt;br /&gt;
&lt;br /&gt;
=Components=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Turn on Components==&lt;br /&gt;
==Turn off Components==&lt;br /&gt;
==Rename Components==&lt;br /&gt;
==Delete Components==&lt;br /&gt;
&lt;br /&gt;
=Placement=&lt;br /&gt;
==Moving Components==&lt;br /&gt;
==Rotating 90 Degrees==&lt;br /&gt;
&lt;br /&gt;
=Layout Navigation=&lt;br /&gt;
==UnGrouped Components==&lt;br /&gt;
==Grouped Components==&lt;br /&gt;
===Create Group===&lt;br /&gt;
===Add Components===&lt;br /&gt;
===Rename Group===&lt;br /&gt;
===Delete Group===&lt;br /&gt;
&lt;br /&gt;
==Generated Components==&lt;br /&gt;
==Data Producers==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=MiniMap=&lt;br /&gt;
==Navigation==&lt;br /&gt;
==Zoom in/Zoom out==&lt;br /&gt;
&lt;br /&gt;
=Camera=&lt;br /&gt;
==Camera Views==&lt;br /&gt;
==Zoom in/Zoom out==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Quickstart Video=&lt;br /&gt;
A video of these installation steps can be seen here: http://www.rifidi.org/rifidipackage/rif_out.html&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Developer_FAQ</id>
		<title>Developer FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Developer_FAQ"/>
				<updated>2008-04-15T01:30:23Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* How do I build an emulator for a reader? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How do I get and build Rifidi? ==&lt;br /&gt;
&lt;br /&gt;
You can either download Rifidi form the sourceforge page (http://sourceforge.net/projects/rifidi/) or you can download the source code from our subversion server. If you decide to download the source code we recommend to use Eclipse as Development environment. There is also a howto for eclipse available at our wiki ([[Rifidi:Source Code|Running Rifidi from Source]]).&lt;br /&gt;
&lt;br /&gt;
== How do I build an emulator for a reader? ==&lt;br /&gt;
&lt;br /&gt;
A good start would be to look here : [[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
&lt;br /&gt;
If you don't find the information you are looking for feel free to contact us. We try to help as far as we can.&lt;br /&gt;
&lt;br /&gt;
== How do I submit a new reader back to the project? ==&lt;br /&gt;
&lt;br /&gt;
Well, we are not supporting anonymous code commit to our svn server. But if you are interested in contributing code, feel free to contact us.&lt;br /&gt;
&lt;br /&gt;
== How do I submit a bug fix or new feature back to the project? ==&lt;br /&gt;
&lt;br /&gt;
Well, we are not supporting anonymous code commit to our svn server. But if you are interested in contributing code, feel free to contact us.&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Developer_FAQ</id>
		<title>Developer FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Developer_FAQ"/>
				<updated>2008-04-15T01:28:22Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* How do I submit a bug fix or new feature back to the project? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How do I get and build Rifidi? ==&lt;br /&gt;
&lt;br /&gt;
You can either download Rifidi form the sourceforge page (http://sourceforge.net/projects/rifidi/) or you can download the source code from our subversion server. If you decide to download the source code we recommend to use Eclipse as Development environment. There is also a howto for eclipse available at our wiki ([[Rifidi:Source Code|Running Rifidi from Source]]).&lt;br /&gt;
&lt;br /&gt;
== How do I build an emulator for a reader? ==&lt;br /&gt;
&lt;br /&gt;
== How do I submit a new reader back to the project? ==&lt;br /&gt;
&lt;br /&gt;
Well, we are not supporting anonymous code commit to our svn server. But if you are interested in contributing code, feel free to contact us.&lt;br /&gt;
&lt;br /&gt;
== How do I submit a bug fix or new feature back to the project? ==&lt;br /&gt;
&lt;br /&gt;
Well, we are not supporting anonymous code commit to our svn server. But if you are interested in contributing code, feel free to contact us.&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Developer_FAQ</id>
		<title>Developer FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Developer_FAQ"/>
				<updated>2008-04-15T01:28:12Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* How do I submit a bug fix or new feature back to the project? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How do I get and build Rifidi? ==&lt;br /&gt;
&lt;br /&gt;
You can either download Rifidi form the sourceforge page (http://sourceforge.net/projects/rifidi/) or you can download the source code from our subversion server. If you decide to download the source code we recommend to use Eclipse as Development environment. There is also a howto for eclipse available at our wiki ([[Rifidi:Source Code|Running Rifidi from Source]]).&lt;br /&gt;
&lt;br /&gt;
== How do I build an emulator for a reader? ==&lt;br /&gt;
&lt;br /&gt;
== How do I submit a new reader back to the project? ==&lt;br /&gt;
&lt;br /&gt;
Well, we are not supporting anonymous code commit to our svn server. But if you are interested in contributing code, feel free to contact us.&lt;br /&gt;
&lt;br /&gt;
== How do I submit a bug fix or new feature back to the project? ==&lt;br /&gt;
&lt;br /&gt;
Well, we are not supporting anonymous code commit to our svn server. But if you are interested in contributing code, feel free to contact&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Developer_FAQ</id>
		<title>Developer FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Developer_FAQ"/>
				<updated>2008-04-15T01:27:34Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* How do I submit a new reader back to the project? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How do I get and build Rifidi? ==&lt;br /&gt;
&lt;br /&gt;
You can either download Rifidi form the sourceforge page (http://sourceforge.net/projects/rifidi/) or you can download the source code from our subversion server. If you decide to download the source code we recommend to use Eclipse as Development environment. There is also a howto for eclipse available at our wiki ([[Rifidi:Source Code|Running Rifidi from Source]]).&lt;br /&gt;
&lt;br /&gt;
== How do I build an emulator for a reader? ==&lt;br /&gt;
&lt;br /&gt;
== How do I submit a new reader back to the project? ==&lt;br /&gt;
&lt;br /&gt;
Well, we are not supporting anonymous code commit to our svn server. But if you are interested in contributing code, feel free to contact us.&lt;br /&gt;
&lt;br /&gt;
== How do I submit a bug fix or new feature back to the project? ==&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Developer_FAQ</id>
		<title>Developer FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Developer_FAQ"/>
				<updated>2008-04-15T01:25:16Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* How do I get and build Rifidi? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How do I get and build Rifidi? ==&lt;br /&gt;
&lt;br /&gt;
You can either download Rifidi form the sourceforge page (http://sourceforge.net/projects/rifidi/) or you can download the source code from our subversion server. If you decide to download the source code we recommend to use Eclipse as Development environment. There is also a howto for eclipse available at our wiki ([[Rifidi:Source Code|Running Rifidi from Source]]).&lt;br /&gt;
&lt;br /&gt;
== How do I build an emulator for a reader? ==&lt;br /&gt;
&lt;br /&gt;
== How do I submit a new reader back to the project? ==&lt;br /&gt;
&lt;br /&gt;
== How do I submit a bug fix or new feature back to the project? ==&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Developer_FAQ</id>
		<title>Developer FAQ</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Developer_FAQ"/>
				<updated>2008-04-15T01:24:37Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* How do I get and build Rifidi? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== How do I get and build Rifidi? ==&lt;br /&gt;
&lt;br /&gt;
You can either download Rifidi form the sourceforge page (http://sourceforge.net/projects/rifidi/) or you can download the source code from our subversion server. If you decide to download the source code we recommend to use Eclipse as Development environment. There is also a howto for eclipse available at our wiki : [[Source_Code| Running rifidi from source code]].&lt;br /&gt;
&lt;br /&gt;
== How do I build an emulator for a reader? ==&lt;br /&gt;
&lt;br /&gt;
== How do I submit a new reader back to the project? ==&lt;br /&gt;
&lt;br /&gt;
== How do I submit a bug fix or new feature back to the project? ==&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Main_Page"/>
				<updated>2008-04-15T01:18:23Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 100%; margin-top: -0.2em;&amp;quot; id=&amp;quot;mp&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;margin-right: 13.8em;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;search&amp;quot; style=&amp;quot;border-bottom: 1px solid rgb(255, 204, 102); margin-bottom: 0.9em; background-color: rgb(240, 247, 255); background-repeat: no-repeat; background-position: right top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;book&amp;quot; style=&amp;quot;padding: 1em 0pt 0.6em; bakground-repeat: no-repeat background-position: 0% 20%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;h1 style=&amp;quot;border: medium none ; margin: Opt; padding: Opt; font-size: 175%;&amp;quot;&amp;gt;&lt;br /&gt;
     Welcome&amp;amp;nbsp;to&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;b&amp;gt;RIFIDI Community Wiki&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;[[RIFIDI]] is an open source [[RFID Environment Emulation]] tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;'''Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin editing.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: left; height: 1px; overflow: hidden;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: left; width: 50%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for users&amp;lt;/h2&amp;gt;&lt;br /&gt;
           &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[FAQ |Frequently Asked Questions]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Designer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Tag Streamer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Release Features]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Reader Guides]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255);margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi roadmap|Rifidi Roadmap]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[designer documentation summary | Designer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[tag streamer documentation summary | Tag Streamer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Developer FAQ]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;    &lt;br /&gt;
      &amp;lt;li syle = &amp;quot;margin 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
        [[Style Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Compiling Rifidi with JDK 6.0 update 4]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;              &lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:developerDoc|browse more developer documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Idea box&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:implementationIdeas|Implementation Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:codingIdeas|Coding Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Useful Links]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Eclipse Tips]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:ideaBox| browse more ideas...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Project Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://rifidi.org Rifidi's Home Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://rifidi.googlecode.com Rifidi Source SVN]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.pramari.com Pramari's Website]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;General Wiki Information&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://meta.wikimedia.org/wiki/Help:Contents User's Guide]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:wiki|browse more wiki Links...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Main_Page</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Main_Page"/>
				<updated>2008-04-15T01:18:12Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 100%; margin-top: -0.2em;&amp;quot; id=&amp;quot;mp&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div style=&amp;quot;margin-right: 13.8em;&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;div id=&amp;quot;search&amp;quot; style=&amp;quot;border-bottom: 1px solid rgb(255, 204, 102); margin-bottom: 0.9em; background-color: rgb(240, 247, 255); background-repeat: no-repeat; background-position: right top;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;book&amp;quot; style=&amp;quot;padding: 1em 0pt 0.6em; bakground-repeat: no-repeat background-position: 0% 20%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: center;&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;h1 style=&amp;quot;border: medium none ; margin: Opt; padding: Opt; font-size: 175%;&amp;quot;&amp;gt;&lt;br /&gt;
     Welcome&amp;amp;nbsp;to&amp;amp;nbsp;the&amp;amp;nbsp;&amp;lt;b&amp;gt;RIFIDI Community Wiki&amp;lt;/b&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;[[RIFIDI]] is an open source [[RFID Environment Emulation]] tool.&amp;lt;/p&amp;gt;&lt;br /&gt;
     &amp;lt;p&amp;gt;'''Please find out how to [[Documentation Guidelines|contribute to the Wiki]] before you begin editing.'''&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;clear: left; height: 1px; overflow: hidden;&amp;quot;&amp;gt;&amp;amp;nbsp;&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float: left; clear: left; width: 50%;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for users&amp;lt;/h2&amp;gt;&lt;br /&gt;
           &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[FAQ |Frequently Asked Questions]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Designer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Tag Streamer User's Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Release Features]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Reader Guides]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:userDoc|browse more user documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255);margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: 0pt none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Help for developers&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi roadmap|Rifidi Roadmap]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Documentation Guidelines|Contribute to the Wiki]] &lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Rifidi:Source Code|Running Rifidi from Source]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Emulator documentation summary | Emulator Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[designer documentation summary | Designer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[tag streamer documentation summary | Tag Streamer Documentation]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;      &lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
       [[Developer FAQ]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;    &lt;br /&gt;
      &amp;lt;li syle = &amp;quot;margin 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
        [[Style Guide]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;              &lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:developerDoc|browse more developer documents...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Idea box&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:implementationIdeas|Implementation Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Rifidi:codingIdeas|Coding Ideas]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Useful Links]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [[Eclipse Tips]]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:ideaBox| browse more ideas...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;width: 49.9%; float: left;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;Project Links&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://rifidi.org Rifidi's Home Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://sourceforge.net/projects/rifidi/ Rifidi's Sourceforge Page]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://rifidi.googlecode.com Rifidi Source SVN]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.pramari.com Pramari's Website]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;border: 1px solid rgb(198, 201, 255); margin-left: 0.9em; margin-bottom: 0.9em; background-color: rgb(240, 247, 255);&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;div style=&amp;quot;padding: 0.6em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;h2 style=&amp;quot;border: medium none ; margin: 0pt; padding: 0pt; font-size: 130%; font-weight: bold;&amp;quot;&amp;gt;General Wiki Information&amp;lt;/h2&amp;gt;&lt;br /&gt;
      &amp;lt;ul style=&amp;quot;font-size: 95%; position: relative;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://meta.wikimedia.org/wiki/Help:Contents User's Guide]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
     [http://www.mediawiki.org/wiki/Manual:Configuration_settings Configuration settings list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://www.mediawiki.org/wiki/Manual:FAQ MediaWiki FAQ]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;li style=&amp;quot;margin: 0.5em 0pt;&amp;quot;&amp;gt;&lt;br /&gt;
      [http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce MediaWiki release mailing list]&lt;br /&gt;
      &amp;lt;/li&amp;gt;&lt;br /&gt;
      &amp;lt;/ul&amp;gt;&lt;br /&gt;
      &amp;lt;p style=&amp;quot;border-top: 1px solid rgb(198, 201, 255); text-align: right; margin-bottom: 0pt; padding-top: 0.2em; margin-top: 0.8em;&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;b&amp;gt;[[:Category:wiki|browse more wiki Links...]]&amp;lt;/b&amp;gt;&lt;br /&gt;
      &amp;lt;/p&amp;gt;&lt;br /&gt;
    &amp;lt;/div&amp;gt;&lt;br /&gt;
  &amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Designer_Packages</id>
		<title>Designer Packages</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Designer_Packages"/>
				<updated>2008-04-13T23:25:30Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Packages needed for to run the emulator from source:&lt;br /&gt;
&lt;br /&gt;
Packages from trunk:&lt;br /&gt;
*org.rifidi.dependencies&lt;br /&gt;
*org.rifidi.designer.library.basemodels&lt;br /&gt;
*org.rifidi.designer.rcp&lt;br /&gt;
*org.rifidi.designer.rcp.gpioeditor&lt;br /&gt;
*org.rifidi.emulator&lt;br /&gt;
*org.rifidi.emulator.reader.alien&lt;br /&gt;
*org.rifidi.emulator.reader.awid&lt;br /&gt;
*org.rifidi.emulator.reader.epc&lt;br /&gt;
*org.rifidi.emulator.reader.llrp&lt;br /&gt;
*org.rifidi.emulator.reader.symbol&lt;br /&gt;
*org.rifidi.jmeswt&lt;br /&gt;
*org.rifidi.log4j&lt;br /&gt;
*org.rifidi.ui.common&lt;br /&gt;
*org.rifidi.streamer&lt;br /&gt;
*org.rifidi.streamer.xml&lt;br /&gt;
*org.rifidi.services&lt;br /&gt;
*org.rifidi.services.tags&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/Designer_Packages</id>
		<title>Designer Packages</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/Designer_Packages"/>
				<updated>2008-04-13T23:24:43Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Packages needed for to run the emulator from source:&lt;br /&gt;
&lt;br /&gt;
Packages from trunk:&lt;br /&gt;
*org.rifidi.dependencies&lt;br /&gt;
*org.rifidi.designer.library.basemodels&lt;br /&gt;
*org.rifidi.designer.rcp&lt;br /&gt;
*org.rifidi.designer.rcp.gpioeditor&lt;br /&gt;
*org.rifidi.emulator&lt;br /&gt;
*org.rifidi.emulator.reader.alien&lt;br /&gt;
*org.rifidi.emulator.reader.awid&lt;br /&gt;
*org.rifidi.emulator.reader.epc&lt;br /&gt;
*org.rifidi.emulator.reader.llrp&lt;br /&gt;
*org.rifidi.emulator.reader.symbol&lt;br /&gt;
*org.rifidi.jmeswt&lt;br /&gt;
*org.rifidi.log4j&lt;br /&gt;
*org.rifidi.ui.common&lt;br /&gt;
*org.rifidi.streamer&lt;br /&gt;
*org.rifidi.streamer.xml&lt;br /&gt;
*org.rifidi.services&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-13T21:30:03Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Starting up Tag Streamer alpha 2.0=&lt;br /&gt;
# Follow the [[Rifidi:Source_Code|instructions]] to download Rifidi Tag Streamer from source&lt;br /&gt;
## Download the following [[Tag_Streamer_Packages|packages]]&lt;br /&gt;
# Open up the Lauch Configuration wizard by going to run-&amp;gt;&lt;br /&gt;
#Create a new OSGI Framwork launch configuration&lt;br /&gt;
&lt;br /&gt;
= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The following scenario describes how the readers are located. In this special case all scenarios consist of only one reader. Because none of these readers have following readers the traveltime is 0.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;3&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;4&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;5&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
This file describes all the components the streamer should load. In this case we describe 5 LLRP Readers. Wich will be emulated by RifidiEmulator.&lt;br /&gt;
&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;componentSuite&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader1&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader3&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5087&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader4&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5088&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader5&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
&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;batchSuite&amp;gt;&lt;br /&gt;
	&amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;100&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;200&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;tagAction&amp;gt;&lt;br /&gt;
			&amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
			&amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
			&amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
			&amp;lt;regenerate&amp;gt;true&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
			&amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
			&amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
		&amp;lt;/tagAction&amp;gt;&lt;br /&gt;
	&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batches.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit iterations=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;1000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;2&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;3&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;4&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;5&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-13T21:28:42Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Starting up Tag Streamer alpha 2.0=&lt;br /&gt;
# Follow the [[Rifidi:Source_Code|instructions]] to download Rifidi Tag Streamer from source&lt;br /&gt;
## Download the following packages&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The following scenario describes how the readers are located. In this special case all scenarios consist of only one reader.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;3&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;4&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;5&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
This file describes all the components the streamer should load. In this case we describe 5 LLRP Readers. Wich will be emulated by RifidiEmulator.&lt;br /&gt;
&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;componentSuite&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader1&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader3&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5087&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader4&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5088&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader5&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
&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;batchSuite&amp;gt;&lt;br /&gt;
	&amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;100&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;200&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;tagAction&amp;gt;&lt;br /&gt;
			&amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
			&amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
			&amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
			&amp;lt;regenerate&amp;gt;true&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
			&amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
			&amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
		&amp;lt;/tagAction&amp;gt;&lt;br /&gt;
	&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batches.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit iterations=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;1000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;2&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;3&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;4&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;5&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-13T21:27:38Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Starting up Tag Streamer alpha 2.0=&lt;br /&gt;
# Follow the [[Rifidi:Source_Code|instructions]] to download Rifidi Tag Streamer from source&lt;br /&gt;
## Download the following packages&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The following scenario describes how the readers are located. In this special case all scenarios consist of only one reader.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;3&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;4&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;5&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&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;componentSuite&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader1&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader3&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5087&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader4&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5088&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader5&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
&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;batchSuite&amp;gt;&lt;br /&gt;
	&amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;100&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;200&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;tagAction&amp;gt;&lt;br /&gt;
			&amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
			&amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
			&amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
			&amp;lt;regenerate&amp;gt;true&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
			&amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
			&amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
		&amp;lt;/tagAction&amp;gt;&lt;br /&gt;
	&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batches.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit iterations=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;1000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;2&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;3&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;4&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;5&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-13T21:22:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* LoadTestSuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Starting up Tag Streamer alpha 2.0=&lt;br /&gt;
# Follow the [[Rifidi:Source_Code|instructions]] to download Rifidi Tag Streamer from source&lt;br /&gt;
## Download the following packages&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;3&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;4&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;5&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&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;componentSuite&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader1&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader3&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5087&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader4&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5088&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader5&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
&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;batchSuite&amp;gt;&lt;br /&gt;
	&amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;100&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;200&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;tagAction&amp;gt;&lt;br /&gt;
			&amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
			&amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
			&amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
			&amp;lt;regenerate&amp;gt;true&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
			&amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
			&amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
		&amp;lt;/tagAction&amp;gt;&lt;br /&gt;
	&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batches.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit iterations=&amp;quot;5000&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;1000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;2&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;3&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;4&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;5&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-13T21:08:31Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Starting up Tag Streamer alpha 2.0=&lt;br /&gt;
# Follow the [[Rifidi:Source_Code|instructions]] to download Rifidi Tag Streamer from source&lt;br /&gt;
## Download the following packages&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;3&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;4&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;5&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&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;componentSuite&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader1&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader3&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5087&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader4&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5088&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader5&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
&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;batchSuite&amp;gt;&lt;br /&gt;
	&amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;100&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;200&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;tagAction&amp;gt;&lt;br /&gt;
			&amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
			&amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
			&amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
			&amp;lt;regenerate&amp;gt;true&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
			&amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
			&amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
		&amp;lt;/tagAction&amp;gt;&lt;br /&gt;
	&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-13T21:06:10Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Starting up Tag Streamer alpha 2.0=&lt;br /&gt;
# Follow the [[Rifidi:Source_Code|instructions]] to download Rifidi Tag Streamer from source&lt;br /&gt;
## Download the following packages&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;3&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;4&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
     &amp;lt;scenario id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;5&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&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;componentSuite&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader1&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader3&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5087&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader4&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5088&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader5&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-13T21:05:02Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Starting up Tag Streamer alpha 2.0=&lt;br /&gt;
&lt;br /&gt;
= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&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;componentSuite&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader1&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader3&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5087&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader4&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
	&amp;lt;readerComponents id=&amp;quot;5&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;reader&amp;gt;&lt;br /&gt;
			&amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
			&amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
			&amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
			&amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
				&amp;lt;entry&amp;gt;&lt;br /&gt;
					&amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:5088&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;127.0.0.1:10104&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
					&amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
				&amp;lt;/entry&amp;gt;&lt;br /&gt;
			&amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
			&amp;lt;readerClassName&amp;gt;&lt;br /&gt;
				org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&lt;br /&gt;
			&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
			&amp;lt;readerName&amp;gt;LLRPReader5&amp;lt;/readerName&amp;gt;&lt;br /&gt;
		&amp;lt;/reader&amp;gt;&lt;br /&gt;
	&amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-12T18:30:30Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItem&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItem&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;componentSuite&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batches.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit iterations=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;2&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-12T18:25:48Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* LoadTestSuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;componentSuite&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batches.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit iterations=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;2&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-12T18:25:01Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* LoadTestSuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;componentSuite&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batches.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnit&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit iterations=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;1&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
        &amp;lt;batchAction&amp;gt;&lt;br /&gt;
            &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
            &amp;lt;scenarioID&amp;gt;2&amp;lt;/scenarioID&amp;gt;&lt;br /&gt;
        &amp;lt;/batchAction&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-12T03:34:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;componentSuite&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader2&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-12T03:31:55Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Components */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;componentSuite&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/componentSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-11T19:54:36Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;scenario&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-11T19:53:21Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Scenarios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarioSuite&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItems&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItems&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
    &amp;lt;scenario id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;pathItems&amp;gt;&lt;br /&gt;
            &amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
            &amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
        &amp;lt;/pathItems&amp;gt;&lt;br /&gt;
    &amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarioSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-11T19:49:16Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batchSuite&amp;gt;&lt;br /&gt;
    &amp;lt;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;5000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;3000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;tagAction&amp;gt;&lt;br /&gt;
            &amp;lt;execDuration&amp;gt;2000&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
            &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
            &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
            &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
            &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
            &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitAction&amp;gt;&lt;br /&gt;
            &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;minWaitTime&amp;gt;0&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
            &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
        &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
            &amp;lt;port&amp;gt;1&amp;lt;/port&amp;gt;&lt;br /&gt;
            &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
        &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
    &amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/batchSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-11T17:11:30Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;0&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;1000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;1000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-11T17:11:21Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;?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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;0&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;1000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;random&amp;gt;true&amp;lt;/random&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;2000&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;1000&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;random&amp;gt;false&amp;lt;/random&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-08T22:11:33Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* LoadTestSuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-08T22:10:37Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == &lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-08T22:09:20Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* LoadTestSuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite == The Load Test Suite defines how the different scenarios are combined together with batches to be run. The LoadTestSuite is made up of fileUnits and testUnits. FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded. The testUnits match up a batch with a list of scenarios. In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each. After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;&lt;br /&gt;
			&amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
			&amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
			&amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
		&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-08T22:08:03Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite ==&lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run.  The LoadTestSuite is made up of fileUnits and testUnits.  FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded.  The testUnits match up a batch with a list of scenarios.  In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each.  After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;1000&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;2000&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-08T22:06:41Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;isRandom&amp;gt;true&amp;lt;/isRandom&amp;gt;&lt;br /&gt;
        &amp;lt;minWaitTime&amp;gt;100&amp;lt;/minWaitTime&amp;gt;&lt;br /&gt;
        &amp;lt;maxWaitTime&amp;gt;200&amp;lt;/maxWaitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite ==&lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run.  The LoadTestSuite is made up of fileUnits and testUnits.  FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded.  The testUnits match up a batch with a list of scenarios.  In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each.  After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;1000&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;2000&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-08T21:41:03Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* LoadTestSuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite ==&lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run.  The LoadTestSuite is made up of fileUnits and testUnits.  FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded.  The testUnits match up a batch with a list of scenarios.  In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each.  After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;fileUnits&amp;gt;&lt;br /&gt;
		&amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
		&amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
	&amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
	&amp;lt;testSuite iterate=&amp;quot;10&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;1000&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;2&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;3&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
		&amp;lt;waitAction&amp;gt;2000&amp;lt;/waitAction&amp;gt;&lt;br /&gt;
		&amp;lt;batchAction&amp;gt;&lt;br /&gt;
			&amp;lt;batch&amp;gt;1&amp;lt;/batch&amp;gt;&lt;br /&gt;
			&amp;lt;scenario&amp;gt;2&amp;lt;/scenario&amp;gt;&lt;br /&gt;
		&amp;lt;/batchAction&amp;gt;&lt;br /&gt;
	&amp;lt;/testSuite&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-06T21:10:14Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* LoadTestSuite */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite ==&lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run.  The LoadTestSuite is made up of fileUnits and testUnits.  FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded.  The testUnits match up a batch with a list of scenarios.  In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each.  After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;loop&amp;gt;40&amp;lt;/loop&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;1000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;2000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;count&amp;gt;10&amp;lt;/count&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-06T20:13:05Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Use Case: Load Testing multiple readers one batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time. After this is finished it will insert a batch every 2s in only one scenario. Once a batch entered the scenario it will execute it's actions on each of the PatchItem's and then move further to the next PathItem. In this case each scenario only has one PathItem which is a reference to a virtual LLRP reader emulated by RifidiEmulator.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite ==&lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run.  The LoadTestSuite is made up of fileUnits and testUnits.  FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded.  The testUnits match up a batch with a list of scenarios.  In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each.  After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;1000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;count&amp;gt;40&amp;lt;/count&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;2000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;count&amp;gt;10&amp;lt;/count&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-06T20:11:31Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Use Case: Load Testing multiple readers one batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load Testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time after this is finished it will insert a batch every 2s in only one scenario. After a batch entered the scenario it will execute it's actions on each of the patchItems and then move further to the next PathItem. In this case each scenario only has one pathItem which is a reference to a reader.&lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite ==&lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run.  The LoadTestSuite is made up of fileUnits and testUnits.  FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded.  The testUnits match up a batch with a list of scenarios.  In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each.  After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;1000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;count&amp;gt;40&amp;lt;/count&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;2000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;count&amp;gt;10&amp;lt;/count&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	<entry>
		<id>http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios</id>
		<title>TagStreamerUseCaseScenarios</title>
		<link rel="alternate" type="text/html" href="http://wiki.rifidi.net/index.php/TagStreamerUseCaseScenarios"/>
				<updated>2008-02-06T20:09:04Z</updated>
		
		<summary type="html">&lt;p&gt;Andreas: /* Use Case: Load Testing multiple readers one batch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Use Case: Load Testing multiple readers one batch =&lt;br /&gt;
This is describing a use case scenario for a load Testing with multiple readers and a batch insert every 1s for 40 times into 3 scenarios at a time after this is finished it will insert a batch every 2s in only one scenario. After a batch entered the scenario it will execute it's actions on each of the pathUnits. In this case each scenario only has one pathItem which is a reference to a reader. &lt;br /&gt;
&lt;br /&gt;
== Scenarios ==&lt;br /&gt;
The scenarios file is a list of one or more scenarios.  Each scenario contains one or more readers on which batches will be executed.  You can think of a scencario as a path along an assembly line: a certain group of tags (or a batch, which is more like a script of actions) gets executed on a particular reader, and then moves on to the next reader.  In this case, three scenarios are defined, all of which have one reader only.  The traveltime is the time that it takes for one tag to reach the next reader in a scenario once it has left the previous one.  In this case, the traveTime for each of the scenarios is set to zero because there is only one reader in each scenario.&lt;br /&gt;
&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;scenarios&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;0&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;1&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
	&amp;lt;scenario&amp;gt;&lt;br /&gt;
		&amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
		&amp;lt;pathItem&amp;gt;&lt;br /&gt;
			&amp;lt;readerID&amp;gt;2&amp;lt;/readerID&amp;gt;&lt;br /&gt;
			&amp;lt;travelTime&amp;gt;0&amp;lt;/travelTime&amp;gt;&lt;br /&gt;
		&amp;lt;/pathItem&amp;gt;&lt;br /&gt;
	&amp;lt;/scenario&amp;gt;&lt;br /&gt;
&amp;lt;/scenarios&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
The components file contains one or more descriptions of readers.  It matches a virtual reader up with an ID that is used in the scneario.  In this example, we have defined three different LLRP readers for use in the scenarios.&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;components&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;0&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5084&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10101&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5085&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10102&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
    &amp;lt;readerComponents id=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;reader&amp;gt;&lt;br /&gt;
            &amp;lt;numAntennas&amp;gt;1&amp;lt;/numAntennas&amp;gt;&lt;br /&gt;
            &amp;lt;numGPIs&amp;gt;4&amp;lt;/numGPIs&amp;gt;&lt;br /&gt;
            &amp;lt;numGPOs&amp;gt;4&amp;lt;/numGPOs&amp;gt;&lt;br /&gt;
            &amp;lt;propertiesMap&amp;gt;&lt;br /&gt;
                &amp;lt;entry&amp;gt;&lt;br /&gt;
                    &amp;lt;key&amp;gt;llrp_inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:5086&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;inet_address&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;127.0.0.1:10103&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;servermode&amp;lt;/key&amp;gt;&lt;br /&gt;
                    &amp;lt;value&amp;gt;true&amp;lt;/value&amp;gt;&lt;br /&gt;
                &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;/propertiesMap&amp;gt;&lt;br /&gt;
            &amp;lt;readerClassName&amp;gt;org.rifidi.emulator.reader.llrp.module.LLRPReaderModule&amp;lt;/readerClassName&amp;gt;&lt;br /&gt;
            &amp;lt;readerName&amp;gt;LLRPReader&amp;lt;/readerName&amp;gt;&lt;br /&gt;
        &amp;lt;/reader&amp;gt;&lt;br /&gt;
    &amp;lt;/readerComponents&amp;gt;&lt;br /&gt;
&amp;lt;/components&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Batch ==&lt;br /&gt;
The batch is a sequence of commands that should be executed on a reader when it is being processed on a reader.  The batch is made up of one or more of the following kinds of commands: a waitAction is a time that the batch should wait.  The TagAction is a set of tags that should be exposed to the reader.  TH GPI Action toggles the reader's GPI.  The TagAction consists of an execDuration (how long the tags should be on the reader), a number (the number of tags in this tag action), a tagType, a prefix, and a tag Generation.  Also it contains a boolean regeration variable that will force the set of tags to be regenerated each time it is exposed to a reader.&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;batch id=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;tagAction&amp;gt;&lt;br /&gt;
        &amp;lt;execDuration&amp;gt;200&amp;lt;/execDuration&amp;gt;&lt;br /&gt;
        &amp;lt;number&amp;gt;20&amp;lt;/number&amp;gt;&lt;br /&gt;
        &amp;lt;prefix&amp;gt;eef&amp;lt;/prefix&amp;gt;&lt;br /&gt;
        &amp;lt;tagGen&amp;gt;GEN2&amp;lt;/tagGen&amp;gt;&lt;br /&gt;
        &amp;lt;tagType&amp;gt;CustomEPC96&amp;lt;/tagType&amp;gt;&lt;br /&gt;
        &amp;lt;regenerate&amp;gt;false&amp;lt;/regenerate&amp;gt;&lt;br /&gt;
    &amp;lt;/tagAction&amp;gt;&lt;br /&gt;
    &amp;lt;waitAction&amp;gt;&lt;br /&gt;
        &amp;lt;waitTime&amp;gt;100&amp;lt;/waitTime&amp;gt;&lt;br /&gt;
    &amp;lt;/waitAction&amp;gt;&lt;br /&gt;
    &amp;lt;gpiAction&amp;gt;&lt;br /&gt;
        &amp;lt;port&amp;gt;0&amp;lt;/port&amp;gt;&lt;br /&gt;
        &amp;lt;signal&amp;gt;true&amp;lt;/signal&amp;gt;&lt;br /&gt;
    &amp;lt;/gpiAction&amp;gt;&lt;br /&gt;
&amp;lt;/batch&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== LoadTestSuite ==&lt;br /&gt;
The Load Test Suite defines how the different scenarios are combined together with batches to be run.  The LoadTestSuite is made up of fileUnits and testUnits.  FileUnits are pointers to particular xml file (like the component.xml, scenario.xml, and batch.xml) to be loaded.  The testUnits match up a batch with a list of scenarios.  In this example, batch with ID 1 will be executed on scenarios 1, 2, and 3 in parallel 40 times each.  After that the next test unit will be run.&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;loadTestSuite&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;scenario.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;SCENARIO&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;batch.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;BATCH&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;fileUnits&amp;gt;&lt;br /&gt;
        &amp;lt;fileName&amp;gt;components.xml&amp;lt;/fileName&amp;gt;&lt;br /&gt;
        &amp;lt;fileType&amp;gt;COMPONENT&amp;lt;/fileType&amp;gt;&lt;br /&gt;
    &amp;lt;/fileUnits&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;1000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;count&amp;gt;40&amp;lt;/count&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;3&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
    &amp;lt;testUnit&amp;gt;&lt;br /&gt;
        &amp;lt;batchID&amp;gt;1&amp;lt;/batchID&amp;gt;&lt;br /&gt;
        &amp;lt;rampTime&amp;gt;2000&amp;lt;/rampTime&amp;gt;&lt;br /&gt;
        &amp;lt;count&amp;gt;10&amp;lt;/count&amp;gt;&lt;br /&gt;
        &amp;lt;scenarios&amp;gt;&lt;br /&gt;
            &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
        &amp;lt;/scenarios&amp;gt;&lt;br /&gt;
    &amp;lt;/testUnit&amp;gt;&lt;br /&gt;
&amp;lt;/loadTestSuite&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andreas</name></author>	</entry>

	</feed>