Hey all,

I'm trying to implement LEACH in NS-2.27. My OS is Ubuntu 7.04. I followed
the instructions which I summarized in
http://ranlog.blogspot.com/2007/04/ns-227leach-on-ubuntu-704-installation.html
.

But when running "leach_test", I got the following OTcl error:

invalid command name "Resource/Energy"
    while executing
"Resource/Energy instproc setParams {args} {
    $self instvar energyLevel_ alarmLevel_
    set energyLevel_ [lindex $args 0]
    set alarmLevel_ [lind..."
    (file "/home/ran/ns-allinone-2.27/ns-2.27/mit/rca/resources/ns-
energy-resource.tcl" line 13)
    invoked from within
"source.orig /home/ran/ns-allinone-2.27/ns-2.27/mit/rca/resources/ns-
energy-resource.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel source.orig [list $fileName]"
    invoked from within
"if [$instance_ is_http_url $fileName] {
set buffer [$instance_ read_url $fileName]
uplevel eval $buffer
} else {
uplevel source.orig [list $fileName]
..."
    (procedure "source" line 8)
    invoked from within
"source $env(RCA_LIBRARY)/resources/ns-energy-resource.tcl"
    (file "uamps.tcl" line 18)


I found there were no so called "Resource/Energy" class defined in the tcl
file, so I added a line of code in ~ns/mit/rca/resources/ns-
energy-resource.tcl:

Class Resource/Energy - superclass Resource


After this, I got this when running "leach_test" again:

uneven number of args
    (Object init line 1)
    invoked from within
"Resource/Energy init - superclass Resource"
    (Class create line 1)
    invoked from within
"Class create Resource/Energy - superclass Resource"
    ("eval" body line 1)
    invoked from within
"eval [list $self] create [list $m] $args         "
    (procedure "Class" line 5)
    (Class unknown line 5)
    invoked from within
"Class Resource/Energy - superclass Resource"
    (file "/home/ran/ns-allinone-2.27/ns-2.27/mit/rca/resources/ns-
energy-resource.tcl" line 11)
    invoked from within
"source.orig /home/ran/ns-allinone-2.27/ns-2.27/mit/rca/resources/ns-
energy-resource.tcl"
    ("uplevel" body line 1)
    invoked from within
"uplevel source.orig [list $fileName]"
    invoked from within
"if [$instance_ is_http_url $fileName] {
set buffer [$instance_ read_url $fileName]
uplevel eval $buffer
} else {
uplevel source.orig [list $fileName]
..."
    (procedure "source" line 8)
    invoked from within
"source $env(RCA_LIBRARY)/resources/ns-energy-resource.tcl"
    (file "uamps.tcl" line 18)


 Could anybody give some thoughts on this?  Has anyone ever encountered the
problem before?

Reply via email to