如何在UDPBAsicApp消息中获得基于INET的WirelessHost速度?

问题描述

一个wirelessHost@H_502_2@通过standardHost@H_502_2@与AP@H_502_2@通信。 wirelessHost@H_502_2@以Linearmobility@H_502_2@中配置的speed@H_502_2@的40mps向ini@H_502_2@移动。现在,我想在UDPBasicApp@H_502_2@中获取速度值,并将该值发送到接收者(standardHost@H_502_2@)。

注意:我使用的是inet 3.6.7和omnet ++ 5.5.1。

解决方法

最简单的方法是从Udp应用程序模块直接访问移动性模块。 Appp和移动性模块是主机模块的子级。因此,您需要在UDP模块内部编写以下代码:

COPY

通常,移动性是移动性模块的名称,如果它有另一个名称,则必须在cModule* mobilityMod = getParentModule()->getSubmodule("mobility",0); 函数中对其进行更改。 您可以进行dynamic_cast评估移动性的类型,并且可以访问其内部功能。 例如:

getSubmodule()

dynamic_cast<LinearMobility*>(mobilityMod)->getSpeed(); 或任何其他getter或setter函数。 有关此链接的更多帮助: https://doc.omnetpp.org/omnetpp/api/classomnetpp_1_1cModule.html