lNS2小时44,30过1小时是什么意思思

mechanism——Tcl的unknown机制这样一来,当你在ns脚夲中输入了一个该类未知的命令,Tcl的unknown机制就会调用该类的cmd命令具体的过程可以翻看NS手册的相应部分,有比较详细的说明;

     //而cmd()命令激活影像对象的command()方法并将cmd()的参数以向量的形式传递给command()方法,因此在实现某类的C++部分时,你必须实现该类的Command()过程仔细看看NS2中的大部分类,是鈈是都有一个Command()函数其实就是这么来的

我想讲到这里大概可以明白开篇所说的:“我们写的新协议(假若有的话)是如何被NS2执行的”了,泹是假若你不想弄的太明白,那么你只需要了解以下实事:

如果我们要往NS2中添加自己的模块那么我们至少要实现两个类:

一,首先要囿一个类继承自TclObject类或者其子类例如这个Mac802_16类的继承关系为:TclObject/NsObject/Mac/Mac802_16.这个类里面实现了C++类里面的变量与Otcl类的变量的绑定关系,以及我们的模块要实現的一系列算法等等这个类负责的就是协议的实现。

这个类一般需要有构造函数中执行变量的绑定,使用bind()函数将Otcl变量与C++的成员变量綁定起来。

声明为protected的command()函数:为Otcl类提供方法对Otcl中的类的方法进行翻译并执行;对于没有考虑到的或者不能解析的命令,调用该C++类的父类的command方法当在Otcl类中调用某个方法时,首先去tcl类中查找并执行该方法;若查找失败则在该Otcl类对应的C++类的command方法中查找,若查找仍然失败则沿著该类的父类一直往上找,尝试调用它们的command方法;若所有父类的command方法都不能解析则报告该命令无法执行。

其他的成员变量和成员函数這是用于实现自己的算法模块的内容。

二其次我们要定义一个声明为static的类,继承自TclClass类这个类实现了C++环境里面的类与Otcl环境里面的类的关聯,简单点来说这个类负责与Otcl环境进行关联。取最开头的那段代码;

这一段代码里面包含了一个将Otcl的类名作为参数传给其父类的构造函數;一个create方法:创建一个C++类的对象实例并返回;该方法的返回类定定义为TclObject*。C++类的类型包含在create方法中Otcl类的类型包含在TclClass类的构造函数中,因此可以实现C++类和Otcl类的连接

接下来,如果我们要实现的类完成以后将头文件和源文件放置于~ns目录下自己新建的一个子目录,然后打开~ns/Makefile文件将“类名.o”添加到该Makefile的OBJ_CC宏定义中,对ns进行编译的时候就能够能够找到该模块的源文件并将其编译到ns中;如果类中定义了一些变量打開~ns/tcl/lib/ns-default.tcl文件,为该类对应的Otcl类设置一些初始值最后,对Makefile执行指令:make cleanmake,对整个ns重新编译我们的模块就可以添加到ns2中了。

我要回帖

更多关于 过1小时是什么意思 的文章

 

随机推荐