¿Por qué recibo un estado de módem (0x8A) en mensajes de difusión (XBee)?

Estoy enviando una solicitud de comando AT remoto en transmisión (sin ACK - frameID = 0x00), desde mi API de coordinador, para establecer el comando CB en 1: esto simula 1 botón de puesta en marcha presionado en el software del dispositivo remoto para recibir un Nodo Indicador de identificación.

Cuando envío el primer paquete:

7e 0 10 17 0 0 0 0 0 0 0 ff ff ff fe 1 43(C) 42(B) 1 66 

Recibo el siguiente marco de indicador de identificación de nodo:

7e 0 27 95 0 13 a2 0 40 aa d0 6 f9 5d 2 f9 5d 0 13 a2 0 40 aa d0 6 52 4f 54 45 41 44 4f 52 0 ff fe 1 1 c1 5 10 1e 7f

pero, si vuelvo a enviar el mismo comando AT remoto (comando CB con el parámetro 1), obtengo estos dos marcos de estado del módem:

7e 0 2 8a 1 74 
7e 0 2 8a 6 6f 

El primero significa un reinicio del temporizador Watchdog (1), y el otro significa que se inició un Coordinador (6). Revisé el voltaje de mi XBee y está todo bien (3,3 V), ¿no se supone que se reinicie? Si vuelvo a enviar el comando AT remoto (por tercera vez), obtendré el marco del indicador de identificación de nodo. Y enviando una segunda vez (cuarta vez), obtengo los dos marcos de estado del módem. Entonces, sigue repitiendo..

¿Por qué sucede esto? Tuve que enviar dos veces para obtener la respuesta que quería.

EDITAR

Estoy usando XBee Serie 2

Respuestas (1)

Parece que no envió un paquete de transmisión API correcto. Enviaste

7e 0 10 17 0 0 0 0 0 0 0 ff ff ff fe 1 43(C) 42(B) 1 66

Donde el primer byte es el delimitador de inicio para un paquete API (0x73) - correcto

los siguientes dos bytes son la longitud, que es 16 (0x0010) - correcto

El siguiente byte es el valor del identificador API para la solicitud de comando AT (0x17) - correcto

La ID del marco también es correcta como ya se mencionó en su publicación: correcta

La dirección de destino de 64 bits (0x000000000000FFFF) - correcta

Dirección de red de destino (0xFFFE) - correcta

Las opciones de comando deben ser 0x02 o 0x00. Todos los demás bits deben ser 0. Tiene 1, lo que significa que el bit 0 está configurado, lo que no debería ser el caso. Supongo que el reinicio se debe a este valor incorrecto. Cambia eso a 0x02 y estarás bien.