我有一个移动传感器网络,我需要模拟对网络的克隆攻击,因此我在运行时动态创建一个节点。该节点已成功创建,但是不具有其他节点的所有属性(无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)
我希望移动节点可以接收和发送数据包,但实际输出显示的是一个静态节点,没有地址,并且不能与其他节点通信。
答案 0 :(得分:0)
您还应该在模块中执行callInitialize()。不过,自动静态配置不适用于动态模块。