--- /dev/null
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+The applications contained in this directory are both 'example' and 'test'
+applications for running TOSThreads based applications in TinyOS. All
+applications in the 'apps' directory can be compiled by running the command:
+
+ make <platform> threads
+
+and all applications in the 'capps' directory can be compiled by running:
+
+ make <platform> cthreads
+
+Some applications may be platform specific, but in general TOSThreads currently
+supports the following platforms: tmote, telosb, iris, mica2, and micaz
+
+To compile all applications under 'apps' for a given platform, simpley 'cd' into
+the 'apps' directory and run the 'make' command specified above. Similarly,
+'cd' into the 'capps' directory and run the 'cthreads' version of the make
+command to compile all of those applications too.
+
+There are READMEs contained in each application subdirectory that explain how
+the application works, and hwo one can verify that it is operating correctly.
+
+I hope everyone finds these application and their descriptions useful. And I
+hope everyone finds TOSThreads both intuitive and easy to use. Enjoy.
+
+~Kevin Klues
+
+
+
+
--- /dev/null
+README for TOSThreads BaseStation
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+BaseStation is a reimplementation of the standard BaseStation application using
+the TOSThreads thread library. It transparently forwards any AM messages it
+receives from its radio interface to its serial interface and vice versa. Upon
+successful reception of a packet, LED0 is toggled, and upon successful
+forwarding, LED1 is toggled. If there are any errors, LED2 is toggled.
+
+To run this application install it on a mote via the command:
+ make <platform> threads install.45
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Installing with NODE_ID 45 (i.e. AM_ADDRESS 45) is jsut to verify that the
+application forwards packets with an arbitrarily chosen id, which it should.
+
+To test the correct operation of this application, you need two motes: one with
+this BaseStation application installed on it, and one with an application that
+is sending messages installed, (let's use the RadioStress application from the
+current directory).
+
+On one mote install the Base station via the command above, and on the other
+install RadioStress via the command:
+ make <platform> threads install.1
+
+Don't forget the '.1' when you install, or RadioStress will be configured to
+receive rather than send messages. Messages are sent to AM_ADDRESS 0.
+
+A succssfull test will result in the RadioStress mote constantly flickering all
+of its leds very rapidly, and the BaseStation mote flickering its LED0 and LED1
+leds rapidly. Additionally, messages should be forwarded over the serial interface
+as verified by running the following for the platform of interest:
+ java net.tinyos.tools.Listen -comm serial@/dev/ttyUSBXXX:<baud_rate>
+
+NOTE:: The baud rate 57600 must be used telos based motes, as its configuration
+has been changed to work with this baud rate when compiled for tosthreads. I.e.
+DO NOT just substitute 'telosb' or 'tmote' for <baud_rate> above. Explicitly
+set it to 57600.
+
+Once this java application is running, you should see output of the sort
+constantly being streamed to your terminal:
+ 00 00 00 00 01 00 00 14
+ 00 00 00 00 01 00 00 16
+ 00 00 00 00 01 00 00 15
+ 00 00 00 00 01 00 00 14
+ 00 00 00 00 01 00 00 16
+ 00 00 00 00 01 00 00 15
+ 00 00 00 00 01 00 00 14
+ 00 00 00 00 01 00 00 16
+ 00 00 00 00 01 00 00 15
+ 00 00 00 00 01 00 00 14
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads Blink
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+Blink is a simple application used to test the basic functionality of
+TOSThreads.
+
+You can install Blink on a mote via the following comand:
+ make <platform> threads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Upon a successful burn, you should see LED0 flashing with a period of every
+200ms, and LED1 and LED2 flashing in unison with a period of 1000ms.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+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 comand:
+ make <platform> threads install.0
+ make <platform> threads install.1
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Three different threads run that each contain 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.
--- /dev/null
+README for TOSThreads RadioStress
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+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 RadioStress on a mote via the following comand:
+ make <platform> threads install.0
+ make <platform> threads install.1
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+The applicaiton burned with NODE_ID 0 will be programmed as a Receiver and will
+wait for messages from the sender programmed with NODE_ID 1. In the case of the
+sender, messages with three different AM ids are sent from three different
+threads in an infinite loop, and one of LED0, LED1, and LED2 are toggled upon
+successful transmission. In the case of the receiver, three different threads
+are used to wait for messages in an infinite loop from the three sending threads
+on the sender mote. Upon successful reception, one of LED0, LED1, or LED2 is
+toggled depending on the AM id received.
+
+Successful running of this application will result in all three leds flashing
+very rapidly on both motes, with the receiver mote flashing less rapidly if the
+sender mote is turned off (i.e. once every 5000ms because there is a timeout on
+how long it waits for messages to be received before retrying).
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads TestBasicsbSensors
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+This application is used to test the threaded version of the API for accessing
+sensors on the basicsb sensor board.
+
+You can install TestBasicsbSensors on a mote via the following comand:
+ make <platform> threads install
+
+Valid platforms are currently: mica2, and micaz
+
+This application simply takes sensor readings in an infinite loop from the
+Photo and Temperature sensors on the basicsb sensor board and forwards them
+over the serial interface. Upon successful transmission, LED0 is toggled.
+
+A succssfull test will result in the TestBasicsbSensors mote constantly
+flickering LED0. Additionally, messages containing the sensor readings should
+be forwarded over the serial interface as verified by running the following
+for the platform of interest:
+ java net.tinyos.tools.Listen -comm serial@/dev/ttyUSBXXX:<baud_rate>
+
+Once this java application is running, you should see output containing the
+sensor readings being streamed to your terminal.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
README for TOSThreads TestBlockStorage
Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
Description:
--- /dev/null
+README for TOSThreads TestCollection
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+TestCollection is a reimplementation of the Multihop Oscilloscope application
+using TOSThreads. It periodically samples a universal software-based SineSensor
+and broadcasts a message every few readings. These readings can be displayed by
+the Java "Oscilloscope" application found in the the TestCollection/java
+subdirectory. The sampling rate starts at 4Hz, but can be changed from the Java
+application.
+
+You can install TestCollection on a mote via the following comand:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb, mica2, and micaz
+
+At least two motes must be used by this application, with one of them installed
+as a base station. Base station motes can be created by installing them with
+NODE_ID % 500 == 0.
+ i.e. make <platform> threads install.0
+ make <platform> threads install.500
+ make <platform> threads install.1000
+
+All other nodes can be installed with arbitrary NODE_IDs.
+ make <platform> threads install.123
+
+Successful running of this application is verified by all NON-base station motes
+periodically flashing LED0 upon sending a message, and the base station mote,
+flashing LED2 upon successful reception of a message. Additionally, correct
+operation should be verified by running the java tool described in the following
+section.
+
+Tools:
+
+The Java application displays readings it receives from motes running the
+MultihopOscilloscope demo via a serial forwarder. To run it, change to the
+TestCollection/java subdirectory and type:
+
+ make
+ java net.tinyos.sf.SerialForwarder -comm serial@<serial port>:<mote>
+ # e.g., java net.tinyps.sf.SerialForwarder -comm serial@/dev/ttyUSB0:mica2
+ # or java net.tinyps.sf.SerialForwarder -comm serial@COM2:telosb
+ ./run
+
+The controls at the bootom of the screen allow yoy to zoom in or out the X
+axis, change the range of the Y axis, and clear all received data. You can
+change the color used to display a mote by clicking on its color in the
+mote table.
+
+Notes:
+
+By default, the Makefile for TestCollection is setup to run CTP as the
+underlying collection protocol. The makefile can be modified to work with
+MultihopLQI by changing the appropriate include directories.
+
+Known bugs/limitations:
+ None.
+
--- /dev/null
+README for TOSThreads TestPrintf
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+This application tests the operation of the Printf cleint in TOSThreads. It
+continusouly prints the value of a counter starting at 0, increasing as it
+prints.
+
+You can install TestPrintf on a mote via the following comand:
+ make <platform> threads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Once burned on a mote, the java based PrintfClient must be ran to verify
+proper operation of the application.
+ java net.tinyos.tools.PrintfClient -comm serial@/dev/ttyUSBXXX:<baud_rate>
+
+NOTE:: The baud rate 57600 must be used telos based motes, as its configuration
+has been changed to work with this baud rate when compiled for tosthreads. I.e.
+DO NOT just substitute 'telosb' or 'tmote' for <baud_rate> above. Explicitly
+set it to 57600.
+
+Once this java application is running, you should see output of the sort
+continuously being streamed to your terminal:
+...
+...
+Counter: 4549
+Counter: 4550
+Counter: 4551
+Counter: 4552
+Counter: 4553
+Counter: 4554
+Counter: 4555
+Counter: 4556
+Counter: 4557
+Counter: 4558
+Counter: 4559
+...
+...
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads TestSineSensor
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+This application is used to test the threaded version of the API for accessing
+the software based SineSensor usable by any platform for demonstration purposes.
+
+You can install TestSineSensor on a mote via the following comand:
+ make <platform> threads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+This application simply takes sensor readings in an infinite loop from the
+SineSensor and forwards them over the serial interface. Upon successful
+transmission, LED0 is toggled.
+
+A successful test will result in the TestSineSensor mote constantly flickering
+LED0. Additionally, messages containing the sensor readings should be forwarded
+over the serial interface as verified by running the following for the platform
+of interest:
+ java net.tinyos.tools.Listen -comm serial@/dev/ttyUSBXXX:<baud_rate>
+
+NOTE:: The baud rate 57600 must be used telos based motes, as its configuration
+has been changed to work with this baud rate when compiled for tosthreads. I.e.
+DO NOT just substitute 'telosb' or 'tmote' for <baud_rate> above. Explicitly
+set it to 57600.
+
+Once this java application is running, you should see output containing the
+sensor readings being streamed to your terminal.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads BaseStation
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+BaseStation is a reimplementation of the standard BaseStation application using
+the TOSThreads thread library. It transparently forwards any AM messages it
+receives from its radio interface to its serial interface and vice versa. Upon
+successful reception of a packet, LED0 is toggled, and upon successful
+forwarding, LED1 is toggled. If there are any errors, LED2 is toggled.
+
+To run this application install it on a mote via the command:
+ make <platform> cthreads install.45
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Installing with NODE_ID 45 (i.e. AM_ADDRESS 45) is jsut to verify that the
+application forwards packets with an arbitrarily chosen id, which it should.
+
+To test the correct operation of this application, you need two motes: one with
+this BaseStation application installed on it, and one with an application that
+is sending messages installed, (let's use the RadioStress application from the
+current directory).
+
+On one mote install the Base station via the command above, and on the other
+install RadioStress via the command:
+ make <platform> cthreads install.1
+
+Don't forget the '.1' when you install, or RadioStress will be configured to
+receive rather than send messages. Messages are sent to AM_ADDRESS 0.
+
+A succssfull test will result in the RadioStress mote constantly flickering all
+of its leds very rapidly, and the BaseStation mote flickering its LED0 and LED1
+leds rapidly. Additionally, messages should be forwarded over the serial interface
+as verified by running the following for the platform of interest:
+ java net.tinyos.tools.Listen -comm serial@/dev/ttyUSBXXX:<baud_rate>
+
+NOTE:: The baud rate 57600 must be used telos based motes, as its configuration
+has been changed to work with this baud rate when compiled for tosthreads. I.e.
+DO NOT just substitute 'telosb' or 'tmote' for <baud_rate> above. Explicitly
+set it to 57600.
+
+Once this java application is running, you should see output of the sort
+constantly being streamed to your terminal:
+ 00 00 00 00 01 00 00 14
+ 00 00 00 00 01 00 00 16
+ 00 00 00 00 01 00 00 15
+ 00 00 00 00 01 00 00 14
+ 00 00 00 00 01 00 00 16
+ 00 00 00 00 01 00 00 15
+ 00 00 00 00 01 00 00 14
+ 00 00 00 00 01 00 00 16
+ 00 00 00 00 01 00 00 15
+ 00 00 00 00 01 00 00 14
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads Blink
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+Blink is a simple application used to test the basic functionality of
+TOSThreads.
+
+You can install Blink on a mote via the following comand:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Upon a successful burn, you should see LED0 flashing with a period of every
+200ms, and LED1 and LED2 flashing in unison with a period of 1000ms.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+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 comand:
+ make <platform> cthreads install.0
+ make <platform> cthreads install.1
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Three different threads run that each contain 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 more complicated Bounce application found in the
+normal nesC threads version of this application, once a thread receives a
+message it will immediately flip on its LED instead of waiting on a Barrier and
+synchronizing the LEDs to come on only once messages have been received from all
+threads. In this way, messages are bounced back and forth between the two motes
+in an asynchronous fashion, and LEDS are toggled immediately upon message
+reception..
+
+Successful running of this application results in each LED bouncing back and
+forth between each mote independent of one another. This will continue in an
+finitie loop forever.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSTHREADS Null
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+Null is an empty skeleton application for testing the basic compilation and
+runtime of a c-based tosthreads aplication. It is useful to test that the build
+environment is functional in its most minimal sense, i.e., you can correctly
+compile an application. It is also useful to test the minimum power consumption
+of a node when it has absolutely no interrupts or resources active.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads RadioStress
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+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 RadioStress on a mote via the following comand:
+ make <platform> cthreads install.0
+ make <platform> cthreads install.1
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+The applicaiton burned with NODE_ID 0 will be programmed as a Receiver and will
+wait for messages from the sender programmed with NODE_ID 1. In the case of the
+sender, messages with three different AM ids are sent from three different
+threads in an infinite loop, and one of LED0, LED1, and LED2 are toggled upon
+successful transmission. In the case of the receiver, three different threads
+are used to wait for messages in an infinite loop from the three sending threads
+on the sender mote. Upon successful reception, one of LED0, LED1, or LED2 is
+toggled depending on the AM id received.
+
+Successful running of this application will result in all three leds flashing
+very rapidly on both motes, with the receiver mote flashing less rapidly if the
+sender mote is turned off (i.e. once every 5000ms because there is a timeout on
+how long it waits for messages to be received before retrying).
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads SenseAndSend
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+SenseAndSend is a threaded implementation of an application that takes various
+sensor readings in parallel (by dedicating one thread to each reading), and
+assembling them into a packet to be sent out over the radio. It is written
+specifically for use with the tmote onboard sensor package, and will not compile
+for any other platforms.
+
+To run this application install it on a mote via the command:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb with onboard sensors
+
+Readings are taken from each of the 4 oboard sensors and sent out over the radio
+interface in an infinite loop. Upon successful transmission, LED0 is toggled,
+and the process starts over again.
+
+A successful test will result in LED0 toggling periodically at a rate of
+approxiately 220ms (the time it takes to take a humidty + temperature sensor
+reading since they share the same hardware and cannot be taken in parallel).
+
+Additionally, a base station application should be run to verify the reception
+of packets sent from a SenseAndSend mote, with reasonable looking sensor data.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads SenseStoreAndForward
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+SenseStoreAndForward is a threaded implementation of an application that takes
+various sensor readings in parallel (by dedicating one thread to each reading),
+logs them to flash, and then sends them out over the radio at some later time.
+In the current implementation, sensor readings are taken as quickly as possible,
+and records containing a set of readings from each iteration are batched out
+over the radio every 10000ms. This application is written specifically for use
+with the tmote onboard sensor package, and will not compile for any other
+platforms.
+
+To run this application install it on a mote via the command:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb with onboard sensors
+
+Readings are taken from each of the 4 oboard sensors and logged to flash as one
+record in an infinite loop. Records are then read out of flash and and sent out
+over the radio interface in separate infinite loop. Before the application
+starts running, the entire contents of the flash drive are erased.
+
+A successful test will result in LED0 remaining solid for approximately 6s while
+the flash is being erased. After that LED0 will toggle with each successful set
+of sensor readings logged to flash, at a rate of approximately 220ms (the time
+it takes to take a humidty + temperature sensor reading since they share the
+same hardware and cannot be taken in parallel). Also, LED1 will begin toggling
+in rapid succession once every 10000ms as records are successfully read from
+flash and sent out over the radio. Once all of the records currently recorded
+to flash since the last batch of sends have been sent out, LED2 Toggles to
+indicate completion. This process continues in an infinite loop forever.
+
+Additionally, a base station application should be run to verify the reception
+of packets sent from a SenseStoreAndForward mote, with reasonable looking sensor
+data.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads TestCollection
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+TestCollection is a reimplementation of the Multihop Oscilloscope application
+using TOSThreads. It periodically samples a universal software-based SineSensor
+and broadcasts a message every few readings. These readings can be displayed by
+the Java "Oscilloscope" application found in the the TestCollection/java
+subdirectory. The sampling rate starts at 4Hz, but can be changed from the Java
+application.
+
+You can install TestCollection on a mote via the following comand:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb, mica2, and micaz
+
+At least two motes must be used by this application, with one of them installed
+as a base station. Base station motes can be created by installing them with
+NODE_ID % 500 == 0.
+ i.e. make <platform> cthreads install.0
+ make <platform> cthreads install.500
+ make <platform> cthreads install.1000
+
+All other nodes can be installed with arbitrary NODE_IDs.
+ make <platform> threads install.123
+
+Successful running of this application is verified by all NON-base station motes
+periodically flashing LED0 upon sending a message, and the base station mote,
+flashing LED2 upon successful reception of a message. Additionally, correct
+operation should be verified by running the java tool described in the following
+section.
+
+Tools:
+
+The Java application displays readings it receives from motes running the
+MultihopOscilloscope demo via a serial forwarder. To run it, change to the
+TestCollection/java subdirectory and type:
+
+ make
+ java net.tinyos.sf.SerialForwarder -comm serial@<serial port>:<mote>
+ # e.g., java net.tinyps.sf.SerialForwarder -comm serial@/dev/ttyUSB0:mica2
+ # or java net.tinyps.sf.SerialForwarder -comm serial@COM2:telosb
+ ./run
+
+The controls at the bootom of the screen allow yoy to zoom in or out the X
+axis, change the range of the Y axis, and clear all received data. You can
+change the color used to display a mote by clicking on its color in the
+mote table.
+
+Notes:
+ By default, the Makefile for TestCollection is setup to run CTP as the
+ underlying collection protocol. The makefile can be modified to work with
+ MultihopLQI by changing the appropriate include directories.
+
+Known bugs/limitations:
+ Warnings are issued about fan out on the 'Snoop.receive' and 'Receive.receive'
+ events. These warnings are harmless and are the result of providing a C based
+ API in which all events for receiving and snooping must be handled even if not
+ used by a particular application. The warnings occur because the underlying
+ CTP or MultihopLQI stacks wire up to particular AM ids, which are also wired
+ into the C API for handling message reception.
--- /dev/null
+README for TOSThreads TestLogStorage
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+TestLogStorage is a threaded implementation of an application that takes a dummy
+sensor readings of a counter, logs it flash, and then sends it out over the
+radio at some later time. In the current implementation, each sensor reading is
+taken once every 3000ms, and records containing a set of readings from each
+iteration are batched out over the radio every 10000ms. This application is
+very similar to the SenseStoreAndForward application contained in this same
+directory, except that it is written using a dummy sensor value instead of
+sensors specific to the tmote onboard suite. In this way, the LogStorage
+functionality can be tested in conjunction with the sending facility in a
+platform independent way.
+
+To run this application install it on a mote via the command:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Readings are taken from the dummy sensor and logged to flash as one record in an
+infinite loop. Records are then read out of flash and and sent out over the
+radio interface in separate infinite loop. Before the application starts
+running, the entire contents of the flash drive are erased.
+
+A successful test will result in LED0 remaining solid for approximately 6s while
+the flash is being erased. After that LED0 will toggle with each successful
+sensor readings logged to flash, at a rate of 3000ms. Also, LED1 will begin
+toggling in rapid succession once every 10000ms as records are successfully read
+from flash and sent out over the radio. Once all of the records currently
+recorded to flash since the last batch of sends have been sent out, LED2 Toggles
+to indicate completion. This process continues in an infinite loop forever.
+
+Additionally, a base station application should be run to verify the reception
+of packets sent from a TestLogStorage mote, with reasonable looking sensor
+data (i.e. counting up from 0 to ...).
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads TestPrintf
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+This application tests the operation of the Printf cleint in TOSThreads. It
+continusouly prints the value of a counter starting at 0, increasing as it
+prints.
+
+You can install TestPrintf on a mote via the following comand:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Once burned on a mote, the java based PrintfClient must be ran to verify
+proper operation of the application.
+ java net.tinyos.tools.PrintfClient -comm serial@/dev/ttyUSBXXX:<baud_rate>
+
+NOTE:: The baud rate 57600 must be used telos based motes, as its configuration
+has been changed to work with this baud rate when compiled for tosthreads. I.e.
+DO NOT just substitute 'telosb' or 'tmote' for <baud_rate> above. Explicitly
+set it to 57600.
+
+Once this java application is running, you should see output of the sort
+continuously being streamed to your terminal:
+...
+...
+Counter: 4549
+Counter: 4550
+Counter: 4551
+Counter: 4552
+Counter: 4553
+Counter: 4554
+Counter: 4555
+Counter: 4556
+Counter: 4557
+Counter: 4558
+Counter: 4559
+...
+...
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads TestSineSensor
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+This application is used to test the threaded version of the API for accessing
+the software based SineSensor usable by any platform for demonstration purposes.
+
+You can install TestSineSensor on a mote via the following comand:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+This application simply takes sensor readings in an infinite loop from the
+SineSensor and forwards them over the serial interface. Upon successful
+transmission, LED0 is toggled.
+
+A successful test will result in the TestSineSensor mote constantly flickering
+LED0. Additionally, messages containing the sensor readings should be forwarded
+over the serial interface as verified by running the following for the platform
+of interest:
+ java net.tinyos.tools.Listen -comm serial@/dev/ttyUSBXXX:<baud_rate>
+
+NOTE:: The baud rate 57600 must be used telos based motes, as its configuration
+has been changed to work with this baud rate when compiled for tosthreads. I.e.
+DO NOT just substitute 'telosb' or 'tmote' for <baud_rate> above. Explicitly
+set it to 57600.
+
+Once this java application is running, you should see output containing the
+sensor readings being streamed to your terminal.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.
--- /dev/null
+README for TOSThreads ThreadStress
+Author/Contact: tinyos-help@millennium.berkeley.edu
+Author: Kevin Klues <klueska@cs.stanford.edu>
+
+Description:
+
+This application stresses the creation and destruction of dynamic threads by
+spawning lots and lots of threads over and over again and letting them run to
+completion. Three different thread start functions are used, each toggling one
+of LED0, LED1, and LED2 every 256 spawnings. The time at which each LED is
+toggled is offset so that the three LEDS do not come on in unison.
+
+You can install ThreadStress on a mote via the following comand:
+ make <platform> cthreads install
+
+Valid platforms are currently: tmote, telosb, iris, mica2, and micaz
+
+Successful running of this application will result in all three leds flashing at
+a rate determined by how long it takes to spawn a thread on a given platform.
+All three LEDs should flash at this rate in an infite loop forever. Given the
+dynamics on the mote the rate may vary over time, but the important thing is
+that all three LEDs continue to toggle at a reasonably visible rate.
+
+Tools:
+ None.
+
+Known bugs/limitations:
+ None.