Ya conseguí solución a mis dudas anteriores, un poco de mucho leer, y al final lo llegué a entender, pero ahora me encuentro con un problemas, Ya tengo los programas funcionando, pero cuando hace el envío, el XBEE de escritura, envía el dato de tipo TX_64_Request, se supone que cuando lo escucha el XBEE de lectura, le llega un RX_64_Request, pero cuando llegó al bucle de comprobación me dice que no es de este tipo, y he comprobado 20 veces y siempre me falla en la comprobación para obtener el dato :S os adjunto los códigos a ver si véis el fallo:
Este es el programa de lectura
#include <XBee.h>
uint8_t payload[] = { 0, 0 };
XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
Rx16Response rx16 = Rx16Response();
Rx64Response rx64 = Rx64Response();
uint8_t* data = 0;
void setup() {
pinMode(13,OUTPUT);
pinMode(10,OUTPUT);
xbee.begin(9600);
}
void loop() {
xbee.readPacket();
if (xbee.getResponse().isAvailable()) {
// De este if pasa, no pasa del siguiente
if (xbee.getResponse().getApiId() == RX_64_RESPONSE) { xbee.getResponse().getRx64Response(rx64);
data = rx64.getData();
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
} else {
digitalWrite(10,HIGH);
delay(1000);
digitalWrite(10,LOW);
delay(1000);
digitalWrite(10,HIGH);
delay(1000);
digitalWrite(10,LOW);
}
}
}
Este es el programa de escritura
#include <XBee.h>
XBee xbee = XBee();
uint8_t payload[] = { 0, 0 };
XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x4008b490);
Tx64Request tx = Tx64Request(addr64, payload, sizeof(payload));
void setup() {
pinMode(13,OUTPUT);
xbee.begin(9600);
}
void loop() {
xbee.send(tx);
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
digitalWrite(13,HIGH);
delay(1000);
digitalWrite(13,LOW);
delay(1000);
}
Espero que me podáis echar una mano por favor, ya que no llego a verlo el fallo :S