DOI: 10.21227/fz5d-fx50
title: CRAWDAD tools/collect/multihop/EXC (v. 2009-11-13)

description: EXC is a software toolkit to control and steer experiments with wireless multihop networks.EXC is a software toolkit to control and steer experiments with wireless multihop networks. EXC enables researchers to evaluate their algorithms in a real-world environment without having to deal with too much thought on how to coordinate an experiment.Lastmodified :2010-01-18Dataname :tools/collect/multihop/EXCFile :exc_v1.0.tar.gzReleasedate :2009-11-13Equiversion :v1.0Change :* Replaced the tutorial with a more comprehensive manual
* The ESW (Experiment Script Writer) is integrated into the EXC package
* Sys-Proctables are updated to version 0.8.1
* Startup problems of the Monitor Qt4 version are fixed
* The Node Qt4 version is responding without high delay
* Integrated the "FastBC" plugin and the corresponding tool (tools/fastbc) into the project
* Misleading file paths in the 'microwave' example script are fixedReferences :kiess-EXC
README
TutorialWebsite :http://www.crawdad.org/tools/collect/multihop/EXCKeyword :MANET
wireless multihop networksLicense :EXC is released under the GNU General Public License (GPL). It has been
developed at the University Duesseldorf, Germany.Support :EXC is still under development and can be considered as late beta. In case
you encounter bugs, want to participate in the development or have
suggestions for additional features, please contact Wolfgang Kiess:
kiess@cs.uni-duesseldorf.deBuild :EXC requires the following software for running on a Linux operating system:

- ruby: Ruby is the programming language EXC is written in. Your distribution
might come with an installed version. Otherwise please install it manually.
An installation of Ruby is also necessary to execute the install script.

- Click: Click (http://read.cs.ucla.edu/click/) is a software for implementing
router con gurations.

- GTK+: A GUI-Toolkit used for the graphical user interface on the client nodes.

- Qt3: Another GUI-Toolkit used for the user interface on the monitor node.

- Qt4: If the new version of the monitor GUI should be used, an installation of
the Qt4 GUI-Toolkit is necessary.

- qtruby: A language binding to access Qt from ruby.

- sys-proctable: An extension for ruby. It provides extensive process-handling.

The following installation instructions are designed for a normal PC with a
Linux system.

1. Unpack the EXC-tarball:

tar xvzf exc_v0.x.tar.gz

2. Change into the EXC directory and execute the installation file:

ruby ./install.rb

If you are using one of the supported Linux distributions, the installation should
be complete. Otherwise you have to install Qt3, GTK+ and qtruby manually.

If you have troubles installing EXC, please contact the authors of this tutorial
under [thomas.ogilvie@uni-duesseldorf.de, kiess@cs.uni-duesseldorf.de].Usage :-- Quick Start --
1) Install the necessary software (see REQUIREMENTS.txt)
2) Adjust the configuration in "scripts/tutorial/monitor.xml"
to your computers' network interface configuration
3) Start EXC as monitor:
ruby Main.rb -monitor scripts/tutorial/monitor.xml

-- Advanced Experiments --
If you want to have several nodes/participants in your experiment, copy the
complete EXC folder to the nodes (and the monitor) and start EXC in 'node' or
'monitor' configuration:
ruby Main.rb &lt;node-configuration&gt;
ruby Main.rb -monitor &lt;node-configuration&gt;

For further information please refer to the EXC tutorial:
documentation/exc_tutorial.pdf
The API-documentation for the different EXC components can be found
in the folder doc.Algorithm :To examine wireless multihop networks in well-defined setups and conduct such
experiments in a systematic way, we use in EXC a semi-automatic control. Each
experiment is partitioned in a number of runs. In a run, all actions of the
nodes like sending certain packets or moving the node are precisely scheduled
based on a prede ned script. After each run, the nodes pause and the person
responsible for controlling the experiment (called operator) remotely queries the
state of the nodes. If errors such as wrong position or a software crash occur, the
operator has the chance to overcome these. Then, he remotely selects and starts
the next run. As most actions can be executed without any interaction from
the users, this increases repeatability and minimizes errors. Those errors that
still occur only corrupt one run, not the whole experiment. Furthermore, the
necessary communication can take place between runs, thus the runs themselves
are una ected.