Hola,
Tengo un problema y no sé que pasa con los XBee.
Actualmente tengo dos XBee-Pro Serie 1 de Digi. Uno lo tengo como coordinador y otro como end-point, ambos con el modo API habilitado.
El problema es que quiero obtener el RSSI y no soy capaz, os pego aquí el código fuente de sendos Arduinos UNO.
Además estoy utilizando la librería 0.5 de XBee-Arduino (la más reciente hasta la fecha).
Para el coordinador:
#include <SoftwareSerial.h>
#include <XBee.h>
#define ssRX 0
#define ssTX 1
SoftwareSerial nss(ssRX, ssTX);
XBee xbee = XBee();
uint8_t payload[] = {'a','b','c','d','e'};
XBeeAddress64 addr64 = XBeeAddress64(0x0013a200, 0x403e0f30);
Tx64Request tx64 = Tx64Request(addr64, payload, sizeof(payload));
void setup()
{
Serial.begin(9600);
nss.begin(9600);
xbee.setSerial(nss);
}
void loop()
{
xbee.send(tx64);
delay(1000);
}
Para el end-point:
#include <SoftwareSerial.h>
#include <XBee.h>
#define ssRX 0
#define ssTX 1
SoftwareSerial nss(ssRX, ssTX);
XBee xbee = XBee();
Rx64Response rx64 = Rx64Response();
void setup()
{
Serial.begin(9600);
nss.begin(9600);
xbee.setSerial(nss);
}
void loop()
{
xbee.readPacket(1000);
Serial.println(xbee.readPacket(1000));
if (xbee.getResponse().isAvailable())
{
if (xbee.getResponse().getApiId() == RX_64_RESPONSE)
{
xbee.getResponse().getRx64Response(rx64);
Serial.print(rx64.getRssi());
}
}
else
{
Serial.println("No responde");
}
}
El end-point lo tengo conectado al PC, y por el puerto Serial recibo:
No responde
0
No responde
0
No responde
0
No responde
.
.
.
¿Alguien sabe cuál puede ser mi problema?
Un saludo y muchas gracias.