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

How to store different timestamps of packets in OMNeT++

我是 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++ 编写的,因此您可以使用它的所有功能(如成员变量)来编写干净的代码。