土豆

无线自组网,无线传感器网络
posts - 23, comments - 7, trackbacks - 0, articles - 4
   ::  :: 新随笔 :: 联系 ::  :: 管理

*************************************************************************************************************

                                     Network Simulation v2 ---- NS-2
*************************************************************************************************************

1、ubuntu下安装NS2

2、建议在linux下安装NS2的理由

3、NS2模拟仿真中的一般过程及要点

4、NS2中添加GPSR(KeLiu)协议

5、KeLiu-GPSR nam 文件无法正常打开 解决办法

6、利用KDevelop调试NS-2

*************************************************************************************************************
                                  无线自组网实战
*************************************************************************************************************
1、无线自组网产品及系统自主研发

2、手机自组网系统(Android操作系统)

3
手持自组网终端(Linux操作系统)

4、
通用无线自组网电台(上位机支持Linux操作系统,windows操作系统以及单片机非操作系统)

5
平板自组网终端(Linux操作系统)

6
通用自组网IP路由模块(上位机支持Linux操作系统,windows操作系统以及各种嵌入式实时操作系统)

7、航空自组网IP路由模块(上位机支持Linux操作系统,windows操作系统以及各种嵌入式实时操作系统

8、COFDM自组网电台(上位机支持Linux操作系统,windows操作系统以及各种嵌入式实时操作系统)

*************************************************************************************************************
                                   产品发布
*************************************************************************************************************

1、WR系列自组网电台

2、DR系列自组网电台

3、HR系列自组网电台

4、TR系列自组网电台

*************************************************************************************************************
                                   测试信息
*************************************************************************************************************










*************************************************************************************************************
           西安思后网络科技有限公司 www.ipmeshnet.com 
*************************************************************************************************************


posted @ 2010-10-05 12:00 土豆 阅读(300) | 评论 (0)编辑 收藏

        调试NS-2的方法有很多,常用的有两种,gdb 和 kdevelop,前者是基于文本调试方式, kdevelop是集成开发环境,如VC集成开发环境一样,源代码的编写,编译,调试都可以轻松地完成,接下来介绍一下利用KDevelop调试NS-2的方法

1、进入  ~/ns-allinone-2.30/ns-2.30/ , 修改Makefile, 让编译的结果带有调试信息在CCOPT = -Wall 中添加-g选项,即更改为 CCOPT =  -g  -Wall,保存退出。
2、将Makefile 改为 Makefile.am, 利用它来在KDevelop中自动添加相关文件并生成工程文件.
3、打开KDevelop, 选择菜单中 project | import existing project, 在弹出的对话中,路径定位到~/ns-allinone-2.30/ns-2.30/中,即Makefile.am所在路径。工程名称自己取一个,工程类型选择 Generic c++ Application(Custom Makefile)
4、点击确定,根据Makefile.am 自动生成KDevelop工程文件,并且自动导入所有需要的文件,工程建好后,在KDevelop 中可以看到NS中所定义的c++类,并可以方便地打开所需要编辑的文件进行编程工作。
5、把Makefile.am改回Makefile,在KDevelop内嵌的konsole里定位到~/ns-allinone-2.30/ns-2.30/下,执行make  clean  && make,  此时编译对象已添加了调试信息。


具体调试方法:

(1) 添加组件,或在现有组件上进行改进,建议先在现有组件上改进一点点,熟悉一下调试全过程。编程完后,保存改动过的文件。

(2) 在KDevelop内嵌的konsole里定位到~/ns-allinone-2.30/ns-2.30/下,执行make,此时可能会出现一些语法错误, 根据错误信息进行修改, 保存,重新make, 直至消除所有基本的语法错误。

(3) Console 里运行ns, 进入交互模式(%)

(4) 在KDevelop中选择菜单命令 Debug | Attach to process, 在对话框中选择ns进程并确定,调试器就和NS进程绑定了。

(5) 选择Debug | run, 让ns进程继续运行。

(6) 在konsole里ns 的交互模式下运行所要仿真的脚本 xxx.tcl , 即输入命令Source xxx.tcl, 程序出错并暂停。

(7) 在KDevelop中调用调试功能,类似于VC,可以定位错误, 可以观察变量的值, 可以设置断点,可以单步调试。

        对于明显的segment fault,可以设置断点,单步调试,观察变量值轻易地解决,但对于逻辑错误,则需要按照你设计程序的流程,判断可能出错的地方,多设断点,耐心地进行调试。
Email: 

posted @ 2010-10-04 00:41 土豆 阅读(688) | 评论 (0)编辑 收藏

        近来,有好多的同学发邮件问我同样一个问题:KeLiu-GPSR nam 文件无法正常打开?
说来真惭愧,自毕业工作之后,为了适应从学生到社会工作者的转变,生活、学习、工作方式和心态也发生了很大的变化,
尤其在儿子出生后,为了维持家的正常运转,为了满足没有止境的欲望,整日奔波,没有经常性地对这块博客地进行更新
以此表示抱歉。闲话少说,还是言归正传,回答一下开文提到的问题,希望对大家有帮助。

1、nam文件无法正常打开显示仿真场景的问题

按照上次博文中撰写的GPSR安装方法将GPSR_KeLiu安装完毕后,会出现nam文件无法正常打开显示仿真场景的问题,可以通过以下两个步骤来解决。(经过费劲的回忆和艰苦的调试)

原GPSR中关于nam文件的相关操作有

set namfile [open $opt(nam) w]

$ns_ namtrace-all $namfile

为了得到完整的nam文件必须对其进行修改

set namfile [open $opt(nam) w]

$ns_ namtrace-all-wireless $namfile $opt(x) $opt(y)  

因为对于无线移动场景的仿真,需要规定场景的大小,并且,在导入场景文件后,还需要记录场景中节点位置以及移动情况,因此需要添加如下代码

(1)找到导入场景的代码

if { $opt(sc) == "" } {

 puts "*** NOTE: no scenario file specified."

        set opt(sc) "none"

} else {

 puts "Loading scenario file..."

 source $opt(sc)

 puts "Load complete..."

}

在其后加入如下代码,用来记录场景中节点的初始化位置

for {set i 0} {$i < $opt(nn)} {incr i} {

       $ns_ initial_node_pos $node_($i) 10

}

(2)找到下面代码并在其中位置添加

for {set i 0} {$i < $opt(nn) } {incr i} {

gvar-create-mobile-node $i

#在这里添加如下代码,用来记录节点移动目的地及移动速度

$node_($i) namattach $namfile

}


有问题,欢迎再次发邮件,my email:

posted @ 2010-10-03 10:44 土豆 阅读(690) | 评论 (0)编辑 收藏

有些同学说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节点位置没有更新。
。。。。。。
想不起来了,呵呵,

当初在仿真调试中花了大量的时间对其进行了修补,遗憾的是,我的笔记已丢失,短时间内还无法与大家共享。等闲下来有空的时候我会慢慢去捡回记忆,大家有何问题,请联系.

posted @ 2009-04-01 13:59 土豆 阅读(1842) | 评论 (5)编辑 收藏


 在网上看到有好多的同学在windows&Cygwin下使用NS2,也有些同学在建议windows&VMware下使用NS2,
不过我强烈建议在Linux 下安装、学习NS2,其理由如下:

1 运行稳定,  编译快, 更重要的仿真速度快。(单系统比双系统要快;linux下的文本界面下运行仿真相当快)
2 结合KDevelop集成开发环境, 编译,调试方便。(犹如VC下编译调试程序)
3 可以好好地与linux来个亲密接触, linux原来如此魅力四射.(高手大多使用linux)

posted @ 2009-03-30 19:43 土豆 阅读(730) | 评论 (0)编辑 收藏

仅列出标题
共4页: 1 2 3 4