Dear all,
I laid my hand on a TCL script on the above subject matter and i tried to run
it but was given some errors which is shown below:
ism...@ismail-desktop:~$ sudo su
[sudo] password for ismail:
r...@ismail-desktop:/home/ismail# ns clustering.tcl
num_nodes is set 31
(_o14 cmd line 1)
invoked from within
"_o14 cmd addr"
invoked from within
"catch "$self cmd $args" ret"
invoked from within
"if [catch "$self cmd $args" ret] {
set cls [$self info class]
global errorInfo
set savedInfo $errorInfo
error "error when calling class $cls: $args" $..."
(procedure "_o14" line 2)
(SplitObject unknown line 2)
invoked from within
"_o14 addr"
("eval" body line 1)
invoked from within
"eval $node addr $args"
("default" arm line 2)
invoked from within
"switch -exact $routingAgent_ {
DSDV {
set ragent [$self create-dsdv-agent $node]
}
DSR {
$self at 0.0 "$node start-dsr"
}
AODV {
set ragent [$self cre..."
(procedure "_o3" line 14)
(Simulator create-wireless-node line 14)
invoked from within
"_o3 create-wireless-node"
("eval" body line 1)
invoked from within
"eval $self create-wireless-node $args"
(procedure "_o3" line 23)
(Simulator node line 23)
invoked from within
"$ns_ node"
invoked from within
"set node_(0) [$ns_ node]"
(file "clustering.tcl" line 118)
r...@ismail-desktop:/home/ismail#
The TCL script is also shown below :
#The TCL script file
#===================================
# ??????
#===================================
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(ifq) CMUPriQueue
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) 31 ;# number of
mobilenodes
set val(initialenergy) 500 ;# initial
energy of 50 Joules
set val(energymodel) "EnergyModel" ;# energy model
set val(rp) DCA ;# routing
protocol
set val(x) 1000 ;# X dimension of
topography
set val(y) 1000 ;# Y dimension
of topography
set val(stop) 20.0 ;#
time of simulation end
#set val(cp)
/home/ismail/ns-allinone-2.34/ns-2.34/tcl/mobility/scene/cbr-3-test
#set val(sc)
/home/ismail/ns-allinone-2.34/ns-2.34/tcl/mobility/scene/scen-3-test
set val(DCA) DCA ;#
Define DCA constant
set val(seed) 0.0
#===================================
# transmission range
#===================================
#$val(netif) set RXThresh_ 2.81838e-13
#================================================
# Create new simulator & trace file
#================================================
set ns_ [new Simulator] ;#??ns simulator
$ns_ use-newtrace
set tracefd [open test.tr w] ;#??trace file
$ns_ trace-all $tracefd
#================================================
# Create nam file & write all traces to file
#================================================
set namtrace [open test.nam w] ;#????nam trace file
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
#--------------------------------------------------------------------------
#Antenna/OmniAntenna set X_ 0
#Antenna/OmniAntenna set Y_ 0
#Antenna/OmniAntenna set Z_ 0.1
#Antenna/OmniAntenna set Gt_ 1.0
#Antenna/OmniAntenna set Gr_ 1.0
#Phy/WirelessPhy set CPThresh_ 10.0
#Phy/WirelessPhy set CSThresh_ 2.81838e-05
Phy/WirelessPhy set RXThresh_ 0.81838e-05
#Phy/WirelessPhy set bandwidth_ 2e6
#Phy/WirelessPhy set Pt_ 0.0064
#Phy/WirelessPhy set Pr_ 2.81838e-05
#Phy/WirelessPhy set freq_ 9.14e+08
#Phy/WirelessPhy set L_ 1.0
$ns_ namtrace-all-wireless $namtrace $val(x) $val(y)
set topo [new Topography] ;#??topography object
$topo load_flatgrid $val(x) $val(y)
#create-god $val(nn)
set god_ [create-god $val(nn)]
$god_ on
#??channel
set chan_0_ [new $val(chan)]
#===================================#
# Settings for power/
# transmisssion range of a node
#===================================#
#set range(x) 100
#set range(y) 100
#set OVERLAP 50
#set coverage [CellCoverage 1 1 $range(x) $range(y) $OVERLAP]
#set power [SetPt $coverage]
#Phy/WirelessPhy set Pt_ $power
#$ns node-config -rxPower $power -txPower $power
set rxPower 1.00
set txPower 2.00
set inEnergy 50
#===================================
# ??Configuration of node???
#===================================
#??MobileNode???
$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 \
-energyModel "EnergyModel" \
-initialEnergy $val(initialenergy) \
-idlePower 1.0 \
-rxPower 1.0 \
-txPower 2.0 \
-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-movementTrace OFF\
-channel $chan_0_ \
#===================================
# DATA SINK
#===================================
#???0?Node
set node_(0) [$ns_ node]
$node_(0) set X_ 0
$node_(0) set Y_ 0
$node_(0) set Z_ 0.0
$ns_ initial_node_pos $node_(0) 100
#===================================
# NORMAL NODES
#===================================
#???1?Node
set node_(1) [$ns_ node]
$node_(1) set X_ 677
$node_(1) set Y_ 166
$node_(1) set Z_ 0.0
$ns_ initial_node_pos $node_(1) 40
#???30?Node
set node_(30) [$ns_ node]
$node_(30) set X_ 620
$node_(30) set Y_ 240
$node_(30) set Z_ 0.0
$ns_ initial_node_pos $node_(30) 40
for {set i 0} {$i < $val(nn) } { incr i } {
$god_ new_node $node_($i) ; # !!!
}
# recv function
Agent/Ping instproc recv {from rtt} {
$self instvar node_
puts "node [$node_ id] received ping answer from $from with round-trip-time
$rtt ms."
}
if {$val(rp) == $val(DCA)} {
puts "Clustering Started"
set dca [new Agent/DCA]
#$node_(0) attach $dca
#$ns_ attach-agent $node_(1) $udp
$ns_ at 0.0 "$dca set-ll $val(ll)"
$ns_ attach-agent $node_(0) $dca
$dca start_clustering
$dca start_CHs
puts "Clustering Finished"
}
for {set i 0} {$i < $val(nn) } { incr i } {
$ns_ at $val(stop) "$node_($i) reset";
}
# creating nam display files
$ns_ at $val(stop) "$ns_ nam-end-wireless $val(stop)"
$ns_ at $val(stop) "stop"
$ns_ at $val(stop).2 "puts \"end simulation\" ; $ns_ halt"
#$ns_ at 10.0 "$dca print_out_cluster_info"
# function for stopping the simulation
proc stop {} {
global ns_ tracefd
#namtrace
$ns_ flush-trace
close $tracefd
#close $namtrace
exec nam test.nam &
exit 0
}
$ns_ run
I will highly appreciate anyone who can assist me on this problem.
Thank you.
Ismail