# ======================================================================#
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