【问题标题】:Calculating distance between cars nodes VEINS计算汽车节点之间的距离 VEINS
【发布时间】:2017-07-29 23:05:51
【问题描述】:
我是 VEINS 的新手,正在尝试在 MyVeinsApp.cc 中实现加权 p-persistence。该公式中使用了发送节点和接收节点之间的距离。我看到了下面的 2 个函数。
virtual Coord& getSenderPos();
virtual const Coord& getSenderPos() const {return const_cast<WaveShortMessage*>(this)->getSenderPos();}
我应该使用其中一种方法来计算节点之间的距离吗?
请告知最佳方法。
【问题讨论】:
标签:
c++
simulation
omnet++
veins
sumo
【解决方案1】:
对于距离,您显然需要两个位置。您可以通过从收到的消息中询问移动模块和发送者的位置来获取当前节点的位置。然后你可以使用Coord中的以下方法来计算两点之间的距离:
/**
* @brief Returns the distance to Coord 'a'.
*/
double distance(const Coord& a) const {
Coord dist(*this - a);
return dist.length();
}
【解决方案2】:
查找您的应用程序实现的路径损耗模型。这可以在 config.xml 文件中的模拟模型类型中看到。
例如,默认情况下,venes4.7.1 使用 SimplePathLossModel。在这个路径损失模型的行为描述(.cc文件)中,可以看到变量
reveiverPos, senderPos
并且只要找到它们之间的长度,就有可能得到发送者和接收者之间的距离。
double yourDistance = (receiverPos-sendersPos).length();
如果像我一样,你使用更喜欢调试标签,你可以通过在调试中打印它来查看这个距离:
splmEV
确保定义 splmEV。