2017-02-20 56 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