如何在ns2中查找邻居列表

时间:2013-09-03 07:28:53

标签: tcl ns2

我想在传感器网络中找到邻居节点列表。如果有人为我提供了样本tcl脚本,那将会很有帮助。感谢

1 个答案:

答案 0 :(得分:0)

# neighbor node calculation

set nbr [open Neighbor w]

puts $nbr "\t\t\t\t\tNeighbor Detail"

puts $nbr "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

puts $nbr "\tNode\t\tNb node\t\tNode-Xpos\tNode-Ypos\tNb-Xpos\t\tNb-Ypos\t\tDistance(d)"

puts $nbr "\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"

close $nbr

proc distance { n1 n2 nd1 nd2} {

  global c n bnd src dst j0 j1 

  set a 0

  set nbr [open Neighbor a]

  set x1 [expr int([$n1 set X_])]

  set y1 [expr int([$n1 set Y_])]

 set x2 [expr int([$n2 set X_])]

  set y2 [expr int([$n2 set Y_])]

  set d [expr int(sqrt(pow(($x2-$x1),2)+pow(($y2-$y1),2)))]

  if {$d<300} {

    if {$nd2!=$nd1} {

      puts $nbr "\t$nd1\t\t$nd2\t\t$x1\t\t$y1\t\t$x2\t\t$y2\t\t$d"

    }
    }



  close $nbr
}



U can use above function to print neighbor node's of all nodes in ns2.

调用函数“distance”打印邻居列表     例如,

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

        $ns at 10.002 "distance $n($i) $n($j) $i $j" 
      }
    }

here val(nn) denotes number of nodes.