在这里,我们将完成一个简单的无线多跳场景
首先,定义的参数如下所示:
set val(chan)       Channel/WirelessChannel
set val(prop)       Propagation/TwoRayGround
set val(netif)      Phy/WirelessPhy
set val(mac)        Mac/802_11
set val(ifq)        Queue/DropTail/PriQueue
set val(ll)         LL
set val(ant)        Antenna/OmniAntenna
set val(x)              670   ;# X dimension of the topography
set val(y)              670   ;# Y dimension of the topography
set val(ifqlen)         50            ;# max packet in ifq
set val(seed)           0.0
set val(adhocRouting)   DSR
set val(nn)             3             ;# how many nodes are simulated
set val(cp)             "../mobility/scene/cbr-3-test" 
set val(sc)             "../mobility/scene/scen-3-test" 
set val(stop)           2000.0           ;# simulation time
在创建ns_(模拟器实例)后,打开一个文件(wireless1-out.tr)以获得无线跟踪。另外我们要设置nam曲线。
set tracefd  [open wireless1-out.tr w]      ;# for wireless traces
$ns_ trace-all $tracefdset namtrace [open wireless1-out.nam w]           ;# for nam tracing
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
创建移动节点之后,定义源节点移动和连接模式文件,分别是val(sc)和val(cp)。
# 
# Define node movement model
#
puts "Loading connection pattern..."
source $val(cp)# 
# Define traffic model
#
puts "Loading scenario file..."
source $val(sc)
 在节点移动文件scen-3测试中,我们看到节点移动命令,如
$ns_ at 50.000000000000 "$node_(2) setdest 369.463244915743 \
170.519203111152 3.371785899154"这意味着在时刻50s,节点2以3.37m / s的速度开始向目的地(369.4,170.5)移动。
$god_ set-dist 1 2 2上句用于加载具有最短跳信息的god对象的命令行。 这意味着节点1和节点2之间的最短路径是2跳。 通过提供这种信息,防止在模拟运行期间神对象在节点之间的最短距离的计算,能节省下来不少时间。