utilisation de tableau de tableau pour adresse MAC

Bonjour

j'utilise une adresse MAC pour communiquer entre 2 ESP32
Actuellement l'adresse est sous ce format:

uint8_t newMACAddress[] = {0x00, 0x00, 0x00, 0x00, 0x99, 0x02};

Et j'aimerais choisir facilement entre différentes adresses avec un tableau de tableau

Donc je pensais definir de cette maniere:

uint8_t broadcastAddress[][] = {
{0x00, 0x00, 0x00, 0x00, 0x99, 0x02},
{0x00, 0x00, 0x00, 0x00, 0x99, 0x03}
};

et je pensais utiliser la premiere adresse de cette maniere:

avec i = 0, 1 ou autre

// Send message via ESP-NOW
esp_err_t result = esp_now_send(broadcastAddress[], (uint8_t *) &infoReadings, sizeof(infoReadings));[/quote]
Mais ca ne fonctionne pas en l'état.
Sauriez-vous m'aider ?
Je ne suis pas à l'aise avec ce genre d'outil
merci

Bonjour,

Il faut obligatoirement préciser la deuxième dimension du tableau, autrement le compilateur ne peut pas calculer l'adresse de la ligne n.

uint8_t broadcastAddress[][6] = {

kamill:
Bonjour,

Il faut obligatoirement préciser la deuxième dimension du tableau, autrement le compilateur ne peut pas calculer l'adresse de la ligne n.

uint8_t broadcastAddress[][6] = {

et pour utiliser la fonction ce serait comme ca:

// Send message via ESP-NOW

  • esp_err_t result = esp_now_send(broadcastAddress*[], (uint8_t *) &infoReadings, sizeof(infoReadings));

?
Car si je mets 6 j'ai peur qu'il me retourne uniquement le 6eme membre de la ligne non?

      esp_err_t result = esp_now_send(broadcastAddress[i], (uint8_t *) &infoReadings, sizeof(infoReadings));

Ou i est le numéro de l'adresse que tu veux utiliser.

OK, merci beaucoup !

Et derniere question subsidiaire si je veux faire un sizeof du nombre de lignes/adresse, comment procéder?

for (int i = 0; i < sizeof(broadcastAddress[][6]); i++)

ne semble pas fonctionner
ni

for (int i = 0; i < sizeof(broadcastAddress[]); i++)

Merci

Il suffit de prendre la taille d'une ligne

edit:
oups! erreur. Tu veux connaitre le nombre de lignes c'est:

for (int i = 0; i < sizeof broadcastAddress / sizeof broadcastAddress[0]; i++)

taille du tableau divisé par la taille d'une ligne

Merci beaucoup ca a l'air de bien fonctionner :slight_smile:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.