I would like to find the neighbor nodes list in sensor network. It would be great help if someone provides me sample tcl script for that. Thanks
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
# 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.