T2 - Tag Talker
From SoftwarePractice.org
Contents |
The Team
| GB: Click to view logbook Simon Baxter: Click to view logbook John Collaros: Click to view logbook |
Introduction
RFID is an acronym for Radio Frequency Identification. This technology is not new, but in this decade, many uses for it have been emerging. These revolve mainly around tracking, security and ID usage.
Background Research
Below are links to articles used in gaining an understanding of RFID and its applications in the world today:
- Description on Wikipedia
- Tracking an RFID transponder using a dual direction antenna
- RFID Systems and Security and Privacy Implications
- RFID-based mobile robot guidance to a stationary target
- RFID Forum question on calculating distance using signal strength
Project Deliverables
- Design Schedule
- Presentation of Design Strategy
- Working Software Prototype with Source Code.
Project Requirements
General requirements
- It is your task to design and build a prototype for the software application described in the topic brief.
- A constraint on the design of the GUI is that the screen must be of the scale appropriate for a mobile device.
Topic Specific requirements
- This application helps you find and locate objects which are tagged with an RFID.
- The application is part of a mobile device that includes hardware for reading the data from RFID tags.
- The tag reader can pick up RFID tags within a radius of 10 metres. When the user selects the ‘Find nearby objects’ function, the device scans for any RFID tags in its vicinity a map is drawn on the screen showing the location of any found tagged objects in relation to the mobile device. The distance between each tagged object and the device is calculated and displayed on the map. Each tagged object can be selected on the screen, and interrogated for any associated information.
- It can be added to the store of previously found tagged objects. If the tagged object already exists in the store, then its location data is updated with the current reading. he store of tagged objects can be browsed.
- Tagged objects can be edited or deleted from the store. You need to read up on RFID tags and include your working assumptions about them on your Wiki documentation. You need to carefully design the software interfaces to the hardware components, so that simulated data can be used in the prototype. Include a sketch of the various hardware and software components, clearly showing the interfaces.
Methodology
The design of this software will follow the well known Miniture Unified Process (MUP).
Phase 1: Inception
Requirements
This is the RFID requirements
- To design and develop a package that will track tags via radio signals within a 10m radius. Package must be small, portable and easy to use, provide adequate functionalitiy for commercial use and accurately keep track of tags
System Elements
- Custom software written for a PDA style device.
- USB port for database syncing.
- GPS locator for positioning in large facilities
Stakeholders
The following departments in the business will have to be notified and be collaborated with regarding the development of this new product.
- Marketing
- Research and Development
- Production
- Support
- Accounts and Billing
Authored by Simon Baxter
Project Risks
- Time to market maybe longer than expected
- Market may recieve similiar products between now and our product release.
Assumptions
COTS (Commercial Off The Shelf) is widely used in developing a solution, This is similar to modules, libraries and code reuse in software. There is no need to reinvent the wheel.
For the puproses of this system, we are making the following assumptions:
- The RFID Hardware (Antenna and Sensor) is responsible for detecting distance and angle, and will pass this to TagTalker along with the Tag ID.
- There are many GPS solutions available for mobile devices, and many of them communicate over bluetooth. The GPS module will provide GPS coordinates to Tag Talker.
- For testing purposes, an on-screen keyboard will be provided, but it is expected that a mobile device will provide its own soft-keyboard for input.
Phase 2: Elaboration
Proposed GUI Interface
Original Concept Design
, Authored by Simon Baxter
Java/Swing Prototype
|
|
These are purely prototype designs, and still require scaling to comply with standard mobile device resolution of 240x320 pixels.
Icons have been defined to represent different state of objects on the map:
- Yellow Star: New tag detected
These are tags that have just been detected by the system. The system is searching its database to determine if the tag is known to the system.
- Red Triangle pointing up: Unregistered tags
These are tags that have been detected by the RFID module, but are not registered with the system. These tags could be registered into the system database
- Yellow Triangle pointing down: Registered tag with no data
This is a tag that was registered in the data base, but no data has been associated with it.
CRC Cards
GUI
| Description | |
|---|---|
| This class contains audio and rendering routines for the device graphic display. Touch screen and stylus input will be used. On-screen keyboard and funtional buttons will be included.
| |
| Responsibilities | Collaboration |
| Interface with user
Gets input from touch screen | Controls the system |
GPS
| Description | |
|---|---|
| Interfaces with 3rd-party GPS unit to get the current GPS coordinates. Used for storing absolute coordinates for tags
| |
| Responsibilities | Collaboration |
| Get current GPS Coordinates | GUI |
Tag Manager
| Description | |
|---|---|
| This class stores, sorts and retrieves data stored describing individual tags. It is responsible for getting information like the angle and distance tags are located from the hand-held device. This information is passed to the control class.
It also handles any specific subroutines that may be accosiated with a particular tag, for example a proximity alarm
| |
| Responsibilities | Collaboration |
| Store tag ID & attributes
Tag-specific subroutines | GUI Class |
Docking Class
| Description | |
|---|---|
| This class is intended to provide the stored Tag data to a different system, ideally a computer management system. It will achieve this by interrogating the Tag Manager for all its known Tagged devices and output this into a txt file to be transporter to a different system.
| |
| Responsibilities | Collaboration |
| Sychronsies the hand-held device to a laptop or PC | GUI class |
RFID Class
| Description | |
|---|---|
| Is responsible for the input into the system. It provides the TAG ID, Distance and bearing from the scanner. This class is ultimately provided by the third party who will supply the hardware for the RFID.
| |
| Responsibilities | Collaboration |
| Translating the Data from the Scanner into data for system | GUI class |
Class Diagrams
Updated Class Diagram (6/11/07)
Use Cases
Use Case Diagram
Scenarios
- Jim wanted to locate a package in the post office storeroom, however not all the packages have their addressing labels showing outwards. This would frustrate Jim as it would mean he would have to sort through all the packages.
Using the “Tag Talker” RFID Tracker, Jim can locate this package within moments using the directional layout on the hand-held device.
- Bob has lost his keys somewhere in the house. Last night he used them to open the front door, but can’t remember where he left them.
Since he attached the RFID tag, Bob just pulls out the Tag Talker and is able to find his keys quickly on the map.
Sequence Diagrams
- Add Tag
- Edit Tag
- Find Tag
Key Risks(Elaborated)
Unassigned
Phase 3: Construction
A few brief notes to date:
- Swing mockup screens used a combination of swing elements
and png graphics.
- The png graphics were generated from svg images authored in Inkscape
- The intention is to use svg authored graphics with svg libraries in the
live implementation.
- Advantages of SVG:
- Images are scalable without loss of quality since they are vector graphics
- Each element is an object that can have methods and events attached to it.
- Elements are represented by SVG XML Code, or generated in code using an SVG API, and thus classes for elements can be created, so it is easy to generate more of them (eg. Icons on map)
- There is an SVG implementation for Java/Swing. It is called Batik.
- The website for batik is here: -> http://xmlgraphics.apache.org/batik/index.html
Tag And Tag Manager Classes
Written By Simon Baxter
I intend to split up the "Tag Manager" Class described above into 2 separate classes, one for higher level methods such as adding, editing etc tags, and a low level class for verifying and storing data for individual tags.
Below: CRC cards showing the break down of the final code.
Tag Manager
| Description | |
|---|---|
|
This class stores, sorts and retrieves data stored describing individual tags. It is responsible for getting information like the name and ID number of tags which are stored in the array tagArray[]. This information is passed to the GUI class when the user requests it, to be displayed on the screen of the RFID. It also handles any specific subroutines that may be accosiated with a particular tag, for example a proximity alarm that may be activated when the tag is too far away or too close.
| |
| Responsibilities | Collaboration |
|
Store tag attributes such as the name and ID number. |
GUI class |
Tag
| Description | |
|---|---|
|
This class defines a tag. It sets up properties for tags and allows Tag objects to be created. Also has get/setName funtions
| |
| Responsibilities | Collaboration |
|
Defines a Tag |
Tag Manager class |
Test Cases
Authored by Simon Baxter
Docking and RFID Class
GB will be responsible for these classes.
The Docking class, queries the Tag Manager and creates an output file containing all the tags on the device. This is achieved by interrogating the Tag Manager for the size of the data base and then a loop is executed to output this data into a text file in a pre-designed format.
The RFID class in this initial implemenetation will be reading data into the system via a preformated text file. It will pass in three variables of type "int" to simulate the TAG ID, Distance and Bearing from the Scanner.
Test Cases
Authored by GB
Phase 4: Transition
To completed by 8th of Novemeber 2007.
REFERENCES
'Texts used by Simon Baxter'
Hewitt, E. 2005, Java Garage, Upper Saddle River, NJ : Prentice Hall PTR
Naughton, P. & Schildt, H, 1997 Java : the complete reference, Berkeley, Calif. : Osborne McGraw-Hill.
James Edward, K. 1948, , Java demystified Emeryville, Calif.





