Veins-4a2 を使用し、デモ例のシナリオを変更しました。ノードがメッセージを受信したときに ACK である新しい wsm を追加しました。これは、送信元ノードに ACK メッセージを送信します。onData() 関数に次の行を追加しました。
sendWSM(prepareWSM("ack", ackLengthBits, type_SCH, ackPriority, sourcenode.idNode, 2));
確かに BaseWaveApplLayer.cc の prepareWSM と handleLowerMsg() 関数を変更しましたが、シミュレーションを実行すると 10 秒後にクラッシュします。これはエラーメッセージです:
モジュール (Mac1609_4) のエラー RSUExampleScenario.node[2].nic.mac1609_4 (id=240) イベント #1196、t=9.210177776741: モデル エラー: ASSERT: 関数 handleUpperMsg の条件 useSCH false、venes/modules/mac/ieee80211p/ Mac1609_4.cc 259 行目。
ACK メッセージに SCH チャネルを再利用する権利がないということですか? どうすればこの問題を解決できますか?