我是ns2的初学者。我有两个固定节点,定期在网络中发送消息。这两个节点同时发送它们的周期性消息。而且,我的网络中有一些移动节点。我想优先通过TOA或TDOA方法计算移动节点和两个固定节点之间的距离(我们没有移动节点位置,节点没有配备GPS)。我不知道如何在考虑估计精确距离的情况下在NS2中的这些节点之间计算TOA或TDOA。我该怎么做? 这对我来说很紧急,请帮助我。
答案 0 :(得分:0)
# Distance calculation
set nbr [open distance w]
puts $nbr "\t\t\t\t\t Detail of positions"
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 distance 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)))]
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 distance 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 1.002 "distance $n($i) $n($j) $i $j"
}
}
以上行将在时间1.002打印所有节点之间的距离
here val(nn) denotes number of nodes.
答案 1 :(得分:0)