/***************************************************************************************************************/
一、NS2.27上安装LEACH协议
leach协议在ns2.27上是很容易安装的,比较难的是在高版本的linux上安装ns2.27. 在前面的系列中,总结了一些常见的安装错误。
LEACH协议安装步骤:
1. 把协议的安装包mit.tar.gz放到/opt/ns-ailinone-2.27/ns-2.27下;
2.解压这个压缩包,会直接覆盖掉相同的文件(注意,在其它的高版本上并不能这样直接覆盖,因为高版本的文件跟ns2.27的文件有所不同,如果直接覆盖,会导致一些文件不正确,而这个压缩包就是根据ns2.27来修改的,所以只会在ns2.27上增加需要的东西。命令为:、
gunzip mit.tar.gz tar -xvf mit.tar3. 然后修改Makefile,可以下载一个修改好的文件,直接覆盖掉原来的,也可以在原来的基础上进行修改,如下:
添加-DMIT_uAMPS到DEFINE列表中(第60行);
添加-I./mit/rca -I./mit/uAMPS到INCLUDES列表中(第71行);
将以下内容添加到gaf/gaf.o \之前(第202行)。
mit/rca/energy.o mit/rca/rcagent.o \
mit/rca/rca-ll.o mit/rca/resource.o \
mac/mac-sensor-timers.o mac/mac-sensor.o mit/uAMPS/bsagent.o \
4. 清除以前的缓存:
make clean5. 重新编译NS2:
make
RCA_LIBRARY=mit/rca
export RCA_LIBRARY
uAMPS_LIBRARY=mit/uAMPS
export uAMPS_LIBRARY
添加环境变量。同时在shell的配置文件中(.bashrc)添加:
export RCA_LIBRARY=/opt/ns-allinone-2.27/ns-2.27/mit/rca
export uAMPS_LIBRARY=/opt/ns-allinone-2.27/ns-2.27/mit/uAMPS
这些相当关键,否则会出现错误:
can't read "env(RCA_LIBRARY)": no such variable
while executing
很多这些错误都是环境变量没有设置正确造成的(要了解普通用户和root用户环境配置文件的区别)。
7. 运行测试文件(test 的第四行和第五行要互换位置,否则会报错,找不到文件的):
./test
会调用leach-test,终端上会显示DONE!表示已经成功安装了LEACH协议,在leach_sims下的leach.err会记录相关信息。
运行中可能还会报各种错误,这个帖子的解决方案比较好:http://blog.163.com/xiaolh2008@126/blog/static/1355564222011125111927744/
在修改了一些脚本之后,要使用make clean命令清空,之后重新make。
/***************************************************************************************************************/
二、LEACH仿真数据的分析
1. 删除leach.out中的warnings:http://blog.csdn.net/delphiwcdj/article/details/6036109