Calculating distance between cars nodes VEINS

会有一股神秘感。 提交于 2019-12-01 13:10:39

问题


I am new to VEINS and trying to implement weighted p-persistence inside MyVeinsApp.cc. Distance between the sending node and receiving is used in that formula. I saw the 2 functions below.

virtual Coord& getSenderPos();
virtual const Coord& getSenderPos() const {return const_cast<WaveShortMessage*>(this)->getSenderPos();}

Should I use one of those methods to calculate the distance between nodes?

Please advise on the best approach.


回答1:


For the distance you obviously need the two positions. You can get the position of the current node by asking the mobility module and the position of the sender from the message you received. Then you can use the following method from Coord to calculate the distance between two points:

/**
 * @brief Returns the distance to Coord 'a'.
 */
double distance(const Coord& a) const {
    Coord dist(*this - a);
    return dist.length();
}



回答2:


Look for the Path Loss Model implemented by your application. This can be seen in the Analog Model type within your config.xml file. For example, by default, veins4.7.1 uses SimplePathLossModel. In the behavior description of this path loss model (.cc file), you can see the variables

reveiverPos, senderPos

And by just finding the length between them, it is possible to have the distance between the sender and the receiver.

double yourDistance = (receiverPos-sendersPos).length();

And if, like me, you use prefer the debugging tags, you can see this distance by printing it in the debug using:

splmEV << "Distance between sender and receiver is: " << yourDistance << endl;

Make sure to define splmEV.



来源:https://stackoverflow.com/questions/42687283/calculating-distance-between-cars-nodes-veins

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!