Université Mouloud Mammeri Tizi Ouzou
Faculté de Genie Electrique et d’Informatique Département d’Informatique
RMSE M1 : Module Réseau Mobile (Simulateur Omnet++)
TP2: Running the simulation
Dans cette partie, nous allons voir comment exécuter une simulation débogage et comment
afficher le fichier journal .ajouter des icones, déclarer une variable d’états. etc.
La simulation peut être démarrée en mode débogage en cliquant sur le bouton Déboguer dans la
barre d'outils principale de l’IDE.
Cela entraînera le lancement du programme de simulation sous un débogueur (généralement
gdb). L'EDI basculera également dans la «perspective de débogage», c'est-à-dire réorganisera
ses différents volets et vues en une mise en page mieux adaptée au débogage. Vous pouvez
terminer la session de débogage avec le bouton Terminer (un carré rouge) dans la barre
d'outils.
1.Erreurs d'exécution :
Le débogage est le plus souvent nécessaire pour découvrir les erreurs d'exécution. Essayons!
D'abord, introduisez une erreur dans le programme. Dans txc1.cc, dupliquez la ligne send ()
dans handleMessage (), de sorte que le code ressemble à ceci:
void Txc1::handleMessage(cMessage *msg)
{
//...
send(msg, "out");
send(msg, "out");
}
A. Exécution au mode Normale : Lorsque vous lancez la simulation en mode normal
(bouton Exécuter) et que vous tentez de l'exécuter, vous obtenez un message d'erreur
comme celui-ci:
Université Mouloud Mammeri Tizi Ouzou
Faculté de Genie Electrique et d’Informatique Département d’Informatique
B. Exécution au mode débogage : Maintenant, lancez la simulation en mode débogage.
En raison de l'activation par défaut d'une option de débogage sur erreurs, le
programme de simulation s'arrête dans le débogueur. Vous pouvez localiser l'erreur en
examinant la trace de la pile (la liste des appels de fonction imbriqués) dans la vue de
débogage:
Exercice : Tester avec d’autres erreurs : envoyer le message sans l’initialiser ;
2.. Points d'arrêt( Breakpoints)
Vous pouvez également placer manuellement des points d'arrêt dans le code. Les points d'arrêt
arêtent l'exécution et vous permettent d'examiner les variables, d'exécuter le code ligne par ligne ou
de reprendre l'exécution (jusqu'au prochain breakpint).
Un point d'arrêt peut être placé sur une ligne spécifique du code source en double-cliquant sur la
gouttière de gauche dans l'éditeur ou en choisissant Toggle Breakpoint dans le menu contextuel. La
liste des points d'arrêt actifs (et inactifs) peut être examinée dans la vue Points d'arrêt.
Exercice: Placez un point d'arrêt au début de la fonction de méthode handleMessage () et
exécutez la simulation. Utilisez les boutons appropriés de la barre d'outils pour effectuer un seul
pas, continué l'exécution jusqu'à la prochaine fois que le point d'arrêt est atteint, et ainsi de suite.
3. journal d'événements : Le noyau de simulation OMNeT ++ peut enregistrer les échanges
de messages pendant la simulation dans un fichier journal d'événements. Pour activer
l'enregistrement du journal des événements, cochez la case Enregistrer le journal des
événements dans la boîte de dialogue de configuration du lancement. Alternativement, vous
pouvez spécifier record-eventlog = true dans omnetpp.ini, ou même, utiliser le bouton
Enregistrer dans l'environnement d'exécution graphique Qtenv après le lancement,
Université Mouloud Mammeri Tizi Ouzou
Faculté de Genie Electrique et d’Informatique Département d’Informatique
Le fichier journal peut être analysé plus tard avec l'outil Sequence Chart dans l'EDI. Le répertoire
de résultats dans le dossier du projet contient le fichier .elog(dans le repertoire Results). Double-
cliquer dessus dans l'IDE OMNeT ++ ouvre l'outil Sequence Chart, et l'onglet journal des
événements en bas de la fenêtre.
Université Mouloud Mammeri Tizi Ouzou
Faculté de Genie Electrique et d’Informatique Département d’Informatique
4.Associer des icones et couleurs aux différents modules :
Pour rendre le modèle de simulation plus joli, Nous associons des icones en couleurs aux
modules, pour cela, nous manipulons le fichier . NED en ajoutant des chaines d’affichage :
L'étiquette i = dans la chaîne d'affichage spécifie l'icône.
@display("i=la chaine d’affichage ");
Exemple:
@display("i=block/routing"); // ajouter icone exécution elle est dans le //rep block
@display("i=,cyan");
package titocexo1;
simple Txc1
{
parameters:
@display("i=block/routing");
gates:
input in;
output out;
}
network Tictoc1
{ submodules:
tic: Txc1 {
parameters:
@display("i=,red");
}
toc:Txc1 {
parameters:
Université Mouloud Mammeri Tizi Ouzou
Faculté de Genie Electrique et d’Informatique Département d’Informatique
@display("i=,yellow");
}
connections:
tic.out --> { delay = 100ms; } --> toc.in;
tic.in <-- { delay = 100ms; } <-- toc.out;
}
1. Ecrire dans le fichier log
Omnet++ offre une fonction qui permet d’écrire dans le fichier log , cette fonction est
utilisée dans le fichier .cc (code c++)
EV<< " je suis le nœud tic \n " ;
Exemple :
void Txc1::initialize()
{
if (strcmp("tic", getName()) == 0) {
EV << "je ss le noeud TIC\n";
cMessage *msg = new cMessage("tictocMsg");
send(msg, "out");
}
}
void Txc1::handleMessage(cMessage *msg)
{
EV << "recevoir le message " << msg->getName() << " et l'envoyer";
send(msg, "out");// send out the message
}
1 / 8 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !