3
で重複をチェックし、WSMパケットが以前に受信されたかどうかを検出するメカニズムを実装しようとしています。私はパケットを識別するための主な変数として "psid"を使用しています - それは正しいですか?は、私が静脈に新しいです静脈
このタイプのコードは機能しますか? :
bool MyVeinsApp::msgReceivedBefore(int psid){
/*
This function will be used to determine if the message was received before
and should be discarded or processed further
*/
if(msg_log.find(psid) == msg_log.end()){
return false
}
else {
return true;
}
}
ここでmsg.logはpsidに基づくWSMを格納するC++データ構造です。
これは100%正確ではありません。 Veinsは内部的にメッセージを複製するので、すべての車は異なるIDのメッセージを受信しますが、メッセージは実際には同じブロードキャストです。 このようにするには、一意の識別子でメッセージを拡張し、シミュレーション環境から 'getUniqueNumber()'を使って値を割り当てる必要があるでしょう。 – floxyz