JAWS Specification - Scripting and Test Execution

We need a simple demo app that downloads a target image to some nodes, executes it for a certain time, gets the logs and writes them to a file (including the necessary checks and error handling).

This should be able to jumpstart a jaws user in under an hour!!


We provide demo application called DSNTargetLogger in Java which offers the above demands.

Download first DSNTargetLogger.tar.bz2 and unpack it to an empty directory. Before running the application adapt the access credentials in nodelist to your DSN server settings.

DSNTargetLogger supports several modes: flash and no flash (all nodes or certain nodes), with logging and without logging.

# flash only the nodes
java -jar DSNTargetLogger.jar <image> <node-list>

# write target logs to files
java -jar DSNTargetLogger.jar null <node-list> <time> <path>

# flash the nodes and write target logs to files
java -jar DSNTargetLogger.jar <image> <node-list> <time> <path>
  • image: path to flash image (e.g. hexfiles/blink.tos2.tmote.hex or hexfiles/blink.tos2.tmote.hex)
  • node-list: property file with a list of nodes (e.g. tinynode-list.properties or tmote-list.properties)
  • time: execution time in minutes
  • path: directory to write the logs (must exist and be writeable)

If you write an own node-list remember that the entries node?.address must be defined between 1 and nodes.count, otherwise the application will not accept the list...

Log File Format

The log files are named the following way:


e.g. 00043f000184-20070628150431-30min.log
  • address: MAC address of the DSN node
  • starttimestamp: timestamp when the logging is started (after flashing all targets, immediately before power on targets)
  • executiontime: running time in minutes

Some example lines from a log file:

4313 1 16631590 2007-06-26 11:12:05.0: SkewMsg: 0 5 8 1 0 44 0 0 88 b0 36 4 0 0 60 87

4313 2 16631607 2007-06-26 11:12:06.0: processSkew()

4313 3 16631624 2007-06-26 11:12:06.0: processCmd
  1. param: boot counter (auto-incrementing during DSN node reset)
  2. param: log id (auto-incrementing on each received message from target node, starts by 0 after reset)
  3. param: uptime of DSN node in ticks (1 tick = ~1 millisecond, starts by 0 after reset)
  4. param: date where the entry was inserted into database
  5. param: timestamp where the entry was inserted into database

the received message from the target node follows after the colon and whitespace