I'm ZhengKX

Talk is cheap, show me the code

Veins(车载通信仿真框架)入门教程(四)——调试及记录结果

 

Veins(车载通信仿真框架)入门教程(四)——调试及记录结果

在Veins入门教程(三)最后的动图中(如下图)可以看到大大小小的光圈,这个怎么实现的呢?

很简单,以收到RTS消息为例,通过finHost()->getDisplayString().updateWith()设置光圈的半径和颜色即可在收到RTS消息时令节点周围显示指定颜色和半径的光圈。

这样一方面增强了展示效果,另一方面也有助于调试程序的时候直观地发现哪里出现问题,比如多跳数据传输传着传着就中断了,我们可以根据光圈确定沿路的中转节点,接着通过点击控制台右上角的第三个按钮(如下图)

在这里插入图片描述

调出Filter Window Contents界面如下,选择特定节点的特定层(Layer)在控制台展示其输出打印出来的语句,根据自己设置的输出语句判断程序进行到哪一步,有没有按自己的设想运行?
在这里插入图片描述这个打印语句的操作是怎么实现的呢?
还看第二幅图,接收到RTS后,通过语句DBG_APP << "APP:handleLowerMsg()->receive RTS from node " << wsm->getSenderAddress() << endl即可实现。
或者点击控制台右上角第二个按钮调出如下界面,搜索控制台所有输出语句的特定内容,找到自己需要的打印内容进行分析。
在这里插入图片描述最后怎么记录仿真结果呢?
通过finish()函数内的recordScalar(“名称”,变量)即可记录特定变量,这个变量应当是用于记录结果的类成员变量,最后仿真完在仿真文件的文件夹内会有一个名为results的文件夹产生,点进去就能找到结果记录文件,双击直接在OMNeT++里面打开即可找到自己记录的那些变量结果,基本上就这些,自己试试吧~
在这里插入图片描述

 

posted @ 2018-12-11 00:13  zhengkunxian  阅读(1108)  评论(0编辑  收藏  举报