Omnet++ OMNET++;如何定制一个扩展AODVRouter的无线主机,使其具有随机化的移动性
我目前正在进行一个MANET项目,希望创建一个定制的无线主机来模拟一个自私的节点,该节点会立即丢弃它在MANET中接收到的消息。 我创建了一个名为SelfishNode.NED的简单模块,代码如下:Omnet++ OMNET++;如何定制一个扩展AODVRouter的无线主机,使其具有随机化的移动性,omnet++,inet,Omnet++,Inet,我目前正在进行一个MANET项目,希望创建一个定制的无线主机来模拟一个自私的节点,该节点会立即丢弃它在MANET中接收到的消息。 我创建了一个名为SelfishNode.NED的简单模块,代码如下: simple SelfishNode { parameters: @display("i=block/buffer"); gates: input radioIn[numRadios] @directIn; inout pppg[] @labels(PPPFrame-conn);
simple SelfishNode {
parameters:
@display("i=block/buffer");
gates:
input radioIn[numRadios] @directIn;
inout pppg[] @labels(PPPFrame-conn);
inout ethg[] @labels(EtherFrame-conn);
}
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");
}
}
*.numBadNodes = ${HOST=5}
*.hostBad.mobilityType = "inet.mobility.single.RandomWPMobility"
二,。然后,我用下面的代码创建了它的C++文件:
#include "SelfishNode.h"
#include <string.h>
#include <omnetpp.h>
void SelfishNode::initialize()
{
}
void SelfishNode::handleMessage(cMessage *msg)
{
delete msg;
}
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");
}
}
simple SelfishNode {
parameters:
@display("i=block/buffer");
gates:
input radioIn[numRadios] @directIn;
inout pppg[] @labels(PPPFrame-conn);
inout ethg[] @labels(EtherFrame-conn);
}
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");
}
}
*.numBadNodes = ${HOST=5}
*.hostBad.mobilityType = "inet.mobility.single.RandomWPMobility"
而且当我运行模拟时,节点根本没有移动。我学习了一整天,但还是没能解决它。几乎正确。。。如果您在INET命名空间中操作,则在设置
mobilityType
**.hostBad.mobilityType = "RandomWPMobility"
查看
/inet/examples/mobility/omnetpp.ini中的示例配置以了解更多详细信息。谢谢MichaelKirsche。现在我想继承AODVRouting.cc中的所有函数,但是在C++文件中覆盖了AdvVRe::sDaAdOvVPoCuTeTh()函数。我该怎么做?通过C++代码中的以下代码,我得到了“HoalMeMeSeaGE”的定义:空AODVRADION::SoDaODvPATH(AODVCONDROPATABOR**包,CONST L3Advest-DADADR,未签名的int TimeLeION,双延迟){EV更好地发布新的问题,并在另一个问题下比评论正确地格式化…