Posted on 2009-04-01 13:59
土豆 阅读(1857)
评论(5) 编辑 收藏 引用 所属分类:
无线传感器网络 、
网络仿真软件
有些同学说GPSR协议(LiuKe )按照自带的readme折腾了好几天安装也没有成功, 在这里我简要地说明一下当初我的安装过程.
说明:$HOME指当前用户所在目录。
1、在 $HOME/ns-allinone-2.30/ns-2.30下新建gpsr文件夹,并将GPSR-KeLiu中的
gpsr_packet.h, gpsr_neighbor.h, gpsr_neighbor.cc, gpsr.h, gpsr.cc, gpsr.tcl,
wireless-gpsr.tcl, gpsr_sinklist.h, gpsr-sinklist.cc, grid_deploy10x10.tcl, cbr100.tcl加入刚新建的gpsr文件夹中。
2、进入$HOME/ns-allinone-2.30/ns-2.30/common, 修改packet.h
在enum packet_t{
增加 PT_GPSR
}
class p_info {
增加 name_[PT_GPSR]= “gpsr”
}
3、进入$HOME/ns-allinone-2.30/ns-2.30/trace,修改 cmu-trace.cc
(readme遗漏)增加 #include <gpsr/gpsr_packet.h>
在 void CMUTrace::format(Packet* p, const char *why)
{
增加 case PT_GPSR;
break;
}
3、进入 $HOME/ns-allinone-2.30/ns-2.30/queue,修改priqueue.cc
void PriQueue::recv(Packet *p, Handler *h)
{
增加 case PT_GPSR:
}
4、进入$HOME/ns-allinone-2.30/ns-2.30/tcl/lib, 修改ns-packet.tcl
foreach prot{
增加GPSR
}
5、进入 $HOME/ns-allinone-2.30/ns-2.30/ ,修改Makefile
在OBJ_STL = 的最后按照格式加入( gpsr前为TAB键而不是空格)
gpsr/gpsr_neighbor.o\
gpsr/gpsr_sinklist.o\
gpsr/gpsr.o
如果需要加入调试信息,则在CCOPT = -Wall 加上 -g, 如下:
CCOPT = -g -Wall
6、重新编译,执行如下命令
cd $HOME/ns-allinone-2.30/ns-2.30/common
touch packet.cc
cd ..
make clean
make
7、在使用脚本wireless_gpsr.tcl进行场景仿真时,需要对 ns-2.30所在的路径进行修改
将wireless_gpsr.tcl 中的将ns2home 修改成 $HOME/ns-allinone-2.30/ns-2.30/
说明:2007年我下载使用LiuKe写的GPSR协议还存在很多的问题
1、nam文件无法正常打开显示
2、数据莫名其妙丢失,调试跟踪才发现arp功能不正确
3、sink节点位置没有更新。
。。。。。。
想不起来了,呵呵,
当初在仿真调试中花了大量的时间对其进行了修补,遗憾的是,我的笔记已丢失,短时间内还无法与大家共享。等闲下来有空的时候我会慢慢去捡回记忆,大家有何问题,请联系.