Tuesday, 7 January 2014

 

How to find neighbor list in ns2

 

Solution:



# 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.
 call the function"distance" to print neighbor list
    for example,

    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.

1 comment:

  1. Hi, Great site and very useful.
    Sir,
    I need an awk script to figure out the ratio between the actual numbers of a node’s neighbors (i.e., neighbors in its transmission range) to those listed in the same node’s neieghbors-list. I’m working on GPSR routing protocol in NS2.
    Have you got one or, if not, can you point me to where I might find one. Any help greatly appreciated,
    Nashmi

    ReplyDelete