如何在omnet ++中的动态模块上应用网络的Ipv4NetworkConfigurator和UnitDiskRadioMedium?

时间:2019-06-03 11:45:48

标签: omnet++ inet

我有一个移动传感器网络,我需要模拟对网络的克隆攻击,因此我在运行时动态创建一个节点。该节点已成功创建,但是不具有其他节点的所有属性(无IPAddress),因此它无法与其他节点通信。当我在.ini文件中指定移动性参数时,它不是移动的。这是我的代码:

network Drones
{
    parameters:
        int numHosts;

    submodules:
        visualizer: IntegratedVisualizer {
            @display("p=100,100");
        }

        configurator: Ipv4NetworkConfigurator {
            parameters:
                config = xml("<config><interface hosts='*' address='145.236.x.x' netmask='255.255.0.0'/></config>");
                @display("p=100,300");
        }

        radioMedium: UnitDiskRadioMedium{
            @display("p=100,500");
        }

        host[numHosts]: WirelessHost {
            @display("i=misc/node_vs");
        }

        clone: WirelessHost {
            @dynamic;
            @display("i=misc/node_vs");

        }
}

cModuleType *moduleType = cModuleType::get("inet.node.inet.WirelessHost");
cModule* module = moduleType->create("clone", this);
module->finalizeParameters();
module->buildInside();
module->scheduleStart(simTime() + updateInterval);


*.clone.osgModel = "3d/drone.ive.100.scale.0,0,90.rot"

*.clone.mobility.typename = "MassMobility"
*.clone.mobility.changeInterval = 1s
*.clone.mobility.initialMovementHeading = uniform(0deg, 360deg)
*.clone.mobility.initialMovementElevation = uniform(-90deg, 90deg)
*.clone.mobility.angleDelta = uniform(-10deg,10deg)
*.clone.mobility.rotationAxisAngle = uniform(-10deg,10deg)
*.clone.mobility.speed = uniform(10mps,20mps)
*.clone.mobility.faceForward = false

*.clone.numApps = 1
*.clone.app[0].typename = "myApp"
*.clone.app[0].destPort = 5000
*.clone.app[0].sendInterval = exponential(12ms)

我希望移动节点可以接收和发送数据包,但实际输出显示的是一个静态节点,没有地址,并且不能与其他节点通信。

1 个答案:

答案 0 :(得分:0)

您还应该在模块中执行callInitialize()。不过,自动静态配置不适用于动态模块。