如何解决OMNeT++中统计收集相关值不增加
为了测量数据包的发送/接收计数,我声明了一个标量变量并编写了一个与record相关的函数。它看起来像这样:
啊
---
title: "El Code-Book de Guibi"
output:
html_document:
toc: yes
toc_depth: 5
toc_float: yes
pdf_document:
toc: yes
toc_depth: '5'
editor_options:
markdown:
wrap: 72
---
A.cc
class VEINS_API A : public DemoBaseApplLayer
{
private:
long StaticsFrsaPacketCount;
cOutVector frsaPacketCountVector;
...
}
我参考OMNeT++ 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));
}
...
}
}
官方教程中写的统计数据编写了代码。但是,模拟完成后通过生成的Tictoc
文件标量值的结果如下图所示。
换句话说,该值似乎增加了 .anf
次,之后不再增加。是什么原因?
解决方法
(这部分)你的代码看起来不错。结果中有 1 的最可能原因是因为实际上只发送了一个数据包。统计数据显示了实际发生的情况。如果您希望发送多个数据包,我建议在 Qtenv 中启动应用程序并逐步执行模拟并确保它按预期工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。