Salve a tutti,
Ho un problema che a me sembra fin troppo banale, ma non ne sto saltando fuori se non evitando di incappare nel problema stesso.
Sto lavorando, come da titolo, con ESP-NOW su ESP-32; per leggibilità del codice ho fatto delle funzioni che manipolino appunto questa "interfaccia" in due file (main.h e main.cpp) quindi una funzione di inizializzazione e di aggiunta della peer, il problema è che se chiamo la funzione essa non è in grado di aggiungere la peer mentre con lo stesso codice messo nel setup funziona!
Allego i codici di seguito:
bool initESP_NOW(){ //dichiarata nel *.h e implementata nel *.cpp ma se lo faccio nel *.ino non cambia
//Set device as a Wi-Fi Station
WiFi.mode(WIFI_AP_STA);
esp_wifi_set_ps(WIFI_PS_NONE);
//Setto il canale
//Configurazione canale WiFi
int32_t channel = 1;//getWiFiChannel(WIFI_SSID);
esp_wifi_set_promiscuous(true);
esp_wifi_set_channel(channel, WIFI_SECOND_CHAN_NONE);
esp_wifi_set_promiscuous(false);
// Init ESP-NOW
if (esp_now_init() != ESP_OK) {
Serial.println("Error initializing ESP-NOW");
return false;
}
esp_now_register_send_cb(OnDataSent);
esp_now_peer_info_t peerInfo;
memcpy(peerInfo.peer_addr, broadcastAddress, 6);
peerInfo.channel = 0;
peerInfo.encrypt = false;
if (esp_now_add_peer(&peerInfo) != ESP_OK){
Serial.println("Failed to add peer");
return false;
}
//esp_now_register_recv_cb(OnDataRecv);
return true;
}
void setup() {
// Init Serial Monitor
initSerial(__FILE__);
initESP_NOW();
}
Grazie a chi mi potrà aiutare
Alan Masutti