Hi All,

I want to use "802_15_4" in my simulation what should I install to take into
consideration??
Thank you in advance.


naveen prabu wrote:
> 
> 
> I have pasted sample tcl file and scenario file here...
> save scn file as wsn1.scn and tcl file as (say)wsn1.tcl and run tcl
> file...
> 
> try runnin this....if any bugs then let me know...
> 
> wsn1.tcl
> 
> 
> # ======================================================================
> # Define options
> # ======================================================================
> set val(chan)           Channel/WirelessChannel    ;# Channel Type
> set val(prop)           Propagation/TwoRayGround   ;# radio-propagation
> model
> set val(netif)          Phy/WirelessPhy/802_15_4
> set val(mac)            Mac/802_15_4
> 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)             25                         ;# number of
> mobilenodes
> set val(rp)             AODV                       ;# routing protocol
> set val(x)            50
> set val(y)            50
> 
> set val(nam)          wsn1.nam
> set val(traffic)      ftp                        ;# cbr/poisson/ftp
> 
> #read command line arguments
> proc getCmdArgu {argc argv} {
>         global val
>         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 val($name) [lindex $argv [expr $i+1]]
>         }
> }
> getCmdArgu $argc $argv
> 
> set appTime1            0.0   ;# in seconds
> set appTime2            0.3   ;# in seconds
> set appTime3            0.7   ;# in seconds
> set stopTime            100   ;# in seconds
> 
> # Initialize Global Variables
> set ns_               [new Simulator]
> set tracefd     [open ./wsn1.tr w]
> $ns_ trace-all $tracefd
> if { "$val(nam)" == "wsn1.nam" } {
>         set namtrace     [open ./$val(nam) w]
>         $ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
> }
> 
> $ns_ puts-nam-traceall {# nam4wpan #}         ;# inform nam that this is a
> trace file for wpan (special handling needed)
> 
> Mac/802_15_4 wpanNam namStatus on             ;# default = off (should be 
> turned
> on before other 'wpanNam' commands can work)
> #Mac/802_15_4 wpanNam ColFlashClr gold                ;# default = gold
> #Mac/802_15_4 wpanNam NodeFailClr grey                ;# default = grey
> 
> 
> # For model 'TwoRayGround'
> set dist(5m)  7.69113e-06
> set dist(9m)  2.37381e-06
> set dist(10m) 1.92278e-06
> set dist(11m) 1.58908e-06
> set dist(12m) 1.33527e-06
> set dist(13m) 1.13774e-06
> set dist(14m) 9.81011e-07
> set dist(15m) 8.54570e-07
> set dist(16m) 7.51087e-07
> set dist(20m) 4.80696e-07
> set dist(25m) 3.07645e-07
> set dist(30m) 2.13643e-07
> set dist(35m) 1.56962e-07
> set dist(40m) 1.20174e-07
> Phy/WirelessPhy set CSThresh_ $dist(15m)
> Phy/WirelessPhy set RXThresh_ $dist(15m)
> 
> # set up topography object
> set topo       [new Topography]
> $topo load_flatgrid $val(x) $val(y)
> 
> # Create God
> set god_ [create-god $val(nn)]
> 
> set chan_1_ [new $val(chan)]
> 
> # configure node
> 
> $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) \
>               -topoInstance $topo \
>               -agentTrace OFF \
>               -routerTrace OFF \
>               -macTrace ON \
>               -movementTrace OFF \
>                 #-energyModel "EnergyModel" \
>                 #-initialEnergy 1 \
>                 #-rxPower 0.3 \
>                 #-txPower 0.3 \
>               -channel $chan_1_
> 
> for {set i 0} {$i < $val(nn) } {incr i} {
>       set node_($i) [$ns_ node]       
>       $node_($i) random-motion 0              ;# disable random motion
> }
> 
> source ./wsn1.scn
> 
> # Setup traffic flow between nodes
> 
> proc cbrtraffic { src dst interval starttime } {
>    global ns_ node_
>    set udp($src) [new Agent/UDP]
>    eval $ns_ attach-agent \$node_($src) \$udp($src)
>    set null($dst) [new Agent/Null]
>    eval $ns_ attach-agent \$node_($dst) \$null($dst)
>    set cbr($src) [new Application/Traffic/CBR]
>    eval \$cbr($src) set packetSize_ 70
>    eval \$cbr($src) set interval_ $interval
>    eval \$cbr($src) set random_ 0
>    #eval \$cbr($src) set maxpkts_ 10000
>    eval \$cbr($src) attach-agent \$udp($src)
>    eval $ns_ connect \$udp($src) \$null($dst)
>    $ns_ at $starttime "$cbr($src) start"
> }
> 
> proc poissontraffic { src dst interval starttime } {
>    global ns_ node_
>    set udp($src) [new Agent/UDP]
>    eval $ns_ attach-agent \$node_($src) \$udp($src)
>    set null($dst) [new Agent/Null]
>    eval $ns_ attach-agent \$node_($dst) \$null($dst)
>    set expl($src) [new Application/Traffic/Exponential]
>    eval \$expl($src) set packetSize_ 70
>    eval \$expl($src) set burst_time_ 0
>    eval \$expl($src) set idle_time_ [expr
> $interval*1000.0-70.0*8/250]ms        ;# idle_time + pkt_tx_time = interval
>    eval \$expl($src) set rate_ 250k
>    eval \$expl($src) attach-agent \$udp($src)
>    eval $ns_ connect \$udp($src) \$null($dst)
>    $ns_ at $starttime "$expl($src) start"
> }
> 
> if { ("$val(traffic)" == "cbr") || ("$val(traffic)" == "poisson") } {
>    puts "\nTraffic: $val(traffic)"
>    #Mac/802_15_4 wpanCmd ack4data on
>    puts [format "Acknowledgement for data: %s" [Mac/802_15_4 wpanCmd
> ack4data]]
>    set lowSpeed 0.5ms
>    set highSpeed 1.5ms
>    Mac/802_15_4 wpanNam PlaybackRate $lowSpeed
>    $ns_ at [expr $appTime1+0.1] "Mac/802_15_4 wpanNam PlaybackRate
> $highSpeed"
>    $ns_ at $appTime2 "Mac/802_15_4 wpanNam PlaybackRate $lowSpeed"
>    $ns_ at [expr $appTime2+0.1] "Mac/802_15_4 wpanNam PlaybackRate
> $highSpeed"
>    $ns_ at $appTime3 "Mac/802_15_4 wpanNam PlaybackRate $lowSpeed"
>    $ns_ at [expr $appTime3+0.1] "Mac/802_15_4 wpanNam PlaybackRate
> $highSpeed"
>    eval $val(traffic)traffic 19 6 0.2 $appTime1
>    eval $val(traffic)traffic 10 4 0.2 $appTime2
>    eval $val(traffic)traffic 3 2 0.2 $appTime3
>    Mac/802_15_4 wpanNam FlowClr -p AODV -c tomato
>    Mac/802_15_4 wpanNam FlowClr -p ARP -c green
>    if { "$val(traffic)" == "cbr" } {
>       set pktType cbr
>    } else {
>       set pktType exp
>    }
>    Mac/802_15_4 wpanNam FlowClr -p $pktType -s 19 -d 6 -c blue
>    Mac/802_15_4 wpanNam FlowClr -p $pktType -s 10 -d 4 -c green4
>    Mac/802_15_4 wpanNam FlowClr -p $pktType -s 3 -d 2 -c cyan4
>    $ns_ at $appTime1 "$node_(19) NodeClr blue"
>    $ns_ at $appTime1 "$node_(6) NodeClr blue"
>    $ns_ at $appTime1 "$ns_ trace-annotate \"(at $appTime1)
> $val(traffic) traffic from node 19 to node 6\""
>    $ns_ at $appTime2 "$node_(10) NodeClr green4"
>    $ns_ at $appTime2 "$node_(4) NodeClr green4"
>    $ns_ at $appTime2 "$ns_ trace-annotate \"(at $appTime2)
> $val(traffic) traffic from node 10 to node 4\""
>    $ns_ at $appTime3 "$node_(3) NodeClr cyan3"
>    $ns_ at $appTime3 "$node_(2) NodeClr cyan3"
>    $ns_ at $appTime3 "$ns_ trace-annotate \"(at $appTime3)
> $val(traffic) traffic from node 3 to node 2\""
> }
> 
> proc ftptraffic { src dst starttime } {
>    global ns_ node_
>    set tcp($src) [new Agent/TCP]
>    eval \$tcp($src) set packetSize_ 60
>    set sink($dst) [new Agent/TCPSink]
>    eval $ns_ attach-agent \$node_($src) \$tcp($src)
>    eval $ns_ attach-agent \$node_($dst) \$sink($dst)
>    eval $ns_ connect \$tcp($src) \$sink($dst)
>    set ftp($src) [new Application/FTP]
>    eval \$ftp($src) attach-agent \$tcp($src)
>    $ns_ at $starttime "$ftp($src) start"
> }
> 
> if { "$val(traffic)" == "ftp" } {
>    puts "\nTraffic: ftp"
>    #Mac/802_15_4 wpanCmd ack4data off
>    puts [format "Acknowledgement for data: %s" [Mac/802_15_4 wpanCmd
> ack4data]]
>    set lowSpeed 0.20ms
>    set highSpeed 1.5ms
>    Mac/802_15_4 wpanNam PlaybackRate $lowSpeed
>    $ns_ at [expr $appTime1+0.2] "Mac/802_15_4 wpanNam PlaybackRate
> $highSpeed"
>    $ns_ at $appTime2 "Mac/802_15_4 wpanNam PlaybackRate $lowSpeed"
>    $ns_ at [expr $appTime2+0.2] "Mac/802_15_4 wpanNam PlaybackRate
> $highSpeed"
>    $ns_ at $appTime3 "Mac/802_15_4 wpanNam PlaybackRate $lowSpeed"
>    $ns_ at [expr $appTime3+0.2] "Mac/802_15_4 wpanNam PlaybackRate 1ms"
>    ftptraffic 19 6 $appTime1
>    ftptraffic 10 4 $appTime2
>    ftptraffic 3 2 $appTime3
>    Mac/802_15_4 wpanNam FlowClr -p AODV -c tomato
>    Mac/802_15_4 wpanNam FlowClr -p ARP -c green
>    Mac/802_15_4 wpanNam FlowClr -p tcp -s 19 -d 6 -c blue
>    Mac/802_15_4 wpanNam FlowClr -p ack -s 6 -d 19 -c blue
>    Mac/802_15_4 wpanNam FlowClr -p tcp -s 10 -d 4 -c green4
>    Mac/802_15_4 wpanNam FlowClr -p ack -s 4 -d 10 -c green4
>    Mac/802_15_4 wpanNam FlowClr -p tcp -s 3 -d 2 -c cyan4
>    Mac/802_15_4 wpanNam FlowClr -p ack -s 2 -d 3 -c cyan4
>    $ns_ at $appTime1 "$node_(19) NodeClr blue"
>    $ns_ at $appTime1 "$node_(6) NodeClr blue"
>    $ns_ at $appTime1 "$ns_ trace-annotate \"(at $appTime1) ftp traffic
> from node 19 to node 6\""
>    $ns_ at $appTime2 "$node_(10) NodeClr green4"
>    $ns_ at $appTime2 "$node_(4) NodeClr green4"
>    $ns_ at $appTime2 "$ns_ trace-annotate \"(at $appTime2) ftp traffic
> from node 10 to node 4\""
>    $ns_ at $appTime3 "$node_(3) NodeClr cyan3"
>    $ns_ at $appTime3 "$node_(2) NodeClr cyan3"
>    $ns_ at $appTime3 "$ns_ trace-annotate \"(at $appTime3) ftp traffic
> from node 3 to node 2\""
> }
> 
> # defines the node size in nam
> for {set i 0} {$i < $val(nn)} {incr i} {
>       $ns_ initial_node_pos $node_($i) 2
> }
> 
> # Tell nodes when the simulation ends
> for {set i 0} {$i < $val(nn) } {incr i} {
>     $ns_ at $stopTime "$node_($i) reset";
> }
> 
> $ns_ at $stopTime "stop"
> $ns_ at $stopTime "puts \"\nNS EXITING...\""
> $ns_ at $stopTime "$ns_ halt"
> 
> proc stop {} {
>     global ns_ tracefd val env
>     $ns_ flush-trace
>     close $tracefd
>     set hasDISPLAY 0
>     foreach index [array names env] {
>         #puts "$index: $env($index)"
>         if { ("$index" == "DISPLAY") && ("$env($index)" != "") } {
>                 set hasDISPLAY 1
>         }
>     }
>     if { ("$val(nam)" == "wsn1.nam") && ("$hasDISPLAY" == "1") } {
>           exec ./nam wsn1.nam &
>     }
> }
> 
> puts "\nStarting Simulation..."
> $ns_ run
> 
> 
> --------------------------------
> wsn1.scn
> 
> #
> # nodes: 25, pause: 2.00, max speed: 2.00  max x = 50.00, max y: 50.00
> #
> $node_(0) set X_ 26.608377307314
> $node_(0) set Y_ 49.446991827566
> $node_(0) set Z_ 0.000000000000
> $node_(1) set X_ 49.337311778721
> $node_(1) set Y_ 48.582820874924
> $node_(1) set Z_ 0.000000000000
> $node_(2) set X_ 27.437938215931
> $node_(2) set Y_ 30.091658830425
> $node_(2) set Z_ 0.000000000000
> $node_(3) set X_ 10.568766842667
> $node_(3) set Y_ 47.453389414657
> $node_(3) set Z_ 0.000000000000
> $node_(4) set X_ 32.496269526711
> $node_(4) set Y_ 2.257450139045
> $node_(4) set Z_ 0.000000000000
> $node_(5) set X_ 26.476535726599
> $node_(5) set Y_ 38.646396828920
> $node_(5) set Z_ 0.000000000000
> $node_(6) set X_ 49.430596917301
> $node_(6) set Y_ 31.320042376073
> $node_(6) set Z_ 0.000000000000
> $node_(7) set X_ 20.045665842364
> $node_(7) set Y_ 32.537008965783
> $node_(7) set Z_ 0.000000000000
> $node_(8) set X_ 13.641089465783
> $node_(8) set Y_ 28.871428688349
> $node_(8) set Z_ 0.000000000000
> $node_(9) set X_ 2.125856848941
> $node_(9) set Y_ 9.049644538277
> $node_(9) set Z_ 0.000000000000
> $node_(10) set X_ 0.596871605178
> $node_(10) set Y_ 0.816174228621
> $node_(10) set Z_ 0.000000000000
> $node_(11) set X_ 8.828197591068
> $node_(11) set Y_ 34.402175912553
> $node_(11) set Z_ 0.000000000000
> $node_(12) set X_ 18.759762507870
> $node_(12) set Y_ 25.069997591097
> $node_(12) set Z_ 0.000000000000
> $node_(13) set X_ 13.277017351151
> $node_(13) set Y_ 5.522149009306
> $node_(13) set Z_ 0.000000000000
> $node_(14) set X_ 28.935083056450
> $node_(14) set Y_ 37.156742480258
> $node_(14) set Z_ 0.000000000000
> $node_(15) set X_ 23.507724673396
> $node_(15) set Y_ 3.566772846479
> $node_(15) set Z_ 0.000000000000
> $node_(16) set X_ 20.236128396148
> $node_(16) set Y_ 45.484419961171
> $node_(16) set Z_ 0.000000000000
> $node_(17) set X_ 45.709636471608
> $node_(17) set Y_ 48.353113573382
> $node_(17) set Z_ 0.000000000000
> $node_(18) set X_ 45.610349971557
> $node_(18) set Y_ 49.787732692400
> $node_(18) set Z_ 0.000000000000
> $node_(19) set X_ 24.345058881159
> $node_(19) set Y_ 19.614188426582
> $node_(19) set Z_ 0.000000000000
> $node_(20) set X_ 35.972132273531
> $node_(20) set Y_ 10.620805728046
> $node_(20) set Z_ 0.000000000000
> $node_(21) set X_ 49.626765649851
> $node_(21) set Y_ 14.028905860151
> $node_(21) set Z_ 0.000000000000
> $node_(22) set X_ 14.914806804685
> $node_(22) set Y_ 24.094071765795
> $node_(22) set Z_ 0.000000000000
> $node_(23) set X_ 28.443020411336
> $node_(23) set Y_ 24.367299319338
> $node_(23) set Z_ 0.000000000000
> $node_(24) set X_ 48.102836431793
> $node_(24) set Y_ 22.394995544608
> $node_(24) set Z_ 0.000000000000
> 
> -------------
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/sample-code-for-wsn-tp21750960p25712965.html
Sent from the ns-users mailing list archive at Nabble.com.

Reply via email to