2016-07-11 3 views
1

remote verbunden Ich möchte die Zustände der Relais auf der Platine vom Relais erhalten, aber ich kann nur ACK zurück erhalten.Lesen Antwort von einem TOSR0X-T-Relais mit XBee-Modul

Ich habe zwei XBee-Module, eines ist mit einem Computer mit USB verbunden und fungiert als serielles Gerät, das andere ist mit einem TOSR0X-T-Relais verbunden. Ich plane, mehr XBee-Module zu dem Netzwerk mit mehr Relais später hinzuzufügen, so verwende ich API-Modus, nicht den einfachen AT-Modus, da ich sie separat adressieren muss.

Ich sende TX-Frames mit 64-Bit-Adresse an den Remote-XBee, um Relais zu öffnen oder zu schließen. Das klappt gut, ich bekomme die ACK-Response-Frames richtig. Wenn ich jedoch eine Nachricht aussende, um die Relaiszustände durch Senden von 0x5B zu erhalten, bekomme ich nur eine ACK zurück, und ich kann keine Möglichkeit finden, die tatsächlichen Daten zurück zu bekommen, die die Relaiszustände anzeigen.

Ich verwende node-serialport und die X-CTU Software, konnte aber die Daten nicht lesen, und das einzige Beispiel, das ich beide XBees auf der gleichen Maschine verbunden verwendet gefunden - diese Weise ein RX auf dem Ziel XBee erschien - aber ich brauche zu bekommen das irgendwie entfernt.

TOSR0X-T Dokumentation here erzählt mir nur über das Gespräch mit ihm über TX-Nachrichten, so habe ich keine Ahnung, ob ich etwas mit Befehlen erreichen kann (und wie man das macht).

Antwort

0

Nach einigen Experimenten konnte ich mein Problem lösen.

die CH (Kanal) und ID (PAN ID) passen Unter Berücksichtigung -, dass eine Anforderung ist in der Lage zu sein, das Netzwerk einzurichten, habe ich meine XBees so zusammen:

Das XBee-Koordinator (die mit dem Computer verbunden):

CE = 1 (for being coordinator) 
MY = 0001 
DH = 0 
DL = 0 
AP = 1 (in API mode) 

der erste Endpunkt (die einen bis der TOSR0X-T):

CE = 0 (for being an endpoint) 
MY = 000A (whatever you want), use FFFF for 64 bit responses 
DH = 0 
DL = 0001 (This is one I missed. It should be the Coordinator's MY) 
AP = 0 (in AP mode) 

Also im Grunde habe ich alles richtig gemacht, mit Ausnahme der DH/DL Adressierung . Für den Endpunkt muss der DL auf den MY des Koordinators eingestellt werden. Ich habe Artikel gelesen, in denen mit FFFF und FFFE gearbeitet wurde, und solche Sachen, um Sendungen zu senden, und ich glaube, ich war verwirrt über diese Informationen.

1

Die ACK, die Sie sehen, ist wahrscheinlich die Netzwerkschicht-ACK, die Ihnen mitteilt, dass das XBee-Remote-Modul Ihr Paket empfangen hat. Sie müssen den "AT-Modus" auf dem mit dem TOSR0X-T verbundenen XBee verwenden und die TX-API-Frames für diesen Modus korrekt adressieren (Cluster 0x0011 des Endpunkts 0xE8).

Wenn Sie das XBee auf Ihrem Computer als Koordinator konfiguriert haben, die Standardeinstellungen von 0 für DH und DL auf dem XBee-Modul des Relais führen in allen seriellen empfangenen Bytes immer an die XBee auf Ihrem Computer weitergeleitet zurück, und als RX-Frames durchkommen.

+0

Aber wird es möglich sein, mehr als zwei XBees im AT-Modus zu verwenden? Einen Koordinator an einen Computer anschließen und zwei weitere an Relais anschließen. Wenn ich eine offene Nachricht sende, möchte ich angeben, welches XBee-Relais geöffnet werden soll. Wird in diesem Fall ein TX-Paket mit 16 oder 64 Bit adressiert? - Können Sie mehr über die Adressierung der Frames herausfinden - oder mich zu einer Dokumentation führen? –

+0

Ja, Sie können mehrere XBee-Module im AT-Modus haben. Sie senden ihre Daten zurück an den Koordinator und Sie erhalten Frames mit der Adresse des Remote-Geräts, sodass Sie wissen, wer die Daten gesendet hat. Und Ihre TX-Pakete können entweder die 16-Bit- oder die 64-Bit-Adresse des Remote-Moduls verwenden, so wie Sie es jetzt tun.Und ich glaube, dass die Cluster- und Endpunktinformationen nur im "transmit explicit" -Frame verwendet werden. Ich glaube also nicht, dass Sie viel mehr an Ihrem Koordinatorende tun müssen. – tomlogic

+0

Das klingt großartig! Ich werde es später nachsehen, wenn ich nach Hause komme. Vielen Dank. –

Verwandte Themen