如何在OMNeT++中存储不同时间戳的数据包

How to store different timestamps of packets in OMNeT++

本文关键字:同时间 时间戳 数据包 存储 OMNeT++      更新时间:2023-10-16

我是OMNeT++的新手。我正在做一个简单的模拟,其中客户端向服务器发送一些数据包。例如,我想存储发送的第一个数据包的时间戳,然后,我想保存发送的第十个数据包。我希望能够将这两个时间戳存储在两个变量中,timestamp_of_first_packettimestamp_of_last_packet,有点像

packets_sent = 1
cPacket* testPacket = new cPacket();
double timestamp_of_first_packet = testPacket->getTimestamp().dbl();
packets_sent++;
... 
double timestamp_of_last_packet = testPacket->getTimestamp().dbl();

目的是计算两个数据包之间的时间间隔,使用以下公式:

double time_interval = timestamp_of_last_packet - timestamp_of_first_packet;

我知道这种方法是错误的,因为两个变量都存储相同的值。如何正确存储两个时间戳?提前谢谢。

您可以通过调用simTime()来获取当前模拟时间。如果您希望在模拟中度过一些时间,请让模块为自己安排一个事件(使用scheduleAt)。请记住,您的模块是用C++编写的,因此您可以使用它的所有特性(如成员变量)来编写干净的代码。