Project 2 - Network Topology

Due - Monday, September 22, 2008

The goal of this assignment is to give you more experience with network programming on the SPOTs.  

Part 1 - HTTP Demo

  1. Use the SPOT Manager to download the beta Blue release of the SDK.  
  2. Upgrade your SPOTs and base station to use Blue.  
  3. Familiarize yourself with the HTTPDemo that comes with the Blue SDK.
Part 2 - Twitter Feed

Implement an application that integrates your movement detection program with the HTTPDemo.  Anytime a SPOT in your network detects movement, upload a message to your own twitter feed indicating the IEEE address of the SPOT and the time at which it moved.  

Part 3 - Gathering Topology Information

For this assignment, you will extend your Movement Detection program from Project 1 by adding a host program that runs on a base station node.  SPOTs will report their movement detection information directly to the base station and each SPOT will also periodically report a list of its directly attached neighbors to its neighbors.  The SPOTs will be responsible for performing the following operations:

  1. Anytime movement is detected, send a movement detected message directly to the base station.  You may assume that the base station address is statically configured.
  2. Periodically, broadcast (with a hop count of 1) a list of the IEEE addresses of directly attached neighbors.
  3. Maintain a routing table that contains a list of all neighbors reachable in 1 hop and a list of each neighbor's neighbors.
  4. Use the LEDs on each SPOT to display, in binary, the number of hops required to reach the base station.  
You may use any method you like for finding neighbors and for determining the number of hops required to reach the base station from every node.  One option is to use the RouteTable class provided by the Blue release.  Another option is to send periodic control messages between nodes.

The base station will be responsible for the following operations:

  1. Maintain a list of all SPOTs in the network and, for each SPOT, a list of all directly attached neighbors.  This will require that SPOTs send this information to the base station.
  2. Maintain a list of its own directly attached neighbors.
Grad Students: In addition, grad students are responsible for implementing Dijkstra's shortest path algorithm on the base station node. The base station will be capable of determining the shortest path to every node in the network using the neighbor information provided by the SPOTs. You will submit a short (1 page) write up that compares the shortest path determined by your algorithm to the path determined by the AODV protocol.  You may use the RouteTable class, tracert (using ant tracert), and you may also find the ant hello program useful.  Discuss whether the shortest path calculations are the same in both cases.  If not, why not?  If so, will they always be the same?

Due 3:30PM - Monday, September 22, 2008

  1. Complete and submit your working code. 
  2. Grad students: submit a 1-page document detailing the results of your experiment.  Include graphs where appropriate.
Note: No portion of your code may be copied from any other source including another text book, a web page, or another student (current or former). You must provide citations for any sources you have used in designing and implementing your program.
Sami Rollins