XBee: enviar datos a un Router específico

Hola compañeros.

Estoy trabajando en una red de malla compuesta por 1 coordinador y varios Routers (cada XBee S2, modo API), que pueden unirse a la red en cualquier momento. Es por eso que estoy usando la función NodeDiscovery. El coordinador descubre cada Router que se una, y dentro de la función ND, cada Router envía un paqueted e vuelta que tiene su dirección. Así que puedo almacenar esas direcciones en una matriz: por ejemplo, int devices [50] [17] 50 dispositivos máximos.

Sé la forma de enviar datos del coordinador a un Router específico (escribiendo la dirección de un Router a mano, y enviando un paquete):

  • XBeeAddress64 addr (0x0013a20040a1f246) //la de una Router en específico
  • ZBTxRequest zbTx = ZBTxRequest (addr, payload, sizeof (payload));
  • xbee.send (zbTx);

Pero, en lugar de hacer este último paso, ¿hay alguna forma en que pueda usar la dirección almacenada de cualquier Router en la matriz anterior?

//En el Coordinador
int devices[100][17];
...

  //Dentro de la función NodeDiscovery

  while(xbee.readPacket(timeout)) { // should be receiving AT command responses
       if (xbee.getResponse().getApiId() == AT_COMMAND_RESPONSE) {
         xbee.getResponse().getAtCommandResponse(response);
         if (response.isOk()) {
           nodeCount++; //aumenta al encontrar un Router que se una a la red
           for (int i = 2; i < 10; i++) {
             devices[nodeCount-1][i]=response.getValue()[i]; //almacena la dirección de cada Router encontrado
             Serial.print(devices[nodeCount-1][i],HEX);
           }

           Serial.println("");

         }
       }
      }

La parte de código anterior puede no ser correcta del todo. Soy un principiante. Mis disculpas.

En resumen, estoy tratando de encontrar una manera de almacenar la dirección de cada Router encontrado para usarla más tarde para enviar datos. Por ejemplo ‘Hi1’ al Router1, ‘Hi2’ al Router 2, etc.

Si alguien tiene algún consejo, lo agradecería.

Saludos