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