Table des matières

1. Simulation avec la version de base de WSNet
2. Simulation et debug d'une application distribuée
3. Comparaison et ajustement des traces
4. Simulation avec WSNet2

Distributed Simulation Setup

Figure III.1. Distributed Simulation Setup


1. Simulation avec la version de base de WSNet

WSim contient une version simplifiée de WSNet. Cette version reproduit un réseau parfait et est utile pour déboguer de façon pratique des programmes. L'utilisation du couplage WSim/WSNet nécessite un script de lancement pour les simulations.

[Note]Configuration du réseau WSim

Les options de configuration --wsnet2 et --wsnet1 permettent de choisir la version du simulateur réseau utilisé. La version par défaut est --wsnet1.

[Note]Configuration multicast

La simulation ne peut fonctionner que si le multicast est validé sur la machine. Si la simulation démarre mais se bloque au premier point de synchronisation c'est qu'il y a un défaut de configuration du réseau multicast.

Vous pouvez lancer la démo à l'aide du script demo.sh qui se trouve dans le répertoire de l'exemple 05_ipv6

  cd ${CONTIKI}/examples/05_ipv6
  ./demo.sh

Le script lance 5 programmes avec les bons paramètres:

  • Le simulateur WSNet1 pour la simulation du réseau radio
  • 2 instances de WSim pour la simulation des noeuds
  • 2 terminaux avec netcat configuré pour servir de console série aux capteurs

  msp430-insight udp-server.wsn430

Simulation d'un réseau de 2 noeuds IPv6 avec WSNet1

Figure III.2. Simulation d'un réseau de 2 noeuds IPv6 avec WSNet1


[Note]Configuration des adresses IPv6 dans Contiki

Contiki utilise l'adresse matérielle fournie pas le composant DS2411 pour calculer et configurer l'adresse IPv6 des noeuds. L'option --ds2411=xx de WSim permet de forcer l'attribution d'un numéro de série à un noeud. Le numéro de série contient un CRC et ne peut donc pas être totalement arbitraire. 10 adresses pré-calculées valides sont disponibles dans le script de configuration.

[Note]Modification de l'adresse du serveur

L'exemple UDP/IPv6 de Contiki contient en dur dans le code du client udp_client.c l'adresse de destination des paquets. Pour que le test puisse être effectué dans WSim il faut donc soit modifier l'adresse dans les sources, soit attribuer la bonne adresse au serveur.

2. Simulation et debug d'une application distribuée

La mise en place du debug sur la simulation reprend exactement les mêmes principes que dans le cas simple. Pour mettre en place le debug il suffit de changer de mode et passer en mode GDB.

Le script de lancement peut servir à nouveau en utilisant la commande

  ./demo.sh gdb 1

La mise en place d'un mode de debug sur un des noeuds permet de faire passer toute la simulation en pas à pas avec une synchronisation sur l'activité du noeud observé.

Simulation d'un réseau de 2 noeuds IPv6 avec WSNet1 et GDB

Figure III.3. Simulation d'un réseau de 2 noeuds IPv6 avec WSNet1 et GDB


3. Comparaison et ajustement des traces

L'outil wtracer permet de fusionner plusieurs fichiers de trace afin de pouvoir comparer dans le temps les activités des capteurs. La commande

   wtracer --out=glob.vcd --format=vcd --merge --multi wsim*.trc

permet de relire et fusionner toutes les traces dans le répertoire pour les présenter sous une ligne unique.

Comparaison de traces

Figure III.4. Comparaison de traces


4. Simulation avec WSNet2

WSNet2 est la version complète de celle fournie par défaut dans WSim. La configuration de la simulation nécessite un fichier supplémentaire pour décrire les propriétés du réseaux ainsi que les attributs de chacun noeuds comme la position, la mobilité et tous les autres paramètres disponibles dans WSNet2.

L'option a changer côté WSim est de passer de --wsnet1 à --wsnet2. Les options --node-id restent identiques à leur utilisation dans le mode --wsnet1.

Comparaison de traces

Figure III.5. Comparaison de traces