- 论坛徽章:
- 0
|
怎么调用无线节点的路由协议(如AODV)中的command()里面的函数
例如,我的路由协议myrtagent的command()里面有 seta方法如下面红色字体所示。则在tcl脚本中可以用一下方式调用这个方法;
[$node_(0) agent 255] seta 10
[$node_(0) agent 255]表示获得node_(0)的255端口的代理(协议)
然后再调用这个代理的seta函数。
Flood::command(int argc, const char*const* argv) {
Tcl& tcl = Tcl::instance();
if(argc == 2) {
if(strncasecmp(argv[1], "id", 2) == 0) {
coutname());
return (TCL_OK);
}
} else if(argc == 3) {
if(strcmp(argv[1], "index_") == 0) {
index_ = atoi(argv[2]);
return TCL_OK;
} else if(strcmp(argv[1], "log-target") == 0 || strcmp(argv[1], "tracetarget") == 0) {
logtarget = (Trace*) TclObject::lookup(argv[2]);
if(logtarget == 0) return TCL_ERROR;
return TCL_OK;
}
else if (strcmp(argv[1], "seta") == 0){
a=atoi(argv[2]);
return TCL_OK;
}
else if (strcmp(argv[1], "uptarget") == 0) {
if (*argv[2] == '0') {
target_ = 0;
return (TCL_OK);
}
uptarget_ = (NsObject*)TclObject::lookup(argv[2]);
if (uptarget_ == 0) {
tcl.resultf("no such object %s", argv[2]);
return (TCL_ERROR);
}
return (TCL_OK);
}
else if (strcasecmp (argv[1], "port-dmux") == 0) {
TclObject *obj;
port_dmux_ = (NsObject *) obj;
return TCL_OK;
}
}
return Agent::command(argc, argv);
}
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/47073/showart_1359561.html |
|