2017-07-23 6 views
0

Danach schicke ich verschiedene runicast Nachrichten mit der Funktion runicast_send, wie kann ich verstehen, die Nachricht bestätigt wurde, wenn der Rückruf sent_runicast ausgelöst wird?Wie verstehst du, welche Nachricht du in Contiki (Rime) erfolgreich gesendet hast?

Die runicast.h Datei lautet:

Das runicast primitive fügt zwei Paketattribute: die Single-Hop- Pakettyp und die Single-Hop-Paket-ID. Das Runicast-Primitiv verwendet das Paket-ID-Attribut als eine Sequenznummer zum Vergleichen von Bestätigungspaketen mit den entsprechenden Datenpaketen.

aber ich habe nicht verstanden, wie man es in der Praxis macht. Kann jemand ein Beispiel geben?

Antwort

0

Eine Möglichkeit wäre, auf das Gebiet sndnxt von struct runicast_conn *c zu suchen, bevor Sie das Paket senden, und vergleichen Sie dann den Wert der packetbuf_attr(PACKETBUF_ATTR_PACKET_ID) im „gesendet“ Rückruf des Codes.

jedoch, dass standardmäßig beachten Sie die runicast Paket-ID lange nur 2 Bits. Genug, um die ACK in den meisten Fällen zu demultiplexen, aber für Ihre Zwecke möglicherweise nicht ausreichend. (Die Paketgröße in ID-Bits kann durch RUNICAST_PACKET_ID_BITS Neudefinition geändert werden.)

Raureif Auch ist überholt. Verwenden Sie es nicht in Ihrem Code, insbesondere nicht in Produktionscode, es sei denn, Sie wissen, was Sie tun. runicast war nie einer der Höhepunkte von Rime, ich bezweifle, es gibt keine besseren Alternativen (z. B. der uIPv6-Stack) für das, was Sie tun möchten.

Verwandte Themen