在Omnet ++模拟器的日志模块中显示问题

时间:2016-10-06 15:00:25

标签: omnet++ veins

我使用静脉-4a2。首先,我已经执行了一个只有车辆的scnario。现在我在我的例子中添加了RSU。我需要每个RSU接收数据,在Omnet ++的模块日志中显示一条消息。就像我在接收数据时对节点所做的那样,我在TraCIDemp11p的onData()函数中添加了粗线,如下所示:

void TraCIDemoRSU11p::onData(WaveShortMessage* wsm) {

    findHost()->getDisplayString().updateWith("r=16,green");

    annotations->scheduleErase(1, annotations->drawLine(wsm->getSenderPos(), mobi->getCurrentPosition(), "blue"));

    **EV << " I am an RSU and I have received a data !  \n";**

    //if (!sentMessage) sendMessage(wsm->getWsmData());
}

我的问题是&#34;我是RSU而且我收到了数据! &#34;没有显示在日志模块中。 当RSU收到数据时,这是omnet ++的日志模块中显示的内容:

** Event #4802  t=9.004337832007  RSUExampleScenario.node[4].nic.phy80211p (PhyLayer80211p, id=161), on `data' (Mac80211Pkt, id=669)
node[4]::PhyLayer80211p: AirFrame encapsulated, length: 1326

2 个答案:

答案 0 :(得分:1)

确保进入onData函数。 你可以使用ASSERT或退出函数。

使用DBG,EV或cout打印消息

DBG << "Test_DBG: I am an RSU and I have received a data!\n";
EV << "Test_EV: I am an RSU and I have received a data!\n";
std::cout << "Test_cout: I am an RSU and I have received a data!\n"

设置打印消息后,使用一个代码终止模拟

// terminate the simulation with error code 3
   exit(3);

或使用ASSERT

 ASSERT2(0,"Test: I'm RSU");

如果模拟以错误终止,您将确保执行onData,否则,不会在代码的任何部分调用onData。

- 抱歉,我没有声名只添加一条评论 - 祝你好运!

答案 1 :(得分:0)

我不知道您是否了解onData的工作原理。

在默认静脉中,仅在名称为data的一个包到达一个汽车/节点或RSU(通过handleLowerMsg)时调用onData。

在RSU的情况下,需要:

  1. 汽车/节点需要appl.sendData真实

  2. 致电发送packages with name data

  3. Range of communication与汽车/节点和RSU。默认值为1千米直径。
  4. 一个好的测试是使用randomTrips.py创建一个小网格,并将RSU设置在中心,所有节点都可以在其中实现。

    - 大一条评论,所以我做了一个新答案 - 祝你好运!