Salut,

L'idée consiste à créer une nouvelle classe C++ qui hérite depuis la 
classe Node (~/ns-allinone-ns2.2x/ns-2.2x/common/mobilenode.{cc,h}). 
Cette nouvelle classe implémentera ton nouvel algorithme (basé sur 
RPGM). Je suppose que ça permet de calculer le positionnement d'un noeud 
dans l'espace en suivant une démarche bien déterminée. Ceci revient en 
effet à altérer les variables de positionnement X_, Y_ et Z_ via ton 
algorithme.

Supposons que ta nouvelle classe exporte une nouvelle méthode publique 
appelée ComputePosition() ou UpdatePosition() qui fera tout le calcul 
exigé par RPGM. Il faut maintenant implémenter les bindings TCL 
(toujours dans C++) pour que les scripts TCL puissent invoquer tes 
nouvelles fonctions. Ceci est réalisable en augmentant la méthode 
<NewNode>::command(). (regardes 
~/ns-allinone-ns2.2x/ns-2.2x/common/mobilenode.cc, c'est le meilleur 
exemple). Il suffit d'ajouter dedans un nouveau cas:

if(strcmp(argv[1], "TCLComputePosition") == 0) {
        ComputePosition();
        return TCL_OK;
}

La méthode command() est utilisée par le back-end de Tcl/Tk pour assurer 
la liaison avec C++. Si tu fais a partir de ton script TCL:

$NewNode TCLComputePosition

En fait c'est la fonction C++ ComputePosition() qui sera appelée. C'est 
ce qu'on appelle binding.

Il y a aussi la fonction bind() qui permet de lier une variable membre 
d'une classe C++ à son équivalent en TCL. Genre bind("TCLVar", 
&CplusplusVar); Tu pourras ainsi accéder et altérer la variable 
CplusplusVar à partir de ton script TCL en faisant:

$NewNode set TCLVar 300

En réalité, cette commande modifiera le contenu de la variable CplusplusVar.

Voilà, t'as tous les éléments pour implémenter ton nouvel RPGM :)

Bonne journée,
Ilyes Gouta.

kala dridi wrote:
> salem
> je suis en 2eme année de mon cycle ingénieur à sup'com et mon problème 
> entre dans le cadre du projet de deuxieme année ( PFA).
> Consernant la premiere solution c'est ce que je faisais à chaque fois 
> que je veux faire une simulation.
> mais, je suis plutot interessée à la deuxieme solution. est ce que vous 
> pouvez bien m'expliquer l'astuce car je ne l'ai pas bien assimilé.Je 
> suis vraiment désolée pour cela mais je suis pas très familiarisée avec 
> NS2 puisque c'est la première fois que je travaille avec. je ne sais pas 
> si j'ai le droit de vous demander de bien me donner les étapes à suivre 
> et de m'expliquer ce que c'est ce que les bindings???
> je sais que ce que je vous demande est vraiment trop abusif mais je 
> cherche depuis lontemps quelqu'un pour m'aider mais tout le monde ici 
> travaille sur les protocole de routage et personne n'a d'idées sur les 
> modeles de mobilité, même mes encadreurs n'ont pas pu m'aider.
> si vous pouvez le faire je ne vous oublirais jamis ce faveur.
> Et merci enormément pour votre patience! :)
> 
> 
>> From: Ilyes Gouta <[EMAIL PROTECTED]>
>> CC: kala dridi <[EMAIL PROTECTED]>, [email protected]
>> Subject: Re: implementation of ad hoc mobility model on NS
>> Date: Sat, 13 May 2006 20:11:05 +0200
>>
>> Il y a tout un tutorial dans NS qui explique en détails les notions de 
>> génération de scénarios de connexions et de déplacements. Tu le 
>> trouveras dans ~/ns-allinone-2.2x/ns-2.2x/ns-tutorial.
>>
>> Ilyes Gouta wrote:
>>> Salut,
>>>
>>> D'après ce que j'ai lu, tu veux générer des déplacements pour tes 
>>> noeuds en te basant sur un programme qui permet de calculer ces 
>>> données. Tu trouveras dans ~/ns-allinone-2.29/ns-2.29/tcl/ex plein 
>>> d'exemples qui permettent de le faire. A titre d'exemple: 
>>> wireless.tcl (le plus simple), wireless-landmark.tcl, etc. Il faut 
>>> commencer par créer un script Tcl qui décrit tous les déplacements 
>>> via la syntaxe Tcl (ex: le fichier 
>>> ~/ns-allinone-2.29/ns-2.29/tcl/mobility/scene/scen-670x670-50-60020-0). 
>>> Ensuite il faut l'incorporer dans ton script de simulation via la 
>>> commande source (syntaxe Tcl).
>>>
>>> Maintenant si tu veux l'implémenter directement dans NS, la meilleure 
>>> solution consiste à surcharger les méthodes/ajouter de nouvelles 
>>> méthodes à la classe Node (setdest) qui implémentent ton algorithme 
>>> et créer les bindings Tcl nécessaires pour pouvoir les invoquer à 
>>> partir de tes scripts de simulation Tcl.
>>>
>>> P.S: Es-tu une étudiante en mastère? ENSI? Sup'Com? France? :)
>>>
>>> Bonne journée,
>>> Ilyes Gouta.
>>>
>>> kala dridi wrote:
>>>> salem
>>>> je suis vraiment désolée d'avoir envoyé l'e-mail uniquement à vous 
>>>> mais je me suis dit qu'il se peut que vous pouvez peut etre m'aider 
>>>> car lorsque j'ai envoyé à tout le monde aucun ne m'a repondu.
>>>> en fait, le problème exactement est que j'ai trouvé un code c++ sur 
>>>> internet qui est celui de RPGM ou reference point groupe mobility 
>>>> model. j'ai compilé ce programme sur c++, j'obtient alors un fichier 
>>>> que je dois prendre et le mettre comme scénario de mouvement des 
>>>> noeuds dans le script tcl.
>>>> c'est alors que je peux visualiser les mouvements des noeuds sur NS.
>>>> mais le problème c'est que je veux pas que a chaque fois que 
>>>> j'execute le code sur c++ puis  je continue le travail sur ns. je 
>>>> veux savoir s'il ya une methode pour l'implémenter directement sur ns.
>>>> si vous voulez je peux vous envoyer le code c++.
>>>> si vous pouvez m'aider je vous serais reconnaissante.
>>>> merci d'avance.
>>>>
>>>>
>>>>
>>>>
>>>>> From: Ilyes Gouta <[EMAIL PROTECTED]>
>>>>> To: kala dridi <[EMAIL PROTECTED]>
>>>>> CC: [email protected]
>>>>> Subject: Re: implementation of ad hoc mobility model on NS
>>>>> Date: Sat, 13 May 2006 07:47:03 +0200
>>>>>
>>>>> Hi Khawla,
>>>>>
>>>>> Please send you e-mails to the whole mailing list instead of 
>>>>> individuals.
>>>>>
>>>>> OK. Would you please clarify what do you mean by 'I don't 
>>>>> understand how to implement into NS2'? Do you mean that you got 
>>>>> some compilation issues or you have an algorithm to implement into 
>>>>> NS? Could you provide me with a description of your C++ code?
>>>>>
>>>>> Regards,
>>>>> Ilyes Gouta.
>>>>>
>>>>> kala dridi wrote:
>>>>>> hi
>>>>>> sorry for disturbing you but i really do need some aid.
>>>>>> i wondered if you would be able to help me.
>>>>>> if you do i really will be greatfull. my problem is that i have 
>>>>>> got a c++ code( it is a mobility model of ad hoc networks) that i 
>>>>>> don't understand how to implement into NS2. if you do know some 
>>>>>> thing about this please help me because i really don't find any 
>>>>>> one to help me solve this problem.
>>>>>> thanks in advance.
>>>>>>
>>>>>> _________________________________________________________________
>>>>>> MSN Messenger : discutez en direct avec vos amis ! 
>>>>>> http://www.msn.fr/msger/default.asp
>>>>>>
>>>>>>
>>>>
>>>> _________________________________________________________________
>>>> MSN Hotmail : créez votre adresse e-mail gratuite & à vie ! 
>>>> http://www.msn.fr/newhotmail/Default.asp?Ath=f
>>>>
>>>>
>>>
> 
> _________________________________________________________________
> MSN Messenger : discutez en direct avec vos amis ! 
> http://www.msn.fr/msger/default.asp
> 
> 

Reply via email to