README for TOSThreads Bounce 
Author/Contact: tinyos-help@millennium.berkeley.edu
Author: Kevin Klues <klueska@cs.stanford.edu>

Description:

This application is derived from a similar application in the TinyThread 
implementation by William P. McCartney from Cleveland State University (2006)

This application stresses the operation of the thread based AM commands for
packet transmission and reception.  To run this application you will need to
burn it on one mote with NODE_ID 0, and a second mote with NODE_ID 1.  

You can install Bounce on a mote via the following command:
  make <platform> threads install.0
  make <platform> threads install.1
  
Valid platforms are currently: tmote, telosb, iris, shimmer*, span, mica2, micaz, and epic

Three different threads run, and each contains an infinite loop that first sends
a message and then waits to receive a message before returning to the top of the
loop. After each message reception, one of the onboard LEDs is toggled to
indicate that it was received. Thread 0 blinks LED0, thread 1 blinks LED1, and
thread 2 blinks LED2. The three threads run independently, and three different
messages are bounced back and forth between the two motes in an unsynchronized
fashion.  In contrast to the simple Bounce application found in the cthreads
version of this application, once a thread receives a message it waits on a
Barrier before continuing on and turning on its led.  A synchronization thread
is used to wait until all three messages have been received by each thread
before unblocking the barrier.  In this way, messages are still bounced back and
forth between the two motes in an asynchronous fashion, but all leds come on at
the same time because of the Barrier and the synchronization thread.  

Successful running of this application results in all three leds coming on in
unison on one mote and then coming on in unison on the other mote, back and
forth forever.

Tools:
  None.

Known bugs/limitations:
  None.
