2016-12-31 36 views
0

我在NS2仿真是新的,如果這個問題很簡單,我的that.This對不起的就是我的TCL代碼,我創造了我的場景文件與此代碼:不能讀「的ns_」:沒有這樣的變量

./setdest -n 250 -p 0.0 -M 10.0 -t 10 -x 1500 -y 1500 > S250 

ns cbrgen.tcl -type tcp -nn 250 -seed 1.0 -mc 100 > T250 

但是當我試圖運行模擬I所示此錯誤。

can't read "ns_": no such variable 
    while executing 
"global $ns_" 
    (file "wireless.tcl" line 24) 

你能幫我談談這個話題嗎?這將非常感激。

# ====================================================================== 
# Define options 
# ====================================================================== 
set val(chan)   Channel/WirelessChannel ;# channel type 
set val(prop)   Propagation/TwoRayGround ;# radio-propagation model 
set val(netif)   Phy/WirelessPhy   ;# network interface type 
set val(mac)   Mac/802_11     ;# MAC type 
set val(ifq)   Queue/DropTail/PriQueue ;# interface queue type 
set val(ll)    LL       ;# link layer type 
set val(ant)   Antenna/OmniAntenna  ;# antenna model 
set val(ifqlen)   50       ;# max packet in ifq 
set val(nn)    250      ;# number of mobilenodes 
set val(rp)    AODV      ;# routing protocol 
set val(cp)    T250   
set val(sc)    S250     

# ==================================================== ================= 
# Main Program 
# ====================================================================== 

set ns [new Simulator] 
set tracefd  [open out.tr w] 
set winfile [open winFile w] 
global $ns_ 

$ns trace-all $tracefd 
set namtrace [open out.nam w] 
$ns namtrace-all-wireless $namtrace 1500 1500 

set topo [new Topography] 
$topo load_flatgrid 1500 1500 

create-god $val(nn) 

$ns node-config -adhocRouting $val(rp) \ 
       -llType $val(ll) \ 
       -macType $val(mac) \ 
       -ifqType $val(ifq) \ 
       -ifqLen $val(ifqlen) \ 
       -antType $val(ant) \ 
       -propType $val(prop) \ 
       -phyType $val(netif) \ 
       -channelType $val(chan) \ 
     -topoInstance $topo \ 
     -agentTrace ON \ 
       -routerTrace ON \ 
       -macTrace OFF \ 
      -mvementTrace ON \ 

for {set i 0} {$i < $val(nn) } {incr i} { 
    set node_($i) [$ns_ node] 
} 
puts "Loading scenario file..." 
source $val(sc) 

puts "Loading connection pattern..." 
source $val(cp) 

# Tell nodes when the simulation ends 

for {set i 0} {$i < $val(nn) } {incr i} { 
    $ns_ at 10.0 "$node_($i) reset"; 
} 

$ns_ at 10.0 "stop" 
$ns_ at 10.01 "puts \"NS EXITING...\" ; $ns_ halt" 
proc stop {} { 

    global ns_ tracefd 
    $ns_ flush-trace 
    close $tracefd 
     exec nam out.nam & 
     exit 0 
} 

puts "Starting Simulation..." 
$ns_ run 
+0

你一定要明白,你的代碼打印'NS退出...'和停止模擬器將永遠不會被運行?你在'stop'中的代碼會在這個過程發生之前終止進程。 –

回答

3

嘗試的

global ns_ 

代替

global $ns_ 

ns_是varible的名稱。 $ns_是變量的值。你用它的名字來聲明它。

+0

非常感謝彼得,現在我發現我的錯誤。我改變了所有納秒與ns_.now其工作,感謝這麼多。 –

相關問題