setdest的参数问题!

今天开始学着使用ns2,实验了书上的setdest例子,按照书上的代码实验了一下,结果没有成功,错误信息:

$ ./setdest -n 50 -p 0 -s 40 -t 400 -x 1200 -y 1200 > scene-50n-0p-40s-400t-120
assertion "speed != 0.0" failed: file "setdest.cc", line 595 
     5 [sig] setdest 456 d:/cygwin/home/DeadKnight/ns-allinone-2.29/ns-2.29/indep-utils/cmu-scen-gen/setdest/setdest.exe: *** fatal error - called with threadlist_ix -1
Hangup

郁闷了半天,看了下setdest.cc,发现书上参数错误(难道是旧版本的?)
setdest.cc中的一部分:
 while ((ch = getopt(argc, argv, "v:n:s:m:M:t:P:p:x:y:i:o:")) != EOF) {      

  switch (ch) {
  
  case 'v':
    VERSION = atoi(optarg);
    break;

  case 'n':
    NODES = atoi(optarg);
    break;

  case 's':      //速度类型!!!!!!!!!!!!!
   SPEEDTYPE = atoi(optarg); 
   break;

  case 'm':
   MINSPEED = atof(optarg); 
   break;

  case 'M':      //速度最大值!!!!!!!!!!!!
   MAXSPEED = atof(optarg);
   break;

  case 't':
   MAXTIME = atof(optarg);
   break;

  case 'P':
   PAUSETYPE = atoi(optarg); 
   break;

  case 'p':
   PAUSE = atof(optarg);
   break;

  case 'x':
   MAXX = atof(optarg);
   break;

  case 'y':
   MAXY = atof(optarg);
   break;

  default:
   usage(argv);
   exit(1);
  }
 }

显然,s代表的是speedtype(u_int32_t SPEEDTYPE = 1;  // speed type (default = uniform)),而不是书上所说的速度最大值。真正的速度最大值应该是用M定义,所以,正确的命令应该是:

./setdest -n 50 -p 0 -M 40 -t 400 -x 1200 -y 1200 > scene-50n-0p-40s-400t-120

其实,直接运行./setdest就可以得到参数的提示:

$ ./setdest

usage:

<original 1999 CMU version (version 1)>
 ./setdest      -v <1> -n <nodes> -p <pause time> -M <max speed>
                -t <simulation time> -x <max X> -y <max Y>

OR
<modified 2003 U.Michigan version (version 2)>
 ./setdest      -v <2> -n <nodes> -s <speed type> -m <min speed> -M <max speed>
                -t <simulation time> -P <pause type> -p <pause time> -x <max X>
-y <max Y>
                (Refer to the script files make-scen.csh and make-scen-steadysta
te.csh for detail.)

BTW:
书中有时将./setdest错误得用作setdest,这样,会出现以下错误信息:

$ setdest
bash: setdest: command not found

原因是环境变量PATH中不包括setdest所在的目录(除非你手动加过了),shell会提示找不到相应的程序

 

回到原来的话题,现在在重新输入./setdest -n 50 -p 0 -M 40 -t 400 -x 1200 -y 1200 > scene-50n-0p-40s-400t-120,回车,OK,一切正常(使用前别忘记cd到setdest目录下,在shell根目录下会找不到setdest)
DeadKnight@XJTU-ZHAO ~/ns-allinone-2.29/ns-2.29/indep-utils/cmu-scen-gen/setdest

$ ./setdest -n 50 -p 0 -M 40 -t 400 -x 1200 -y 1200 > scene-50n-0p-40s-400t-120

DeadKnight@XJTU-ZHAO ~/ns-allinone-2.29/ns-2.29/indep-utils/cmu-scen-gen/setdest

$

 

顺便一句,setdest很耗时耗资源,上面这条命令大概要耗时大概1分钟,并且CPU占用率会保持100%,所以不要将参数设置得过大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值