0

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

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

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

你有解决这个问题的办法吗?如果您不知道解决方案,请您指导我找到一个论坛/网站,在那里我可以找到解决方案?

提前致谢

4

1 回答 1

1

bind的构造函数中是Mac/MncPrj对象的类吗?(这就是它需要的地方。)如果是这样,它需要在调用之前tcl.evalf因为它从 OTcl 的角度定义了变量;在绑定完成之前,读取它的代码将无法工作(并且会产生 Tcl 错误——Tcl 级别的异常——如果你尝试这样做)。

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

Mac/MncPrj set repeatTimes

并写成:

Mac/MncPrj set repeatTimes $whateverTheValueIs

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

于 2013-12-08T08:17:57.557 回答