Dear All,
Can someone help please?
I simulated the simulation script of flooding with SAMC.The
first test script is flooding1.tcl. But while running ns2.29 , I get the
following message
:
[EMAIL PROTECTED] ~/ns-allinone-2.29/ns-2.29/tcl/ex
$ ns flooding1.tcl
num_nodes is set 30
warning: Please use -channel as shown in
tcl/ex/wireless-mitf.tcl
INITIALIZE THE LIST xListHead
Loading topology file...
Load complete...
*** NOTE: no node-on-off file specified.
Loading traffic
file...
Starting Simulation...
channel.cc:sendUp - Calc highestAntennaZ_ and distCST_
highestAntennaZ_ = 1.5, distCST_ = 550.0
SORTING LISTS ...DONE!
Cancelling CS- node 19
Cancelling CS- node 26
Cancelling CS- node 19
.................................
Cancelling CS- node 12
Cancelling CS- node
24
Cancelling CS- node 7
Couldn't schedule timer
So I changed flooding1.tcl .I get flooding2.tcl. But while
running
ns2.29 , I get the following message :
[EMAIL PROTECTED] ~/ns-allinone-2.29/ns-2.29/tcl/ex
$ ns flooding2.tcl
num_nodes is set 30
warning: Please use -channel as shown
in tcl/ex/wireless-mitf.tcl
invalid command name "-initialEnergy"
while executing
"-initialEnergy $opt(initeng)"
(file "flooding2.tcl" line 215)
What does it mean?I can not find any error.But It cannot run correctly. I
need your help.
I would really appreciate any help that I am to get. Thanks very
much.
Yours truly,
litingyi
__________________________________________________
赶快注册雅虎超大容量免费邮箱?
http://cn.mail.yahoo.com
# ======================================================================
# Define options
# ======================================================================
set opt(chan) Channel/WirelessChannel
set opt(prop) Propagation/TwoRayGround
set opt(netif) Phy/WirelessPhy
set opt(mac) Mac/SMAC
set opt(ifq) Queue/DropTail/PriQueue
set opt(ll) LL
set opt(ant) Antenna/OmniAntenna
set opt(god) off
set opt(x) 800 ;# X dimension of the topography
set opt(y) 800 ;# Y dimension of the topography
set opt(traf) "../test/sk-30-3-3-1-1-6-64.tcl" ;# traffic file
set opt(topo) "../test/scen-800x800-30-500-1.0-1" ;# topology
file
set opt(onoff) "" ;#node on-off
set opt(ifqlen) 50 ;# max packet in ifq
set opt(nn) 30 ;# number of nodes
set opt(seed) 0.0
set opt(stop) 20 ;# simulation time
set opt(prestop) 19 ;# time to prepare to stop
set opt(tr) "wireless.tr" ;# trace file
set opt(nam) "wireless.nam" ;# nam file
set opt(engmodel) EnergyModel ;
set opt(txPower) 0.660;
set opt(rxPower) 0.395;
set opt(idlePower) 0.035;
set opt(initeng) 10000.0 ;# Initial energy in Joules
set opt(logeng) "off" ;# log energy every 1 seconds
set opt(lm) "off" ;# log movement
set opt(adhocRouting) FLOODING
set opt(duplicate) "enable-duplicate"
# ======================================================================
LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0 ;# not used
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 it
Antenna/OmniAntenna set X_ 0
Antenna/OmniAntenna set Y_ 0
Antenna/OmniAntenna set Z_ 1.5
Antenna/OmniAntenna set Gt_ 1.0
Antenna/OmniAntenna set Gr_ 1.0
# Initialize the SharedMedia interface with parameters to make
# it work like the 914MHz Lucent WaveLAN DSSS radio interface
Phy/WirelessPhy set CPThresh_ 10.0
Phy/WirelessPhy set CSThresh_ 1.559e-11
Phy/WirelessPhy set RXThresh_ 3.652e-10
Phy/WirelessPhy set Rb_ 2*1e6
Phy/WirelessPhy set Pt_ 0.2818
Phy/WirelessPhy set freq_ 914e+6
Phy/WirelessPhy set L_ 1.0
# ======================================================================
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_ flush-trace
if [info exists tracefd] {
close $tracefd
# 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 green
$ns_ color 5 tan
$ns_ color 6 gold
$ns_ color 7 black
#set chan [new $opt(chan)]
#set prop [new $opt(prop)]
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)
#$prop topography $topo
# Create God
set god_ [create-god $opt(nn)]
#$god_ on
$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 black
$node_($i) random-motion 0 ;# disable random motion
$god_ new_node $node_($i)
}
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
# ======================================================================
# Define options
# ======================================================================
set opt(chan) Channel/WirelessChannel
set opt(prop) Propagation/TwoRayGround
set opt(netif) Phy/WirelessPhy
set opt(mac) Mac/SMAC
set opt(ifq) Queue/DropTail/PriQueue
set opt(ll) LL
set opt(ant) Antenna/OmniAntenna
set opt(god) off
set opt(x) 800 ;# X dimension of the topography
set opt(y) 800 ;# Y dimension of the topography
set opt(traf) "../test/sk-30-3-3-1-1-6-64.tcl" ;# traffic file
set opt(topo) "../test/scen-800x800-30-500-1.0-1" ;# topology
file
set opt(onoff) "" ;#node on-off
set opt(ifqlen) 50 ;# max packet in ifq
set opt(nn) 30 ;# number of nodes
set opt(seed) 0.0
set opt(stop) 20 ;# simulation time
set opt(prestop) 19 ;# time to prepare to stop
set opt(tr) "wireless.tr" ;# trace file
set opt(nam) "wireless.nam" ;# nam file
set opt(energymodel) EnergyModel ;
set opt(initeng) 10000.0 ;# Initial energy in Joules
set opt(logenergy) "off" ;# log energy every 1 seconds
set opt(lm) "off" ;# log movement
set opt(adhocRouting) FLOODING
set opt(duplicate) "enable-duplicate"
# ======================================================================
LL set mindelay_ 50us
LL set delay_ 25us
LL set bandwidth_ 0 ;# not used
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 it
Antenna/OmniAntenna set X_ 0
Antenna/OmniAntenna set Y_ 0
Antenna/OmniAntenna set Z_ 1.5
Antenna/OmniAntenna set Gt_ 1.0
Antenna/OmniAntenna set Gr_ 1.0
# Initialize the SharedMedia interface with parameters to make
# it work like the 914MHz Lucent WaveLAN DSSS radio interface
Phy/WirelessPhy set CPThresh_ 10.0
Phy/WirelessPhy set CSThresh_ 1.559e-11
Phy/WirelessPhy set RXThresh_ 3.652e-10
Phy/WirelessPhy set Rb_ 2*1e6
Phy/WirelessPhy set Pt_ 0.2818
Phy/WirelessPhy set freq_ 914e+6
Phy/WirelessPhy set L_ 1.0
# ======================================================================
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_ flush-trace
if [info exists tracefd] {
close $tracefd
# 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 green
$ns_ color 5 tan
$ns_ color 6 gold
$ns_ color 7 black
#set chan [new $opt(chan)]
#set prop [new $opt(prop)]
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)
#$prop topography $topo
# Create God
set god_ [create-god $opt(nn)]
#$god_ on
$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(energymodel) \
-initialEnergy $opt(initeng)
# 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 black
$node_($i) random-motion 0 ;# disable random motion
$god_ new_node $node_($i)
}
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