tictoc 教程解释了如何收集统计数据。基本上,您向每辆车添加一个信号(在.ned
C++ 代码中和 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 而不是上面示例中的跳数,您可以直接查看每个发送者每个接收者接收的数据包数量。您可能可以扩展它以收集距离,但如果您谈论数据包接收率,我看不出这有什么意义。