RIOT-OS/RIOT — pull request #1610 by phiros (2014-08-24 21:54:04+00:00)
Title: Feature pytermcontroller

This PR adds pytermcontroller.py and testbeds.py.

pytermcontroller.py is a server which allows for a scripted centralized control of multiple pyterm instances
(which may run on different networked hosts).

testbeds.py contains multiple classes which are designed to be used in conjunction with pytermcontroller.
They offer an automatic way of doing the following:
* flashing nodes
* sending commands to all or individual nodes
* timed commands (e.g.: send shell command "foo" to all nodes in 15 minutes from now)
* simple log file management

Currently there are abstraction classes in testbeds.py for the following physical / virtual environments ( / testbeds):
* DESTestbed: meant for the DES-testbed at FU-Berlin (the server should be run on uhu; tested with ~50 nodes)
* LocalTestbed: this class is meant for people who want to build their own mini testbed by attaching multiple nodes to one PC. This class will discover all attached nodes automatically.
* DesVirtTestbed: works together with desvirt in order to spawn and control a network of native port nodes.
A topology according to the desvirt howto must be created beforehand.

The PR #1538 contains scripts in example/clocksync/dist (for example clockSyncExperiment.py and gtspDesVirt.py) which demonstrates the usefulness of this PR. The scripts in that directory are used to automatically test our clock synchronization protocols in a virtual network consisting of native port instances.