vibram
January 25, 2021, 4:54pm
1
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
kamill
January 25, 2021, 5:07pm
2
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] = {
vibram
January 25, 2021, 5:28pm
3
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?
kamill
January 25, 2021, 5:40pm
4
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.
vibram
January 25, 2021, 7:16pm
6
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
kamill
January 25, 2021, 7:22pm
7
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
vibram
January 26, 2021, 7:05am
8
Merci beaucoup ca a l'air de bien fonctionner
system
Closed
May 26, 2021, 7:05am
9
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.