# ======================================================================# 
Define options# 
======================================================================set 
opt(chan)  Channel/WirelessChannelset opt(prop)  Propagation/TwoRayGroundset 
opt(netif)  Phy/WirelessPhyset opt(mac)  Mac/802_11set opt(ifq)  
Queue/DropTail/PriQueueset opt(ll)  LLset opt(ant)            
Antenna/OmniAntenna
set opt(ifqlen)  50 ;# max packet in ifq 50set opt(seed)  0set opt(tr)  
"gridnovo.tr" ;# trace fileset opt(nam)            "qarp.nam"  ;# nam fileset 
opt(engmodel)       EnergyModel     ;set opt(txPower)        0.01488;set 
opt(rxPower)        0.002;#0.01250;set opt(idlePower)      0.0; #0.01236;set 
opt(initeng)        0.04#0.02         ;# Initial energy in Joulesset 
opt(logeng)         "off"           ;# log energy every 1 secondsset opt(lm)    
         "off"           ;# log movementset opt(x)  1200 ;# X dimension of the 
topographyset opt(y)  1200     ;# Y dimension of the topographyset opt(nn)  10 
;# number of nodes 10set opt(nxn)  3 ;set opt(stop)  4 ;# simulation timeset 
opt(prestop)        4     ;# time to prepare to stop
set opt(god)            offset opt(traf)  "node_setup.tcl"      ;# traffic 
fileset opt(topo)  "sce-grid-gen"   ;# topology fileset opt(onoff)          ""  
    ;#node on-offset opt(adhocRouting)   RTALGO/RATEset opt(enablePos)      
"true";set opt(enableNeg)      "true";set opt(subTxType)      BROADCAST;set 
opt(orgTxType)      UNICAST;set opt(posType)        ALL;set opt(posNodeType)    
INTM;set opt(negWinType)     TIMER;set opt(negThrType)     ABSOLUTE;set 
opt(negMaxType)     FIXED;set opt(duplicate)      "disable-duplicate"set 
opt(suppression)    "true"
# ======================================================================
LL set mindelay_  50usLL set delay_   25usLL set bandwidth_  39321.6;# 38.4 Kbps
Queue/DropTail/PriQueue set Prefer_Routing_Protocols    1
# unity gain, omni-directional antennas# set up the antennas to be centered in 
the node and 1.5 meters above itAntenna/OmniAntenna set X_ 0Antenna/OmniAntenna 
set Y_ 0Antenna/OmniAntenna set Z_ 1.5Antenna/OmniAntenna set Gt_ 
1.0Antenna/OmniAntenna set Gr_ 1.0
# Initialize the SharedMedia interface with parameters to make# it work like 
the 914MHz Lucent WaveLAN DSSS radio interface 0.2818 rx 3.652e-10 CSThresh_ 
1.559e-11Phy/WirelessPhy set CPThresh_ 10.0Phy/WirelessPhy set CSThresh_ 
1.76149e-14Phy/WirelessPhy set RXThresh_ 3.652e-10Phy/WirelessPhy set Rb_ 
2*1e6Phy/WirelessPhy set Pt_ 0.281838Phy/WirelessPhy set freq_ 
914e+6Phy/WirelessPhy set L_ 1.0#Pt_ = 8.5872e-4; // For 40m transmission 
range.#Pt_ = 0.0002145; // For 20m transmission range.
 
# ======================================================================
proc usage { argv0 }  {    puts "Usage: $argv0"    puts "\t\t\[-topo topology 
file\] \[-traf traffic file\]"    puts "\t\t\[-x max x\] \[-y max y\] \[-seed 
seed\]"    puts "\t\t\[-nam nam file\] \[-tr trace file\] \[-logeng on or 
off\]"    puts "\t\t\[-stop time to stop\] \[-prestop time to prepare to 
stop\]"    puts "\t\t\[-initeng initial energy\] \[-engmodel energy model\]"    
puts "\t\t\[-chan channel model\] \[-prop propagation model\]"    puts 
"\t\t\[-netif network interface\] \[-mac mac layer\]"    puts "\t\t\[-ifq 
interface queue\] \[-ll link layer\] \[-ant antena\]"    puts "\t\t\[-ifqlen 
interface queue length\] \[-nn number of nodes\]"}
proc getopt {argc argv} { global opt lappend optlist cp nn seed sc stop tr x y
 for {set i 0} {$i < $argc} {incr i} {  set arg [lindex $argv $i]  if {[string 
range $arg 0 0] != "-"} continue
  set name [string range $arg 1 end]  set opt($name) [lindex $argv [expr $i+1]] 
}}
proc finish {} {    global ns_ nf opt god_ node_
    $ns_ terminate-all-agents
#    $god_ dump    $god_ dump_num_send
    $ns_ use-newtrace    $ns_ flush-trace
    if [info exists tracefd] { close $tracefd exec xgraph 
testes/rtALGO/trace/novogrid.tr -geometry 800X400# exec rm -f $opt(tr)    }
    if [info exists nf] {        close $nf# exec rm -f $opt(nam)        exec 
nam $opt(nam) &# exec gzip $opt(nam)    }
    exit 0}
proc cmu-trace { ttype atype node } { global ns_ tracefd
 if { $tracefd == "" } {  return "" } set T [new CMUTrace/$ttype $atype] $T 
target [$ns_ set nullAgent_] $T attach $tracefd        $T set src_ [$node id]
        $T node $node
 return $T}
# ======================================================================# Main 
Program# 
======================================================================getopt 
$argc $argv
# do the get opt again incase the routing protocol file added some more# 
options to look for
getopt $argc $argv
if {$opt(seed) > 0} { puts "Seeding Random number generator with $opt(seed)\n" 
ns-random $opt(seed)}
## Initialize Global Variables#
set ns_  [new Simulator]
# define color index
$ns_ color 0 red$ns_ color 1 blue$ns_ color 2 chocolate$ns_ color 3 yellow$ns_ 
color 4 blue$ns_ color 5 tan$ns_ color 6 gold$ns_ color 7 green$ns_ color 10 
black$ns_ color 11 gold$ns_ color 12 green
set topo [new Topography]
if { $opt(nam) != "" } {    set nf [open $opt(nam) w]    $ns_ 
namtrace-all-wireless $nf $opt(x) $opt(y)}
if { $opt(tr) != ""} {    set tracefd [open $opt(tr) w]    $ns_ trace-all 
$tracefd}
$topo load_flatgrid $opt(x) $opt(y)
# Create God
set god_ [create-god $opt(nn)]
$god_ $opt(god)$god_ allow_to_stop$god_ num_data_types 1
# log the mobile nodes movements if desired
if { $opt(lm) == "on" } {    log-movement}
#global node setting
$ns_ node-config -adhocRouting $opt(adhocRouting) \   -llType $opt(ll) \   
-macType $opt(mac) \   -ifqType $opt(ifq) \   -ifqLen $opt(ifqlen) \   -antType 
$opt(ant) \   -propType $opt(prop) \   -phyType $opt(netif) \   -channelType 
$opt(chan) \   -topoInstance $topo \   -agentTrace ON \                 
-routerTrace ON \                 -macTrace ON \   -energyModel $opt(engmodel) 
\   -initialEnergy $opt(initeng) \   -txPower  $opt(txPower) \   -rxPower  
$opt(rxPower) \   -idlePower  $opt(idlePower)
 
#  Create the specified number of nodes [$opt(nn)] and "attach" them#  to the 
channel.
 
for {set i 0} {$i < $opt(nn) } {incr i} { set node_($i) [$ns_ node $i]        
$node_($i) color blue $node_($i) random-motion 0  ;# disable random motion      
  $god_ new_node $node_($i)}
#$ns_ at 0.01 {[$node_(0) set netif_(0)] set Pt_ 250.0}
puts " vai entrar no arquivo scr-gen-grid"if { $opt(topo) == "" } { puts "*** 
NOTE: no topology file specified."        set opt(topo) "none"} else { puts 
"Loading topology file..." source $opt(topo) puts "Load complete..."}
for {set i 0} {$i < $opt(nn)} {incr i} {    $node_($i) namattach $nf# 20 
defines the node size in nam, must adjust it according to your scenario   $ns_ 
initial_node_pos $node_($i) 20}
if { $opt(onoff) == "" } { puts "*** NOTE: no node-on-off file specified."      
  set opt(onoff) "none"} else { puts "Loading node on-off file..." source 
$opt(onoff) puts "Load complete..."}
## log energy if desired#
if { $opt(logeng) == "on" } {    log-energy}
## Source the traffic scripts#
if { $opt(traf) == "" } { puts "*** NOTE: no traffic file specified."        
set opt(traf) "none"} else { puts "Loading traffic file..." source $opt(traf)}
## Tell all the nodes when the simulation ends#
$ns_ at $opt(prestop) "$ns_ prepare-to-stop"$ns_ at $opt(stop).00000001    
"finish"
for {set i 0} {$i < $opt(nn) } {incr i} {    $ns_ at $opt(stop).00000002 
"$node_($i) reset";}
# tell nam the simulation stop time$ns_ at  $opt(stop).00000003 "$ns_ 
nam-end-wireless $opt(stop)"
$ns_ at $opt(stop).00000004 "puts \"NS EXITING...\" ; $ns_ halt"
puts $tracefd "M 0.0 nn $opt(nn) x $opt(x) y $opt(y)"puts $tracefd "M 0.0 topo 
$opt(topo) traf $opt(traf) seed $opt(seed)"puts $tracefd "M 0.0 prop $opt(prop) 
ant $opt(ant)"
puts "Starting Simulation..."$ns_ run
 
 
 
 



> Date: Fri, 2 Mar 2007 08:32:32 -0800> From: [EMAIL PROTECTED]> To: 
> [email protected]> Subject: Re: [ns] scenario files> > > source file.scn> > 
> This command is like "#include" in C, in that it just pulls the file> into 
> your script. At least that is how I use scenario files. Maybe> there is a 
> better way.> > Scott> > On 2 Mar 2007 08:52:40 -0000, shalini c. thilakan> 
> <[EMAIL PROTECTED]> wrote:> >> > what is the procedure for including scenario 
> files in the tcl scripts for simluating wireless networks with large number 
> of nodes(like 50-100)?please help!> >> 
_________________________________________________________________
O Windows Live Spaces está aqui! Descubra como é fácil criar seu espaço na Web 
e sua rede amigos.
http://spaces.live.com/signup.aspx

Reply via email to