NS2脚本中如何使用God - 程序开发 - 文档专区 - Linux论坛
来源:百度文库 编辑:神马文学网 时间:2024/05/01 20:28:31
NS2脚本中如何使用God
在无线网络模拟中,借助God可以获得整个网络的一些全局性信息。在有些情况下,这些信息非常必要,比如要判断两个相邻无线节点是否在传输范围之类。
NS2对God的支持在C++空间中主要是God类,该类分别声明和实现在ns-2.30/mobile/god.h文件和ns-2.30/mobile/god.cc文件中(我使用的是ns-2.30版)。
如果在仿真脚本里使用God,需要以下几个基本设置:
$ns_ node-config -...... \
-energyModel $opt(engmodel) \
-initialEnergy $opt(initeng) \
-txPower $opt(txPower) \
-rxPower $opt(rxPower) \
-idlePower $opt(idlePower) \
-......
set opt(engmodel) EnergyModel
set opt(initeng) 10000.0
set opt(txPower) 0.660
set opt(rxPower) 0.395
set opt(idlePower) 0.035
set god_ [create-god $opt(nn)]
$god_ on
#这里还可以加一些其他设置,比如
#$god_ allow_to_stop
set opt(nn) 10
for {set i 0} {$i
God::instance().IsNeighbor(i,j) //其中i,j是网络节点的地址
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94593/showart_1913163.html
在无线网络模拟中,借助God可以获得整个网络的一些全局性信息。在有些情况下,这些信息非常必要,比如要判断两个相邻无线节点是否在传输范围之类。
NS2对God的支持在C++空间中主要是God类,该类分别声明和实现在ns-2.30/mobile/god.h文件和ns-2.30/mobile/god.cc文件中(我使用的是ns-2.30版)。
如果在仿真脚本里使用God,需要以下几个基本设置:
- 在node-config命令的选项中要开启能量模型,如果不开启能量模型,God将认为所有的节点之间都不相邻,其他信息也无从获得,这显然不是我们想要的。
$ns_ node-config -...... \
-energyModel $opt(engmodel) \
-initialEnergy $opt(initeng) \
-txPower $opt(txPower) \
-rxPower $opt(rxPower) \
-idlePower $opt(idlePower) \
-......
- 当然前面设置好上面这些参数的值:(以下为常用的典型值)
set opt(engmodel) EnergyModel
set opt(initeng) 10000.0
set opt(txPower) 0.660
set opt(rxPower) 0.395
set opt(idlePower) 0.035
- 以上设置完毕,下面创建God对象:
set god_ [create-god $opt(nn)]
$god_ on
#这里还可以加一些其他设置,比如
#$god_ allow_to_stop
- 上面的变量$opt(nn)是网络中节点的数量,也许要提前赋值,例如:
set opt(nn) 10
- 创建God对象后,C++空间的God对象也被创建,并且C++空间的God对象里的mb_node数组被分配,每个数组元素是一个MobileNode对象的指针,数组大小就是网络节点的数量大小。但现在这些指针的值都还为NULL,不指向任何MobileNode对象(MobileNode类是对应无线网络节点的类)。为了给这些指针赋值,在Tcl脚本里需要添加一些代码,具体的位置是在NS创建节点后,将这些节点与God联系起来:
for {set i 0} {$i
- 这样这些节点对应的MobileNode对象的指针被填充到上面提到的mb_node数组中,在C++代码中可以随时随地通过God来获得当前网络的全局情况。比如判断两个节点是否邻节点,可以调用:
God::instance().IsNeighbor(i,j) //其中i,j是网络节点的地址
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94593/showart_1913163.html
NS2脚本中如何使用God - 程序开发 - 文档专区 - Linux论坛
在autoconf/automake项目中禁止优化 - 程序开发 - 文档专区 - Linux论坛
linux下多进程、多线程编程 - 技术文档 - 程序开发 Linux时代 - 开源、自由...
关于linux图形界面编程基本知识 - 技术文档 - 程序开发 Linux时代 - 开源、...
ldd3之模块学习总结(页 1) - 文档专区 - 无分类文档 - Linux论坛 - p...
我的计划--嵌入式学习路径 - 技术文档 - 程序开发 Linux时代 - 开源、自由、共...
我的计划--嵌入式学习路径 - 技术文档 - 程序开发 Linux时代 - 开源、自由、共...
我如何使用一个脚本把 Word 文档保存为文本文件?
在vs2008下开发基于C sharp的wince 程序 - 开发者专区 - [魅族论坛]
Linux如何卸载程序
如何使用脚本创建环境变量?
如何访问 nand flash 分区 - 嵌入式开发 - Linux论坛
linux 2.6的shell脚本中如何kill掉 sleep进程
gcc编译选项介绍(转) - 技术文档 - 程序开发 Linux时代 - 开源、自由、共享 - 中国最大的Linux技术社区
使用PHP脚本修改Linux或Unix系统口令
使用PHP脚本修改Linux或Unix系统口令
在Eclipse3.1中如何使用Lomboz3.1开发JSP
在Eclipse3.1中如何使用Lomboz3.1开发struts
如何在项目开发过程中使用Struts-menu
在Eclipse3.1中如何使用Lomboz3.1开发JSP
在RCP程序中嵌入Word文档
如何使用gcc编译器? - 《Linux设备驱动开发详解》学习笔记 - DaiQ
使用Axis开发Web Service程序
转:Linux使用Eclipse开发C/C++