问题是:几个移动元件(ME)被用来从野外收集感官数据。首先,应将节点进行群集,并应选择一些能量丰富的CH作为会合节点(RN)。传感器节点将其数据传递给RN,最后,移动元素应访问这些RN以收集数据。 这项工作的主要部分是估计到RN的路由路径。 1)如何进行群集和确定RN? 2)如何强制移动元素通过我定义的移动路径? 我使用INET无线展示柜来模拟此问题。 第一部分:我不知道。请帮忙! 作为问题的第二部分(ME运动),我做了:
module MEpath extends AdhocHost
{
parameters:
@display("i=device/cellphone");
@class(MEpath);
mobilityType = "MassMobility";
}
network MyNet
{
parameters:
int numHost;
int numME;
string mediumType = default("IdealRadioMedium");
submodules:
visualizer: IntegratedCanvasVisualizer {
parameters:
@display("p=47,16");
}
configurator: IPv4NetworkConfigurator {
parameters:
@display("p=47,97");
}
radioMedium: <mediumType> like IRadioMedium {
parameters:
@display("p=55,271");
}
lifecycleController: LifecycleController {
parameters:
@display("p=34,176");
}
host[numHost]: AdhocHost {
parameters:
@display("p=222,300");
}
mobileHost[numME]: MEpath {
@display("p=296,207;i=device/pocketpc");
}
}
定义MEpath模块是否正确?我应该更改哪个类或.cc文件?我应该在MEpath.cc中写些什么?
也许这很不寻常,但是在使用omnet ++和inet手册时,我一点都没有问题。我找不到应该更改的类的属性和参数? !
答案 0 :(得分:0)
广告。 2。。您可以使用BonnMotionMobility
。它在INET Framework 4.0 User's Guide和INET API Reference中都有解释。它需要一个包含几个值的文件:时间,x和y,以空格分隔。您可以在examples
的{{1}}目录中找到此文件的示例,例如:INET
。
要使用这种类型的移动性,您应该在examples\mobility\bonnmotion_small.movements
中进行以下设置:
omnetpp.ini
此外,您应该删除以下行:
**.mobileHost*.mobility.typename = "BonnMotionMobility"
**.mobileHost*.mobility.traceFile = "your_trace_file"
来自您的mobilityType = "MassMobility";
定义(因为它是hardcoded,因此无法通过MEpath
进行控制)。
omnetpp.ini
的定义是正确的。它需要包含MEpath
个C ++类的*.h
和*.cc
个文件。