2016-08-06 7 views
0

Ich habe einige Knoten mit Xbee s2 auf ihnen installiert. die Zigbee-Module, die als Router und Koordinator in Zigbee-Mesh-Topologie konfiguriert sind. Ich möchte Daten von jedem Knoten an einige andere Knoten senden.Senden eines Datenblocks mit zigbee

Frage: Wie muss ich Daten senden? Hier ist ein Pseudo-Code, den ich im Sinn habe. Ich möchte wissen, ob es eine API in ZigBee-Stack ist, dass ich für diese verwenden kann, und wenn ich etwas vermissen:

init_network; 
fragment_data_to_frames; 
fork(); 
if(process_is_parent) 
    for(i=0;iMbum_frames;i++){ 
     send_frame(i); 
     wait(x miliseconds)// how much do I have to wait? or do I have to wait upon receiving ack,i.e. wait(ack(i)); 
    } 
} 

if(process_is_child){ 
     check_acknowledgment_packets();//does zigbee notify me that the frame is lost? or I have handle it by myself, e.g. by assuming frame is lost after specific time. 
} 
resend_lost_frames; 

in dem Zielknoten, wie ich die Daten abrufen kann? Muss ich selbst damit umgehen, indem ich die Sequenznummer und das Profil überprüfe und die Pakete verkette? oder Zigbee Stack wird es für mich tun.

Antwort

0

XBee-Funkmodule im API-Modus erzeugen einen "Übertragungsstatus" -Frame, um anzuzeigen, dass eine Frame-Nummer vom Remote-Modul empfangen wurde. Es gibt keine Garantie dafür, dass der Host auf der anderen Seite die Nachricht erfolgreich verarbeitet hat, da es sich um eine Bestätigung auf Netzwerkebene und nicht um eine Anwendungsschicht handelt.

Wie viele Daten möchten Sie senden? ZigBee wurde für die Datenübertragung mit niedriger Geschwindigkeit und geringem Datenvolumen entwickelt. Wenn Sie nur XBee-Module verwenden, können Sie ihre proprietären Protokolle (wie transparente serielle) verwenden. Für die Interoperabilität müssen Sie in der ZigBee Cluster Library nachlesen, wie allgemeine Befehle und Attribute zum Übertragen von Informationen zwischen Knoten verwendet werden.

+0

Die Größe der Daten ist etwa Hunderte von Gleitkommazahlen. – amati

+0

kann die Zigbee-Anwendungsschicht die Daten segmentieren, senden, auf Acks überprüfen und die verlorenen Frames erneut senden, und im Empfängerknoten Rahmen miteinander verketten, um die ursprünglichen Daten abzurufen, und? Wir lesen bereits den Übertragungsstatus, aber ich möchte wissen, dass es eine API- und Zigbee-Cluster-Bibliothek gibt, die das automatisch für uns erledigt. – amati