关闭

leach 分析3

813人阅读 评论(2) 收藏 举报

对前面两个脚本进行分析后,已经创建好节点和设置好节点的初始能量,将opt(nn_)-1个节点设置为普通节点,而将opt(nn_)设置为bs。

现在对ns-ranode.tcl进行分析。好了我们现在就开始分析这个脚本。

Class MobileNode/ResourceAwareNode -superclass Node/MobileNode

MobileNode/ResourceAwareNode instproc init args

set bs_node [lindex $args 0]
    eval $self next [lreplace $args 0 0]
  

args由参数传递进来,若节点为簇头节点则bs_node=1,调用父类初始化函数。

 set ResourceManager_ [new ResourceManager]
    $ResourceManager_ Register [new Resource/NeighborResource]
   
 set energy [new Resource/Energy]
    $ResourceManager_ Register $energy

ResourceManager在ns-resouce-manager.tcl中定义的。Resource/NeighborResource在ns-neighbor-resource

。对能量进行管理。

        # Create a new agent and attach it to the node
   
     if {$bs_node == 1} {
     
  set agent [new Agent/BSAgent]
   
   } else {
     
 set agent [new Agent/RCAgent]
   
     }
 
     set rca_agent_ $agent

      普通节点的应用为RCAgent,BS的应用为BSAGgent。   并将应用attch到node上。

        下面两段看不明白,但是这两段不影响看程序。

       set haslist [find_haslist [$self id]]
       if {$bs_node == 1} {
       set rca [new $opt(bsapp)]
       } else {
       set rca [new $opt(rcapp) $opt(mtype) $wantslist $haslist]
       }
       $ns_ attach-agent $self $agent
       $rca attach-agent $agent

       set rca_app_ $rca

将bs节点的应用设置为bsapp,普通节点的应用设置为rcaapp,并将节点的服务设置为不同的服务。bsapp在ns-app.tcl中。$opt(rcapp)定义在leach.tcl中,opt(mtype)定义在leach.tcl中

set opt(rcapp)        "Application/LEACH"        ;# Application type

set opt(ra_adv)       [TxTime [expr $opt(hdr_size) + 4]]  
                                          ;# Total time (s) for CH ADVs
                                          ;# Assume max 4(nn*%) CHs
set opt(ra_adv_total) [expr $opt(ra_adv)*($opt(num_clusters)*4 + 1)]
                                          ;# RA Time (s) for nodes' join reqs
set opt(ra_join)      [expr 0.01 * $opt(nn_)]             
                                          ;# Buffer time for join req xmittal
set opt(ra_delay)     [TxTime [expr $opt(hdr_size) + 4]]         
                                          ;# Maximum time required to transmit 
                                          ;# a schedule (n nodes in 1 cluster)
set opt(xmit_sch)     [expr 0.005 + [TxTime [expr $opt(nn_)*4+$opt(hdr_size)]]]
                                          ;# Overhead time for cluster set-up
set opt(start_xmit)   [expr $opt(ra_adv_total) + $opt(ra_join) + $opt(xmit_sch)]

一般节点的应用为Application/LEACH,最终sink节点的应用为Application/BSApp。

通过前3次的分析得出,在分析1中定义变量,在分析2中创建leach节点,在分析3中将节点的应用绑定在节点上。

下面将分析leach的主要协议ns-leach.tcl脚本。



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:91663次
    • 积分:1231
    • 等级:
    • 排名:千里之外
    • 原创:27篇
    • 转载:35篇
    • 译文:0篇
    • 评论:42条
    NS2研究群
    66536296
    文章分类
    最新评论