请问有前辈成功运行过AOMDV吗?
我只下载了源码,没找到具体怎么运行的方法。 运行的时候出错。。。。
我把我的方法叙述如下,请前辈们指出问题之所在。。。
环境:cygwin+ns2.29
1. 先安装ns2.29,一切正常
2. 将Ahmad Khayyat的代码拷贝进ns2.29的目录,覆盖了几个文件。。。
3. ./ configure make clean make depend make
4. 在make的时候会报错 proxytrace2any.cc文件出错 但是网上有人说这是
正常情况 是因为我的环境不是纯linux
5. 修改simple-wireless.tcl,将协议改成AOMDV 报错 错误代码如下:
$ ns simple-wireless.tcl
num_nodes is set 2
warning: Please use -channel as shown in tcl/ex/wireless-mitf.tcl
(_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 11)
(Simulator create-wireless-node line 11)
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"
("for" body line 2)
invoked from within
"for {set i 0} {$i < $val(nn) } {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;# disable random mo
tion
}"
(file "simple-wireless.tcl" line 93)
装配协议栈的时候没有找到新的零件AOMDV,它的螺母.螺栓都应该在ns-lib.tcl里的那个DSR,AODV,TORA那几个装配地上同时加上
螺母.螺栓........ 这个这个...........
是不是在里面加一句
AOMDV {
set ragent [$self create-aomdv-agent $node]
}
就ok了?
或者还要加上
Simulator instproc create-aomdv-agent { node } {
# Create AOMDV routing agent
set ragent [new Agent/AOMDV [$node node-addr]]
$self at 0.0 "$ragent start" ;# start BEACON/HELLO Messages
$node set ragent_ $ragent
return $ragent
}
是的
我加进去了之后还是报错 错误如下 请前辈再次指点。。。
$ ns simple-wireless.tcl
num_nodes is set 20
warning: Please use -channel as shown in tcl/ex/wireless-mitf.tcl
invalid command name "Agent/AOMDV"
while executing
"Agent/AOMDV create _o17 0"
invoked from within
"catch "$className create $o $args" msg"
invoked from within
"if [catch "$className create $o $args" msg] {
if [string match "__FAILED_SHADOW_OBJECT_" $msg] {
delete $o
return ""
}
global errorInfo
error "class $..."
(procedure "new" line 3)
invoked from within
"new Agent/AOMDV [$node node-addr]"
(procedure "_o3" line 2)
(Simulator create-aomdv-agent line 2)
invoked from within
"$self create-aomdv-agent $node"
("AOMDV" 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 11)
(Simulator create-wireless-node line 11)
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"
("for" body line 2)
invoked from within
"for {set i 0} {$i < $val(nn) } {incr i} {
set node_($i) [$ns_ node]
$node_($i) random-motion 0 ;# disable random mo
tion
}"
(file "simple-wireless.tcl" line 93)
我看了一下。。。
问题并不是我原来以为的smthvv指出的那个,实际问题是:
你用的这个实现并没有单独产生一个新的叫“Agent/AOMDV”的agent,实际上,它的名字叫:“Agent/rtProto/AODV”,并且代码都只是在原来AODV的基础上改的。
这个如何解决你需要看AOMDV那个包里提供的TCl文件,照搬来用。
===
另外,出问题先看人家的readme,示例代码。。。
谢谢。。。。 还是一头雾水。。。。。
最大的问题就是 这个源码根本就没有readme和示例啊。。。
我看到readme和实例了哇,从作者的主页上下载的。
这个这个。。。。 可不可以告诉一下地址。。。
相关文章:
- 请前辈介绍几本关于信道编解码的经典书籍(05-08)
- 前辈们:问个G3上网卡的问题。(05-08)
- 诸位前辈可否推荐一篇详细阐述循环前缀的论文或书籍。(05-08)
- 急问,opnet能统计掉话率、掉线率、接通率、软切换成功率、软切(05-08)
- 有没有一种方法不使用feedback而使传输端知道此次传输成功与否(05-08)
- 中国军队首次试验成功至苏丹超远程无线电台 (05-08)