也许我错了,但是我注意到功能getSenderPos()已从WaveShortMessage删除/移动到4.5+版本中的BasicSafetyMessage。

在4.4版中-我正在使用getSenderPos()计算两个节点之间的距离,但想知道4.6+版的最佳方法是什么?

我应该重写在VEINS应用程序中为WSM交换编写的代码来进行BSM交换,还是我丢失了某些东西?

谢谢您的帮助。

最佳答案

没错:与早期版本相比,Veins 4.6要求将小得多的set of fields从应用程序传递到MAC层。实现这组字段的基本类型称为WaveShortMessage(有些令人困惑)。通过从基本类型中继承(如您认为合适)来随意扩展字段集,然后在onWSM方法中将收到的消息强制转换为您的类型。

为了进行快速实验,Veins附带的示例应用程序层BaseWaveApplLayer已经实现了消息来模拟WSA和BSM,但是很可能您还是想使用一种全新的消息,因此,我不建议在以下类型的消息上进行构建除了最简单的调查之外,其他所有操作(即使是这样,也要检查以确保您正在正确设置诸如消息长度之类的参数)。

10-04 13:01