XBee Problema de paquetización

0

Tengo un ATmega368, actualmente trabajando sobre Arduino Uno, cuyo objetivo final será procesar cierta información del sensor y enviarla a través del XBee (configurado como enrutador) al coordinador.

Entonces, básicamente tengo un arduino, que su pin Tx está conectado al pin 3 en XBee (configurado como ROUTER AT). Toda la información que estoy escribiendo a través del método Serial.println () se recibe perfectamente en el coordinador en las tramas de paquetes de recepción API ZigBee (0x90).

Ahora, considerando que el paquete API 0x90 es capaz de almacenar 6 bytes de datos, esperaba que si limitaba la salida del Arduino también a 6 bytes obtendría solo 1 fotograma con los 6 bytes completos. Pero lo que sucede es que normalmente recibo el mensaje completo enviado desde el arduino, dividido en varios marcos.

Creo que se debe principalmente a la puntualidad de la paquetización (establecida por RO) de los datos mientras se espera en el búfer. Pero teniendo en cuenta que solo envío datos cada 5 segundos aproximadamente, el período de paquetización siempre se agota.

Una opción podría ser configurar el XBee como una API de ROUTER y compilar el marco yo mismo.

¿Alguna idea?

    
pregunta cvicente

1 respuesta

1

Sí, la única opción confiable que he encontrado para evitar que los paquetes se dividan es usar el modo API. Hay una biblioteca de Arduino para ayudarte con eso, xbee-arduino de Andrew Rapp. No olvide configurar el modo API que se escapó, de lo contrario los marcos se considerarán incorrectos, no se recibirá nada y no entenderá por qué. En el lado de la computadora, la biblioteca xbee-api (Java) del mismo autor es excelente para la depuración.

He creado una página con Sugerencias y recursos de XBee que encontré más útil cuando estaba haciendo algo similar con un XBee.

    
respondido por el Erion

Lea otras preguntas en las etiquetas