变脉消息

Changing veins message

为什么这个程序不起作用?我刚刚更改了消息内容。

我想发送一条带有 "MyMessage" 字符串的通用消息,而不是发送路障 ID。

void TraCIDemoRSU11p::sendMessage(std::string blockedRoadId) 
{
    sentMessage = true;
    t_channel channel = dataOnSch ? type_SCH : type_CCH;
    WaveShortMessage* wsm = prepareWSM("data", dataLengthBits, channel, dataPriority, -1,2);
    //wsm->setWsmData(blockedRoadId.c_str());
    wsm->setWsmData("MyMessage");
    sendWSM(wsm);
}

模拟开始,但发送第一条消息时出现错误:

TraCI Server reported error executing command 0xc4:"Referenced edge 'MyMessage' is not known".

我猜你正在修改 Veins 4.4 附带的教程模拟。

这个模拟的工作原理如下:如果汽车停止超过几秒钟,它会将当前的道路发送给范围内的所有车辆。如果一辆车收到这样的消息,它将把它转发给其他汽车,它会尝试找到一条到达目的地的路线,避开这条消息中的道路。

我猜你只是将消息的内容从道路名称更改为一些字符串。因此,任何收到该消息的汽车仍将尝试避开该字符串标识的道路。因为这样的路不存在,所以你会收到错误消息。