実装には 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 インターフェースが必要であるという疑問があります。このタイプの承認はどのように機能しますか?
そして、私は独自のタイプの肯定応答で確認しました。パケットを受信した後、モートがパケットを肯定応答するように機能し、ソースモートが特定の時間枠内に肯定応答を受信しない場合、パケットを再送信します。
では、どちらがより良い方法ですか?
ガイドしてください & 感謝,