将repeatTime从ns2传递到.cc文件

时间:2013-12-08 04:10:25

标签: tcl ns2 otcl

我正在为简单的模拟编写代码。我们有10个节点和一个汇聚节点。 我想运行模拟5次。 到目前为止,我唯一知道的是我需要编写set val(repeatTimes) 5,但我不知道如何在模拟中使用它。另外,我在相应的mac-simple.cc文件中添加了两行代码,以便从ns2接收重复时间。然后我编译.cc文件并运行模拟。但是,当我运行.tcl文件时,它向我显示一个错误,它无法找到repeatTimes变量。

以下是我在Mac()函数下添加的两行代码:

tcl.evalf("Mac/Simple set repeatTimes");
bind("repeatTimes", &repeatTimes);

你解决这个问题吗? 如果你不知道解决方案,请你指导一下我可以寻找解决方案的论坛/网站吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

构造函数中的bindMac/MncPrj对象的类吗? (这就是它需要的地方。)如果是这样,它需要之前 tcl.evalf调用,因为它从OTcl的角度定义变量;读取它的代码将不起作用(并且将生成Tcl错误 - 在Tcl级别中的异常 - 如果您尝试这样做),直到绑定完成之后。

完成绑定后,您可以使用以下命令从Tcl脚本端读取变量:

Mac/MncPrj set repeatTimes

并写下:

Mac/MncPrj set repeatTimes $whateverTheValueIs

您应该避免将值保存在Tcl数组中;这将是一个非实时副本,会让你感到困惑。 (除非你深入了解trace add variable的魔力,否则肯定会让你迷惑。有时候会让我困惑!)