【发布时间】:2018-12-15 10:29:57
【问题描述】:
问题是:使用了几个移动元素 (ME) 从现场收集感官数据。首先,节点应该被聚类,并且应该选择一些能量丰富的CH作为会合节点(RN)。传感器节点将它们的数据传递给RN,最后移动元素应该访问这些RN以收集数据。 这项工作的主要部分是估计通往 RN 的路由路径。 1)如何进行聚类和确定 RN? 2)如何强制移动元素通过我定义的移动路径? 我使用 INET 无线展示来模拟这个问题。 第一部分:我不知道。请帮忙! 作为我问题的第二部分(我的运动),我做了:
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 手册时遇到了问题。我找不到应该更改类的哪个属性和参数? !
【问题讨论】:
-
您能否提供有关您的问题的更多信息:您使用 INET 的示例还是自己的项目,您使用哪种类型的节点,应该如何更改节点的位置等。
-
根据第一个问题:
INET不包含任何集群机制。这个问题是off-topic。根据第二个问题:您想如何介绍 ME 应该经过的路径 - 作为点集,或移动规则,或其他方式? -
@JerzyD。感谢您的回答。 ME 应该遵循启发式算法,但为了简单起见,现在我想将它们更改为一组点。
-
@JerzyD。非常感谢您。如果我想实施启发式旅游计划,我应该怎么做?如何在 .cc 文件中调用和参数化移动元素?
-
最好的方法是准备自己的移动类型。为此,您应该定义一个继承自
MovingMobilityBase的新 NED 文件。在 NED 文件中,您可以添加您需要的参数。然后你应该准备一个继承自inet::MovingMobilityBase的C++ 类(在*.h 和*.cc 中)。 API 包含您必须覆盖的方法。
标签: networking simulation omnet++