问题描述
有一个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