【问题标题】:Get parameter and attributes of a class in .cc file获取.cc文件中类的参数和属性
【发布时间】: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++


【解决方案1】:

广告。 2.您可以使用BonnMotionMobility。它在INET Framework 4.0 User's GuideINET API Reference 中进行了解释。它需要一个包含多个值的文件:时间、x 和 y,用空格分隔。您可以在INETexamples 目录中找到此文件的示例,例如:examples\mobility\bonnmotion_small.movements
要使用这种类型的移动性,您应该在omnetpp.ini 中设置类似:

**.mobileHost*.mobility.typename = "BonnMotionMobility"
**.mobileHost*.mobility.traceFile = "your_trace_file"

此外,您应该删除此行:

mobilityType = "MassMobility";

来自您的MEpath 定义(因为这样是hardcoded,不能通过omnetpp.ini 控制)。
MEpath 的定义是正确的。它需要包含declaration and definitionMEpath C++ 类的*.h*.cc 文件。

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 1970-01-01
    • 2013-03-08
    • 1970-01-01
    相关资源
    最近更新 更多