为什么这个程序不起作用?我刚刚更改了邮件内容。
我想发送带有“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".
答案 0 :(得分:2)
我猜你正在修改Veins 4.4附带的教程模拟。
此模拟的工作原理如下:如果汽车停止超过几秒钟,它会将当前道路发送到范围内的所有车辆。如果汽车收到这样的消息,它会将其转发给其他汽车,它将尝试找到一条到达目的地的路线,避开此消息中的道路。
我猜您只是将路径中的消息内容更改为某个字符串。因此,接收该消息的任何汽车仍将试图避开该字符串所标识的道路。因为这样的道路不存在,所以你会收到错误。