NS3 NetAnim说明

作者: shawn168 | 来源:发表于2017-06-25 20:33 被阅读455次

    1:下载NetAnim

    ns3中并没有下载NetAnim,可以使用下面的步骤下载。首先保证你已经安装了mercurial.最新的NetAnim可以使用下面的命令行下载:

    $ hg clone http://code.nsnam.org/netanim
    

    2:building netanim

    Qt4(4.7以及以上版本)是build NetAnim必须的,使用下面的步骤来安装:
    Debian/Ubuntu linux版本:

    $ apt-get install qt4-dev-tools
    

    Red Hat/Fedora 版本:

    $ yum install qt4
    $ yum install qt4-devel
    

    对于Mac/OSX用户,请参考链接:http://qt.nokia.com/downloads

    3:build 步骤

    $ cd netanim
    $ make clean
    $ qmake NetAnim.pro (For MAC Users: qmake -spec macx-g++ NetAnim.pro)
    $ make
    

    Note:在某些系统中,qmake 可能需要使用qmake-qt4代替。

    上面的命令完成之后,会在当前目录中生成一个“NetAnim”的文件,使用下面的命令查看:

    $ ls -l NetAnim
    -rwxr-xr-x 1 john john 390395 2012-05-22 08:32 NetAnim
    

    用法:
    第一步:产生xml文件
    第二步:加载xml文件到NetAnim中。

    添加头文件:

    #include "ns3/netanim-module.h"
    

    【对于使用ns-3.13以前版本的,需要使用代码:“anim.SetXMLOutput()”设置输出XML模式,并使用“anim.StartAnimation()”启动】

    第一步:产生XML文件

    AnimationInterface anim("animation.xml");   将会产生一个xml文件。
    
    anim.SetMobilityPollInterval (Seconds (1));
    

    AnimationInterface默认250ms记录一次所有节点的位置。这个方法设置了AnimationInterface记录所有节点位置的时间间隔。如果节点的位置预料每次变化非常小,那么设置高流动性轮训间隔将是非常有用的。否则,将会产生非常大的xml文件。

    anim.SetConstantPosition (Ptr< Node > n, double x, double y);
    

    AnimationInterface允许设置所有节点的位置。在ns3中,该设置与MobillityModel关联。该方法是非常快捷的方式来设置一个静止的节点位置。

    anim.SetStartTime (Seconds(150));
    anim.SetStopTime (Seconds(150));
    

    AnimationInterface会产生比较大的xml文件。上面的方法可以限制AnimationInterface记录的时间窗口。这样可以达到只关注于与仿真相关联的部分,同时产生比较小的xml文件。

    AnimationInterface anim ("animation.xml", 50000);
    

    该构造器保证产生的xml文件只记录5000个packets。例如,如果AnimationInterface抓取到了150000个packets,使用这个构造器可以产生三个文件

    • animation.xml - containing the packet range 1-50000
    • animation.xml-1 - containing the packet range 50001-100000
    • animation.xml-2 - containing the packet range 100001-150000

    anim.EnablePacketMetadata (true);
    

    使用该方法,则AnimationInterface会在产生的xml文件中记录每一个packet的元数据。记录了元数据之后,可以使用比较简单的与每个packet相关的信息,这样就方便NetAnim提供更好的统计和过滤,例如,TCP序列号,源IP,目的地IP等。

    CAUTION:使用这样的属性,将会导致比较大的XML文件产生。不要在使用Wimax links的时候使用该属性。

    anim.UpdateNodeDescription (5, "Access-point");
    

    使用该方法,AnimationInterface将会把节点5标记为“Access-point”文字。

    anim.UpdateNodeSize (6, 1.5, 1.5);
    

    使用该方法,AnimationInterface将会把节点大小缩放为1.5倍。NetAnim会自动缩放视图以适应拓扑的边界。这意味着,NetAnim会调整太大或者太小的节点。使用该方法允许你覆盖NetAnim默认的节点的size。

    anim.UpdateNodeCounter (89, 7, 3.4);
    

    该方法说明,AnimationInterface设置节点7的值为3.4 id==89。id=89的节点必须存在,须先使用AnimationInterface::AddNodeCounter方法设置之后,才能调用UpdateNodeCounter方法。实例用法请参考src/netanim/examples/resources_demo.cc

    第二步:加载xml文件到NetAnim

    1:假设NetAnim已经build,命令行使用./NetAnim启动NetAnim。如果NetAnim不能启动,请参考前面的内容。
    2:打开NetAnim之后,点击File按钮,选择代码产生的xml文件
    3:点击play绿色按钮启动动画。
    这里有可以参看的视频:http://www.youtube.com/watch?v=tz_hUuNwFDs

    Wiki
    对于更多细节和安装“NetAnim”的说明,以及使用NetAnim加载XML文件等信息,可以参看wiki地址:
    http://www.nsnam.org/wiki/NetAnim

    相关文章

      网友评论

        本文标题:NS3 NetAnim说明

        本文链接:https://www.haomeiwen.com/subject/ojmgnttx.html