Pages: [1]   Go Down
Author Topic: XBee API mode  (Read 1376 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
ZIGBEE POWERED
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola a todos.
Llevo unos cuantos días tratando de transmitir información entre un módulo Arduino + Xbee shield y el PC con una aplicacion java.
La cuestión está, en que la librería que empleo está diseñada, al menos es lo que me interesa, para funcionar en modo API 2.
Bien, pues no consigo que Arduino me envíe algo al PC.
Matizo lo de "envíe" puesto que entre dos PC con la librería java, sí soy capaz de transmitir informacíon, con la configuración API=2 y por lo tanto mi problema está con el soft de Arduino, que no lo estoy haciendo bien.
Si alguien puede darme alguna pista de por donde tirar...
Gracias
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
ZIGBEE POWERED
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno,. he estado haciendo unas pruebas y os cuento, a ver si se os ocurre algo.
Las pruebas han consistido en la observacion a nivel de bits de la transmision serie de la informacion, y he detectado algo interesante.
Empleando Arduino sin el micro, simplemente como bridge USB-SERIAL, ya sea con la librería Java como con la utilidad X-CTU(enviando tramas en modo API 2, en ambos casos) obtengo una secuencia de bits determinada, la cual es detectada correctamente por el otro XBee conectado al PC con un FTDI232RL corriendo un programa Java, con la misma libreria que el emisor.
Ahora bien, codificando esa secuencia de bits y transcirbiendo el programa para arduino, curiosamente no funciona, es decir el receptor no detecta tramas válidas y por lo tanto no hace mas que desechar la info entrante.
Analizando la secuencia de bits en este segundo caso, resulta que es diferente, aunque aparentemente se está enviando la misma información, obtenida a partir de la reconstruccion manual de la secuencia de bits.
¿He de suponer que es un problema de codificación del software escrito para arduino?
Un saludo
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 4
ZIGBEE POWERED
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bueno, he conseguido algo.
Finalmente se ha podido enviar informacion en modo API 2.
Un poco de código:

// Xbee API 2 mode
//Serial comm
void setup(){
  // start up the serial
  Serial.begin(9600);
}

//Envía la cadena:  "Esto es una prueba, 1 2 3"
//con el formato de la trama API 2 : TXRequest16
void loop(){
  Serial.print(char(126));
  Serial.print(char(0));
  Serial.print(char(31));
  Serial.print(char(1));
  Serial.print(char(125));
  Serial.print(char(51));
  Serial.print(char(0));
  Serial.print(char(1));
  Serial.print(char(1));
  Serial.print(char(32));
  Serial.print(char(69));
  Serial.print(char(115));
  Serial.print(char(116));
  Serial.print(char(111));
  Serial.print(char(32));
  Serial.print(char(101));
  Serial.print(char(115));
  Serial.print(char(32));
  Serial.print(char(117));
  Serial.print(char(110));
  Serial.print(char(97));
  Serial.print(char(32));
  Serial.print(char(112));
  Serial.print(char(114));
  Serial.print(char(117));
  Serial.print(char(101));
  Serial.print(char(98));
  Serial.print(char(97));
  Serial.print(char(44));
  Serial.print(char(32));
  Serial.print(char(49));
  Serial.print(char(32));
  Serial.print(char(50));
  Serial.print(char(32));
  Serial.print(char(51));
  Serial.print(char(125));
  Serial.print(char(49));

  delay(2000);
}

Ahora se tratará de simplificar el modelo, para no tener que enviar byte a byte codificado en ASCII.

Un saludo y gracias
Logged

Pages: [1]   Go Up
Jump to: