bonjour a tous
je suis en galère depuis plusieurs jours et je recherche de l'aide
je cherche a échanger des valeur entre un xbee coordinateur et un routeur en mode API 1 chaque-un brancher sur une mega
les configuration sur XCTU son bonne et fonctionne normalement .
en revanche , une fois sur mon code arduino , seul l'adresse de broadcast fonctionne .
#include <XBee.h>
XBee xbee = XBee();
XBeeResponse response = XBeeResponse();
ZBRxResponse rxResponse = ZBRxResponse();
ZBTxRequest txRequest;
XBeeAddress64 addr64ced = XBeeAddress64(0x0013a200, 0x41f2684c);
void setup() {
Serial.begin(9600); // Moniteur série pour debug
Serial1.begin(9600); // Communication avec le XBee
xbee.setSerial(Serial1);
Serial.println("Routeur prêt à recevoir et répondre !");
}
void loop() {
xbee.readPacket();
if (xbee.getResponse().isAvailable()) {
if (xbee.getResponse().getApiId() == ZB_RX_RESPONSE) {
// Traiter la trame reçue
xbee.getResponse().getZBRxResponse(rxResponse);
// Récupérer l'adresse de l'émetteur
XBeeAddress64 remoteAddress = rxResponse.getRemoteAddress64();
// Imprimer l'adresse de l'émetteur
Serial.print("Trame reçue de : ");
uint16_t testhaut = (remoteAddress.getMsb(), HEX);
uint16_t testbas = (remoteAddress.getLsb(), HEX);
Serial.print(remoteAddress.getMsb(), HEX); // Partie haute de l'adresse
Serial.print(remoteAddress.getLsb(), HEX); // Partie basse de l'adresse
Serial.println();
Serial.write(testhaut); // Partie haute de l'adresse
Serial.write(testbas); // Partie basse de l'adresse
Serial.println();
Serial.print("suite : ");
// Afficher le contenu de la trame
Serial.print("Données : ");
for (int i = 0; i < rxResponse.getDataLength(); i++) {
Serial.write(rxResponse.getData()[i]);
}
Serial.println();
// Préparer une réponse
uint8_t responsePayload[] = "OK, reponce ";
delay(5000);
XBeeAddress64 addr64Cible = XBeeAddress64(0x0013A200, 0x41F268DA);
XBeeAddress64 addr64Cible2 = XBeeAddress64(0x0013A200, 0x41F2684C);
//XBeeAddress16 addr16 = XBeeAddress16(remoteAddress16);
uint16_t addr16 = rxResponse.getRemoteAddress16();
//addr16(RemoteAddress16());
// txRequest = ZBTxRequest("0x00",testhaut,testbas, responsePayload, sizeof(responsePayload));
//txRequest = ZBTxRequest(addr16, responsePayload, sizeof(responsePayload));
txRequest = ZBTxRequest(0x000000000000FFFF, responsePayload, sizeof(responsePayload));// reponce a l'envoyeur
//txRequest = ZBTxRequest(addr64Cible, responsePayload, sizeof(responsePayload));
// Envoyer la réponse
xbee.send(txRequest);
Serial.print("Données renvoye: ");
delay(2000);
}
}
delay(100); // Pause pour éviter de saturer le port série
}
a la fin du code , il y a plusieurs tentative de définition de txRequest....
quelqu'un est il capable de me dire ou je merde ??
merci