去掉mobility-fw拓扑图中的连接线与节点下显示的字符

      OMNet++仿真基础 OMNet++是面向对象的离散事件模拟工具,为基于进程式和事件驱动两种方式的仿真提供了支持,OMNET++是网络中一种常用的模拟工具。尤其在传感器网络中比较常用,因为比较简单方便,更重要的是,它是一个开源软件,不需要money去购买。
     mobility-fw是在OMNET++的基础上开发的一个框架,我们只需要在已经定好的框架中添加东西。这又进一步降低了开发的难度。但在实际的开发过程中,会遇到一些看起来比较小的问题,比如,拓扑图比较小,连线比较密集,节点下会显示一些字符。这会使得拓扑图看起来是一团黑乎乎的。
      如何去掉连接线呢?
     方法是:修改mobility-fw/core/channelControl下的的ChannelControl.cc文件中的connectTo函数:
   原函数如下:
     void ChannelControl::NicEntry::connectTo(ChannelControl::NicEntry& other)
    {
             //ev <<"NicEntry: connecting nic #"<<nicId<< " and #"<<other.nicId<<endl;    
            cGate *localoutgate = requestOutGate();
            localoutgate->connectTo(other.requestInGate());
           outConns[other.nicId] = localoutgate;
            //ev <<"/t gate #"<<localoutgate->id() <<" --> #"<<localoutgate->toGate()->id()<<endl;
    };
    修改后如下:
   void ChannelControl::NicEntry::connectTo(ChannelControl::NicEntry& other)
   {
      //ev <<"NicEntry: connecting nic #"<<nicId<< " and #"<<other.nicId<<endl;
   
      cGate *localoutgate = requestOutGate();
      localoutgate->connectTo(other.requestInGate());
      localoutgate->setDisplayString("m=m,50,50,50,50;o=#AAA,0;");
      other.requestInGate()->setDisplayString("m=m,50,50,50,50;o=#AAA,0;");
      outConns[other.nicId] = localoutgate;
      //ev <<"/t gate #"<<localoutgate->id() <<" --> #"<<localoutgate->toGate()->id()<<endl;
   };
   然后在DOS环境下在channelControl目录下运行:nmake -f Makefile.vc clean与
                                                                                           nmake -f Makefile.vc
   将生成的所有的obj文件拷贝到LIB文件夹下即可。

     如何去掉节点的显示的字符呢?(这个比较麻烦点)
    因为在Windows下omnet的安装目录下的源文件是不全的。那么必须下载一个Linux下的安装程序(因为包含所有的源代码),在次之前还要安装tcl软件,并且设置好环境变量(include,lib,bin)。
   首先,修改 modinsp2.tcl 文件,注释调206和211行,如下所示:
        #        $c create text $x [expr $y2+$width/2+3] -text $name -anchor n -tags "dx"

        } elseif [info exists tags(i)] {

           $c create image $x $y -image $img -anchor center -tags "dx tooltip submod $submodptr"
      #        $c create text $x [expr $y+$sy/2+3] -text $name -anchor n -tags "dx"

   然后:利用vc或其它c++工具运行 src/utils 下的 tcl2c.c 文件,生成 tcl2c.exe ,拷贝到utils文件夹下,默认的会在src/utils/Debug
   然后运行nmake -f Makefile.vc clean与nmake -f Makefile.vc,在运行的过程中,可能需要修改部分源代码(因为找不到一些头文件的目录)(也可以设置环境变量,源文件目录下的 include,lib,bin),最后会生成 tkenv.lib,将它拷贝到OMNET安装目录的lib目录下。
  这样就可以去掉显示字符了。
  

你可能感兴趣的:(windows,框架,网络,工具,include,Tcl)