2

关于 VANET 安全关键服务的可靠性指标,我发现一跳广播的数据包接收率 =

PRR(d)=距离 d 内从标记节点接收数据包的节点数/距离标记节点距离 d 内的节点总数, 然后我将计算特定区域内所有车辆的平均值。

我有一个使用 SUMO 构建的真实模型,使用 Randomtrips 脚本创建随机行程,因此每一秒都有一辆新车进入地图

在 omnet++(静脉)中,为了获得准确的结果,我使用 Roiroad 仅从地图中提取部分,在 SUMO 中我也可以知道每个选定边的长度。

我的问题:要计算每辆车(X)的方程,我如何在每次节点 X 广播信标时找到距离标记节点(X)距离 d 内的节点总数?

4

1 回答 1

0

tictoc 教程解释了如何收集统计数据。基本上,您向每辆车添加一个信号(在.nedC++ 代码中和 C++ 代码中),然后在您想要收集某些东西时触发该信号。像这样工作(代码来自教程):

    //initalization
    arrivalSignal = registerSignal("arrival");

    // in your reception code:
    int hopcount = ttmsg->getHopCount();
    // send a signal
    emit(arrivalSignal, hopcount);

其中arrivalSignal 是先前注册的信号,它告诉统计工具做某事。在您的 .ned 文件中,您需要映射信号以实际收集一些东西:

    @signal[arrival](type="long");
    @statistic[hopCount](title="hop count"; source="arrival"; record=vector,stats; interpolationmode=none);

注意这里的来源是你在初始化时给的名字;该@signal指令告诉 OMNeT++ 你正在记录什么类型的数据,@statistic这是后来作为输出产生的。

对于您的用例,我建议将统计信息收集添加到您的接收代码中,并在标识其来源的信标中放置一些标志。如果您记录发送者的 ID 而不是上面示例中的跳数,您可以直接查看每个发送者每个接收者接收的数据包数量。您可能可以扩展它以收集距离,但如果您谈论数据包接收率,我看不出这有什么意义。

于 2016-08-25T11:04:13.260 回答