SoftwarePractice.org: Home | Courseware | Wiki | Archive

T2 - Tag Talker

From SoftwarePractice.org

(Redirected from T2 - RFID Tag Finder)

Contents

The Team

Image:TagTalkerLarge.png 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:


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

Image:Stakeholders.JPG

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 Image:RFID_Interface.JPG, Authored by Simon Baxter

Java/Swing Prototype

Image:ttMap.jpg
Image:ttEditor.jpg

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

Image:Class_Diagram_T2.JPG

Updated Class Diagram (6/11/07)

Image:ClassDiagram newest.jpg

Use Cases

Image:Use Cases.jpg


Use Case Diagram

Image:Use Case DiagramT2.JPG

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

Image:add_tag.JPG

  • Edit Tag

Image:Spring07grp2edittag.JPG

  • Find Tag

Image:Spring07grp2findtag.JPG

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)

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.

Controls the adding, editing and deleting of tags from the system.

Tag-specific subroutines eg: alarms.

GUI class

Tag 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


Image:Testcases.JPG

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


Image:GB_test.JPG



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.

Personal tools