计算静脉-LTE终端到端到端延迟SimpleServerApp计算静脉-LTE终端到端到端延迟Sim

2019-05-12 10:03发布

我试图计算静脉-LTE终端到端到端延迟SimpleServerApp,我无法得到任何结果,当我打开结果文件有关的所有延误的统计数据是0或NaN。

我看着在TIC-TOC的教程,并试图做这样的事情,但这样,我甚至没有得到统计:

在模块:

delayVector.record(delay);
delayHist.collect(delay);

并调用结束时():

delayHist.recordAs("delayFinish");

哪里

simtime_t delay;
cOutVector delayVector;
cLongHistogram delayHist;

然后我试图从其他统计记录复制的过程,但我认为不能在我的情况下使用,因为我想送长:

在NED文件:

@signal[delay](type="long");
@statistic[delay](title="delay"; source="delay"; record=vector, stats, histogram);

在模块:

emit(delay,delay); //where the first delay is the signal and the second one, the value.

这就是我做什么来计算延时:

在发送模块:

msg->setSendingTime();

在接收模块:

simtime_t delay = simTime() - msg->getSendingTime();

我会很感激任何帮助!

Answer 1:

由于版本4.1的OMNeT ++引入统计/度量收集和记录的使用信号机制的概念。

简言之,信号机构的工作原理如下:一个给定的值被连接到一个(内置型的对象)的信号,并且该信息被记录到输出文件(或者作为标量或作为载体),其稍后可以在为了进行分析,以推断某些行为。

如果你不明白这个机制确实是如何工作的,请务必先阅读的OMNeT ++手册的以下部分:

  1. 基于信号统计4.15录音
  2. 12结果记录与分析

一旦你环绕这个概念,你的头,你会感觉更舒适,让你的输出结果方面想要的东西。


至于你的问题而言,如果你想使用的信令机制在SimpleServerApp你首先必须声明的信号,并相应的统计 .ned文件:

@signal[nameOfSignal](type="sameAsTypeOfVariable");
@statistic[nameOfStatistic](title="nameToAppearInTheOutputFile"; source="nameOfTheSourceOfThisStatistic"; record=typeOfStat1, typeOfStat2, typeOfStat2);

然后,你需要声明的信号变量 .h

simsignal_t nameOfMetricSignal;

然后在注册信号 initialize().cc一样,你在使用的名称.ned的信号:

nameOfMetricSignal = registerSignal("nameOfSignal");

最后所有你所要做的就是emit()的信号 。 也就是说,价值附加到信号,并让它recoreded。 要做到这一点的位置取决于您的实现。

emit(nameOfMetricSignal, theVariableToBeAttached);


对于你,会是这样的:

  1. NED:

@signal[delay](type="float");

@statistic[delay](title="delay"; source="delay"; record=mean, sum, stats, vector);

  1. .h simsignal_t delaySignal;
  2. .cc delaySignal = registerSignal("delay");
  3. .cc emit(delaySignal, delay);

如果您收到0Nan ,可能是由错误的号码,由于分工,相比变量的类型错误类型的信号。 另外,还要确保矢量和标量记录在不关闭( false的) omnetpp.ini



文章来源: Calculating end-to-end delay for SimpleServerApp in Veins-LTE
标签: omnet++