2016-04-01 7 views
1

Ich habe in den letzten Tagen versucht, über die Basisstation auf die einzelnen Knoten zuzugreifen, aber ich hatte kein Glück. Ich versuchte folgendes auf einer Basisstation (Unicast-Empfänger.c) und einem Erfassungsknoten (Unicast-Sender.c)Z1 motes - Kommunikation zwischen einer Basisstation und einem Sensorknoten

Zuerst habe ich versucht, eine RPL dag auf dem Unicast-Sender zu erstellen und es von Unicast-Empfänger verfolgen

address= servreg_hack_lookup(SERVICE_ID_1) 

und anschließend

simple_udp_sendto(&unicast_connection, msg.value, 1, address) 

aber es gab mir eine ganz andere Adresse anstelle der Adresse des Sensorknotens, daher hat es nicht funktioniert.

Wie auch immer, ich habe versucht, den RPL dag zu entfernen, aber dann konnte ich keinen Weg finden, die Adresse des Sensorknotens fest zu codieren.

Wenn ich zumindest die Adresse des Messknotens fest codieren kann und die Funktion simple_udp_sendto (& Unicast_Verbindung, msg.value, 1, Adresse) verwenden kann, um mit dem Messknoten zu kommunizieren, dann könnte das funktionieren, aber wie?

(EDIT) Ich konnte nicht einmal ein Byte an die entfernte z1 mote senden, und ich glaube nicht, dass es helfen wird, nur die Adresse zu erhalten, weil der Sensorknoten etwas erwarten sollte, wenn ich würde es schicken. Aber wie schicke ich dann in diesem Fall?

Antwort

1

Das einzige, was das Problem zu lösen benötigt wird, ist der Knoten der Adresse mit

uip_ipaddr_t addr; 
uip_ip6addr(&addr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0); // or whatever is the values for your node 

und dann mit einem einfachen-udp Sendefunktionen, um Ihre Daten zu senden.

simple_udp_sendto_custom(&unicast_connection, msg.value, 1, &addr); // this is my own custom function, 
//but any other should do the same thing provided the address 
Verwandte Themen