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

  1. Aller dans src/node/application/ValueReporting

  2. Editer le fichier ValueReporting.h

  3. 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

  4. public:

        cOutVector myTemperatureVector;

  5. 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


  6. 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);

    value est une variable contenant la valeur que l'on souhaite enregistrer.

  7. 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.

  8. 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

  1. 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

  2. Tracer la courbe de l'évolution des températures dans le temps
  3. Tracer la courbe représentant l'évolution de la moyenne des températures
  4. Tracer la courbe représentant l'évolution de la moyenne des températures mais calculée pour des blocs de 20 valeurs
  5. Personnaliser la courbe en mettant sur l'axe des abscisses "Temps" et sur l'axe des ordonnées "Température captée"