2017-02-20 59 views
0

为什么这个程序不起作用?我只是改变了讯息内容。改变静脉信息

而不是发送路障ID,我想发送一个“MyMessage”字符串的通用消息。

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

你是什么意思“不起作用” - 它不编译,或者它产生一个异常或运行时错误? –

+0

我会编辑我的问题,谢谢 – pb772

回答

1

我猜你正在修改随静脉4.4教程模拟。

该模拟工作如下:如果汽车停止超过几秒钟,则将当前道路发送到范围内的所有车辆。如果汽车收到这样的信息,它会将其转发给其他汽车,并尝试找到通往其目的地的路线,以避免此信息中的道路。

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

+0

好的,谢谢。所以实际上这个消息(“MyMessage”)正在被发送,但是因为汽车不知道该怎么处理这个消息,所以出现了这个错误。 – pb772