最近学习NS3。NS3自带的examples在命令行中都可以正常的运行、可视化。但是在scratch文件夹下自己写的脚本可以正常运行,但是一旦添加可视化指令就报错。即使是把examples里能正常可视化的脚本代码一模一样的复制到scratch目录下,也是只能运行,不能可视化。可视化报错结果如下。
最终我是在海外论坛里找到了解决办法。帖子链接Visualizer: Type-ID Error
最后给出解决办法的是这位visualizer模块的作者(第一次出现的时候说自己也没办法把我吓坏了,好在后面回复了发现的解决办法)。
具体解决办法是在代码中加入两行内容。亲测有效。
// #include "ns3/core-module.h"
// #include "ns3/network-module.h"
// #include "ns3/internet-module.h"
// #include "ns3/point-to-point-module.h"
// #include "ns3/applications-module.h"
#include "ns3/pyviz.h" // 添加这个头文件
int
main (int argc, char *argv[])
{
{ PyViz v; } // 添加这一句
CommandLine cmd (__FILE__);
cmd.Parse (argc, argv);
...
作者给出的解释如下。
另外,针对python脚本遇到类似的问题,也有热心网友给出解决方法。但本人不适用python,没有验证是否可行。有类似问题的python使用者可以试试。
ok,结束。