OMNET ++如何使用RandomWP Mobility自定义扩展AODVRouter的无线主机

时间:2017-07-12 16:05:22

标签: omnet++ inet

我目前正致力于MANET项目,并希望创建一个定制的无线主机来模仿一个自私节点,该节点会立即丢弃它在MANET中收到的消息。 我创建了一个名为SelfishNode.NED的简单模块,代码如下:

JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

2。然后,我用下面的代码创建了它的C ++文件:

simple SelfishNode {
parameters:
@display("i=block/buffer");

gates:
    input radioIn[numRadios] @directIn;
    inout pppg[] @labels(PPPFrame-conn);
    inout ethg[] @labels(EtherFrame-conn);
}

3。接下来,我创建了一个名为snode.NED的复合模块,它扩展了AODVRouter,代码如下:

#include "SelfishNode.h"
#include <string.h>
#include <omnetpp.h>

void SelfishNode::initialize()
{

}

void SelfishNode::handleMessage(cMessage *msg)
{
delete msg;
}
  1. 接下来,我创建了一个名为ManetA.NED的网络模块:

    import inet.node.aodv.AODVRouter;
    
        module snode extends AODVRouter
        {
        parameters:
        @networkNode;
        @display("i=device/wifilaptop");
        @labels(wireless-node);
    
        submodules:
            bad: SelfishNode {
            @display("p=273,350");
            }
        }
    
  2. 最后,我在omnetpp.ini中配置了移动类型和坏节点数,如下所示:

    import inet.common.figures.DelegateSignalConfigurator;
    import inet.networklayer.configurator.ipv4.IPv4NetworkConfigurator;
    import inet.physicallayer.ieee80211.packetlevel.Ieee80211ScalarRadioMedium;
    import inet.visualizer.integrated.IntegratedCanvasVisualizer;
    import inet.environment.common.PhysicalEnvironment;
    
    network ManetA
    {
    parameters:
    int numHosts;
    int numBadNodes;
    
    submodules:
    visualizer: IntegratedCanvasVisualizer {
        @display("p=59,103");
    }
    configurator: IPv4NetworkConfigurator {
        @display("p=59,164");
    }
    radioMedium: Ieee80211ScalarRadioMedium {
        @display("p=60,50,i=misc/sun");
    }
    figureHelper: DelegateSignalConfigurator {
        @display("p=61,236");
    }
    
    hostBad[numBadNodes]: snode {
        @display("i=device/palm");
    }
    
    physicalEnvironment: PhysicalEnvironment {
        @display("p=59,306");
        }
    }
    
  3. 这是对的吗? 而且当我运行模拟时,节点根本没有移动。我已经研究了一整天,但无法解决它。

1 个答案:

答案 0 :(得分:1)

几乎正确...如果您在INET命名空间中操作,则在设置mobilityType

时,您不需要提供移动模块的全名
**.hostBad.mobilityType = "RandomWPMobility"

查看/inet/examples/mobility/omnetpp.ini中的示例配置以获取更多详细信息。