【发布时间】:2021-04-25 03:30:13
【问题描述】:
为了测量数据包的发送/接收计数,我声明了一个标量变量并编写了一个与记录相关的函数。它看起来像这样:
啊.h
class VEINS_API A : public DemoBaseApplLayer
{
private:
long StaticsFrsaPacketCount;
cOutVector frsaPacketCountVector;
...
}
A.cc
void A::initialize(int stage)
{
DemoBaseApplLayer::initialize(stage);
if(stage == 0)
{
StaticsFrsaPacketCount = 0;
frsaPacketCountVector.setName("fR_SA packet count");
...
}
}
void A::finish()
{
recordScalar("fR_SA Packet", StaticsFrsaPacketCount);
...
}
void A::handleSelfMsg(cMessage* msg)
{
switch(msg -> getKind())
{
case SEND_FRSA_EVT:
{
...
StaticsFrsaPacketCount++;
frsaPacketCountVector.record(StaticsFrsaPacketCount);
...
sendDelayedDown(wsm, uniform(0.01, 0.50));
}
...
}
}
代码我参考了OMNeT++官方Tictoc教程中写的统计。但是,模拟完成后通过生成的.anf文件得到的标量值结果如下图所示。
换句话说,该值似乎增加了1 时间,之后不再增加。是什么原因?
【问题讨论】: