View on GitHub

Contiki-DICE

Port of the DICE system for Contiki OS

Download this project as a .zip file Download this project as a tar.gz file

DICE is an open source monitoring system for global invariants running on resource-constrained networked embedded systems developed by Ștefan Gună.

DICE provides a simple, declarative language to express the distributed invariants to be monitored by a wireless sensor network. The network is tasked as a whole and together monitor invariants such as:

where temp@m references the temperature at node m. The invariant building blocks are local node state (e.g., NODE_ATTRIBUTE@quantifier) that are combined to form global predicates expressed at network level.

To get started:

  1. Download the source code.
  2. Edit ../../tools/dice-compiler/attributes.att and declare node attributes.
  3. Edit ../../tools/dice-compiler/constraints.dc to decalare the invariant to be monitored.
  4. Build the compiler, i.e., mvn compile.
  5. Run the eu.guna.dice.DiceCompiler class on the two files.
  6. Edit attributes_data.c to insert the code handling attribute values. Have a look at attributes.h to identify the code you need to write.
  7. TODO Add violation handling code.
  8. Compile and run!

Alternatively, you can download version 1.0 of the DICE compiler.