2

実装には telosB モートを使用しています。パケットを確認する方法の 1 つに出くわしました。

task void send() {
    call PacketAcknowledgements.requestAck(&myMsg);
    if(call AMSend.send(1, &myMsg, 0) != SUCCESS) {
      post send();
    }
  }
 event void AMSend.sendDone(message_t *msg, error_t error) {
    if(call PacketAcknowledgements.wasAcked(msg))
      // do something if packet was acked
    else
      // do something else if packet was not acked (possibly resend)
  }

実際には、ACK を送信するために、受信側のモートがパケットを確認する必要があるか、そのアプリケーションに PacketAcknowledgements インターフェースが必要であるという疑問があります。このタイプの承認はどのように機能しますか?

そして、私は独自のタイプの肯定応答で確認しました。パケットを受信した後、モートがパケットを肯定応答するように機能し、ソースモートが特定の時間枠内に肯定応答を受信しない場合、パケットを再送信します。

では、どちらがより良い方法ですか?

ガイドしてください & 感謝,

4

1 に答える 1