the Home

- here -

 

the Project

- About

- Run -

- Docs -

- Issues -

 

the Tech

- Bluetooth -

- RFID -

 

the Download

- coord zip -

- server zip -

 

 

 

 

- Summer 2005 Project - 

- Bluetooth and RFID - 

- File Documentation -

 

All Java files are fully commented within the code. What follows is a brief description of the purpose of each file:

 
ChoiceScreen.java

This java file displays a small menu window that lets the user chose what information they want to view. Any of the three pieces of data described above can be viewed separately, or they can be combined. The total number of viewing options the user has is 7.

Energy.java

This java class is responsible for the creating of a window that displays energy information about each node. The window gives the data in both textual and visual format, allowing for easy comparison between nodes. The user has the option of hiding information about any particular node.

Data.java

This class is very similar to the Energy class. It follows the same design but the information it displays is the temperature reading collected from each node. Again, there is the capability to select only certain nodes and view their information.

Coordinates.java

This java class creates a graphics panel that has all nodes in the network plotted. The plotting is done according to the nodes' XY-coordinates, and a scale. The scale is computed based on dimensions of the area in which the simulated wireless network is located. There is an additional panel on the side that gives the XY-coordinates of each node as a pair of integers.

EnergyAndData.java

This java class implements another option that the user has. It displays both the amount of energy left and the temperature reading for each node. The two values are displayed side-by-side, and two differently colored bars show visually the data. There is a legend that clearly identifies what bar corresponds to what piece of data.

Location_Data.java

This class features a top panel that has the nodes graphed on a XY-coordinate, a side panel with the coordinates, and a bottom scrollable panel that has information about the temperature data of each node.

Location_Energy.java

This file is very similar to the Location_Data.java one. The one difference is that instead of temperature information, in the bottom panel the user sees information about how much energy is left in each node.

AllThree.java

This is final file implementing a user option. The frame generated by the code in this file presents all information about each node. It displays the plotted graph and also the number values for the energy lever and the temperature read.

CustomPanel.java

This java class aides in the displaying of the nodes network on a XY-coordinate system. It enables for graphics elements to be displayed in a Swing environment.

Bar.java

This java class overrides the paintIcon method and allows for the creating of custom, value-driven bar icons. Those are used in the places where energy and temperature information are visually displayed.

Node.java

This class creates a java object called Node. Each node has energy, data, and x and y coordinates. There are several setter and getter methods provided as well as a printNode() method, mainly for debugging purposes.

Global.java

This class simulates the existence of global variables, which can be used throughout different files.

Requests.java

This class contains byte arrays with various commands. These commands can be send to the Radio Frequency Identification Reader.

responseHandler.java

This class is used to parse the responses that the RFID reader sends. A response is in a byte array format and has to be converted to a String. Then different parts of the string code have different meanings.

readResponse.java

This class manipulates the byte array that is read as a response from the RF reader.

DeviceDiscoverer.jav

This class was provided with the avetanaBluetooth code. It searches for remote Bluetooth devices in the range of the Bluetooth enabled machine.

ServiceDiscoverer.java

This class looks for services offered by the remote Bluetooth devices. Then it checks if a specific service was found and if yes, the program can continue. This code was also provided with the avetanaBluetooth code.

Coordinator.java

This is one of the two main files for this application. It has to be executed on the computer, which is connected to the simulated/real wireless network with nodes. This class contains the user interface that triggers all functions of the application.

RunWrite.java

This class is called from the Coordinator class; it implements the ‘runnable’ interface. The methods in the class perform writing to and reading from tags. The class also has a method that sends the information via a Bluetooth link.

RunRead.java

This class is very similar to the RunWrite one. The main difference is that when this class starts executing in a new thread it only reads RFID tags, assuming they have already been programmed with data.

Server.java

This is the second of the two main files for this application. It is executed on the server machine. The GUI permits the user to start/stop the server and to initiate the visualization of the obtained data.

RunServer.java

This class contains the method for receiving data from the Bluetooth connection and also a method for sending data to a PDA. The methods in this class are called from the Server class and are executed in a separate thread.

 

Maria Kazandjieva, makazand[at]mtholyoke[dot]edu, Summer 2005