我正在为简单的模拟编写代码。我们有10个节点和一个汇聚节点。
我想运行模拟5次。
到目前为止,我唯一知道的是我需要编写set val(repeatTimes) 5
,但我不知道如何在模拟中使用它。另外,我在相应的mac-simple.cc文件中添加了两行代码,以便从ns2接收重复时间。然后我编译.cc文件并运行模拟。但是,当我运行.tcl文件时,它向我显示一个错误,它无法找到repeatTimes变量。
以下是我在Mac()函数下添加的两行代码:
tcl.evalf("Mac/Simple set repeatTimes");
bind("repeatTimes", &repeatTimes);
你解决这个问题吗? 如果你不知道解决方案,请你指导一下我可以寻找解决方案的论坛/网站吗?
提前致谢
答案 0 :(得分:1)
构造函数中的bind
是Mac/MncPrj
对象的类吗? (这就是它需要的地方。)如果是这样,它需要之前 tcl.evalf
调用,因为它从OTcl的角度定义变量;读取它的代码将不起作用(并且将生成Tcl错误 - 在Tcl级别中的异常 - 如果您尝试这样做),直到绑定完成之后。
完成绑定后,您可以使用以下命令从Tcl脚本端读取变量:
Mac/MncPrj set repeatTimes
并写下:
Mac/MncPrj set repeatTimes $whateverTheValueIs
您应该避免将值保存在Tcl数组中;这将是一个非实时副本,会让你感到困惑。 (除非你深入了解trace add variable
的魔力,否则肯定会让你迷惑。有时候会让我困惑!)