如何获取静脉中的RSU节点坐标?

How to get RSU node coordinates in veins?

我在模拟环境中使用Veins 5.0

目前有 4 个 RSU 节点正在使用中。 omnetpp.ini代码如下:

omnetpp.ini

*.fRSU[0].mobility.x = 125
*.fRSU[0].mobility.y = 125
*.fRSU[0].mobility.z = 3
...

这里是 RSU 的 C++ 代码:

fRSUBehavior.cc

posX = check_and_cast<BaseMobility*>(getSimulation() -> getModuleByPath("fRSU[0].mobility.x")) -> getPositionAt(simTime()).x;
posY = check_and_cast<BaseMobility*>(getSimulation() -> getModuleByPath("fRSU[0].mobility.y")) -> getPositionAt(simTime()).y;
EV << "X: " << posX << " Y: " << posY << std::endl;

在此文件中,我想获取该节点的位置。但是,日志输出的值始终定义为0。

我该如何修改代码?

getModuleByPath("fRSU[0].mobility.x"))不太可能起作用。模块名很可能是fRSU[0].mobility,即不包含参数名。 getModuleByPath returns 很可能是一个 Null 指针,并且偶然地,您的程序不会崩溃,但您正在读取一些合理的值。