Et pour la seconde carte :
uint8_t broadcastAddress[] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
typedef struct struct_message {
String Type;
String Message;
} struct_message;
struct_message myData;
void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) {
Serial.print("\r\nLast Packet Send Status:\t");
Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Delivery Success" : "Delivery Fail");
if (status ==0){
success = "Delivery Success :)";
Serial.println("Youpi");
}
else{
success = "fail";
Serial.println("fail");
}
}
// callback function that will be executed when data is received
void OnDataRecv(const uint8_t * mac, const uint8_t *incomingData, int len) {
memcpy(&myData, incomingData, sizeof(myData));
Serial.print("Bytes received: ");
Serial.println(len);
Serial.print("Type: ");
Serial.println(myData.Type);
Serial.print("Message: ");
Serial.println(myData.Message);
Serial.println();
ActionIsAlreadyPerfomed = false;
snprintf(macStr, sizeof(macStr), "%02x:%02x:%02x:%02x:%02x:%02x",
mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
Serial.print("Received from: ");
Serial.println(macStr);
Serial.println("");
}
void setup() {
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
//MASTER NOW SETTING
File file2 = SPIFFS.open("/MyMaster.txt", "r");
if (!file2) {
Serial.println("Failed to open file for reading");
return;
}
uint16_t i = 0;
while(file2.available()){
//Serial.write(file.read());
MyMasterChar [i] = file2.read();
i++;
}
MyMasterChar [i] ='\0';
Serial.println(MyMasterChar);
file2.close();
MyMasterString = String(MyMasterChar);
String Code1 = MyMasterString.substring(0, 2);
String Code2 = MyMasterString.substring(3, 5);
String Code3 = MyMasterString.substring(6, 8);
String Code4 = MyMasterString.substring(9, 11);
String Code5 = MyMasterString.substring(12, 14);
String Code6 = MyMasterString.substring(15, 17);
/*byte Code1b = strtol(Code1.c_str(), 0, 16);
byte Code2b = strtol(Code2.c_str(), 0, 16);
byte Code3b = strtol(Code3.c_str(), 0, 16);
byte Code4b = strtol(Code4.c_str(), 0, 16);
byte Code5b = strtol(Code5.c_str(), 0, 16);
byte Code6b = strtol(Code6.c_str(), 0, 16);*/
broadcastAddress[0] = strtol(Code1.c_str(), 0, 16);
broadcastAddress[1] = strtol(Code2.c_str(), 0, 16);
broadcastAddress[2] = strtol(Code3.c_str(), 0, 16);
broadcastAddress[3] = strtol(Code4.c_str(), 0, 16);
broadcastAddress[4] = strtol(Code5.c_str(), 0, 16);
broadcastAddress[5] = strtol(Code6.c_str(), 0, 16);
//uint8_t SbroadcastAddress[] = {Code1b, Code2b, Code3b, Code4b, Code5b, Code6b};
//broadcastAddress[0] = SbroadcastAddress[0];
Serial.print("BroadcastAddress is");
Serial.print(broadcastAddress[0]);
Serial.print(broadcastAddress[1]);
Serial.print(broadcastAddress[2]);
Serial.print(broadcastAddress[3]);
Serial.print(broadcastAddress[4]);
Serial.println(broadcastAddress[5]);
// Init ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return;
}else{
Serial.println("initializing ESP-NOW DONE");
}
// Once ESPNow is successfully Init, we will register for Send CB to
// get the status of Trasnmitted packet
esp_now_register_send_cb(OnDataSent);
// Register peer
esp_now_peer_info_t peerInfo;
memcpy(peerInfo.peer_addr, broadcastAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
// Add peer
if (esp_now_add_peer(&peerInfo) != ESP_OK){
Serial.println("Failed to add peer");
return;
}
// Once ESPNow is successfully Init, we will register for recv CB to
// get recv packer info
esp_now_register_recv_cb(OnDataRecv);
}
Et je ne parviens pas a trouver pourquoi la variable TYPE passe sans problèmes et la variable MESSAGE non ...
Merci