TP 2 Castalia: ajouter des statistiques et tracer des courbes
Les chemins d'accès indiqués dans le TP sont relatif
à la racine de Castalia (normalement ~/Castalia-3.2)
1. Ajouter des statistiques
- Aller dans src/node/application/ValueReporting
- Editer le fichier ValueReporting.h
- On peut utiliser la classe cOutVector
définie par OMNET++ pour collecter des statistiques et les
tracer avec l'outils plove.
Ajouter une variable public de type cOutVector
dans la classe ValueReporting
définie dans ValueReporting.h
public:
cOutVector
myTemperatureVector;
- Dans le fichier omnetpp.ini
dans Simulations/ValueReporting
nous pouvons définir quel est le nom du fichier qui va collecter
les
données de type vectoriel. Cela se fait avec en rajoutant une
ligne output-vector-file
dans la section [General]:
output-vector-file=ValueReporting.vec
Ce fichier
se trouvera dans le répertoire Simulations/ValueReporting
lorsque la simulation sera terminée. Il est possible que le
fichier .vec soit plutôt mis dans le répertoire Simulations/Parameters
sous le nom de Castalia-statistics.vec.
Ce fichier est écrasé à chaque nouvelle simulation.
Rajouter aussi la ligne
suivante pour la compatibilité avec l'outil plove:
**.vector-record-eventnumbers
= false
- Pour pouvoir utiliser une variable de type cOutVector,
il faut au préalable lui donner un nom. Nous allons donc
éditer le fichier ValueReporting.cc
et ajouter dans la fonction startup()
le code suivant:
myTemperatureVector.setName("myTemperature");
pour enregistrer une valeur dans ce vecteur, il suffit de faire (au bon
endroit):
myTemperatureVector.record(value);
où value
est une variable contenant la valeur que l'on souhaite enregistrer.
- Etant donné qu'il n'y a qu'un seul fichier .vec, il faut
s'assurer (par souci de visibilité) que tous les noeuds capteurs
ne vont pas tous écrire
dans ce fichier. Un seul noeud capteur va donc enregistrer ses valeurs
capturées. Faîtes en sorte que ce soit le capteur n°6
qui enregistre les températures qu'il capte.
- Recompiler Castalia, relancer l'application ValueReporting
et vérifier que vous avez un fichier ValueReporting.vec.
Regarder le contenu de ce fichier.
2. Tracer le contenu d'un fichier .vec
- Là où vous avez votre fichier .vec, lancer plove avec
le nom du fichier .vec en argument. Vérifier avec which plove
que le plove
utilisé est celui de /opt/omnetpp-3.3/bin
et non /opt/omnetpp-3.3p1/bin.
Au besoin, insérez dans votre fichier .bashrc la
ligne suivante:
export
PATH=/opt/omnetpp-3.3/bin:$PATH
- Tracer la courbe de l'évolution des températures
dans le temps
- Tracer la courbe représentant l'évolution de la
moyenne des températures
- Tracer la courbe représentant l'évolution de la
moyenne des températures mais calculée pour des blocs de
20 valeurs
- Personnaliser la courbe en mettant sur l'axe des abscisses
"Temps" et sur l'axe des ordonnées "Température
captée"