WiFiManager: I am getting errors while compiling basic example.
Basic Infos
Hardware
WiFimanager Branch/Release: Master
Esp32:
Hardware: NodeMCUEsp32
Core Version: using latest master from git arduino-esp32
Description
Problem description"
I am getting errors while compiling basic example.
D:\Arduino\libraries\WiFiManager\WiFiManager.cpp: In member function 'void WiFiManager::WiFiEvent(arduino_event_id_t, system_event_info_t)':
D:\Arduino\libraries\WiFiManager\WiFiManager.cpp:3505:17: warning: comparison between 'enum arduino_event_id_t' and 'enum system_event_id_t' [-Wenum-compare]
if(event == SYSTEM_EVENT_STA_DISCONNECTED){
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
D:\Arduino\libraries\WiFiManager\WiFiManager.cpp:3522:20: warning: comparison between 'enum arduino_event_id_t' and 'enum system_event_id_t' [-Wenum-compare]
else if(event == SYSTEM_EVENT_SCAN_DONE){
^~~~~~~~~~~~~~~~~~~~~~
D:\Arduino\libraries\WiFiManager\WiFiManager.cpp: In member function 'void WiFiManager::WiFi_autoReconnect()':
D:\Arduino\libraries\WiFiManager\WiFiManager.cpp:3539:79: error: no matching function for call to 'WiFiClass::onEvent(std::_Bind_helper<false, void (WiFiManager::*)(arduino_event_id_t, system_event_info_t), WiFiManager*, const std::_Placeholder<1>&, const std::_Placeholder<2>&>::type)'
wm_event_id = WiFi.onEvent(std::bind(&WiFiManager::WiFiEvent,this,_1,_2));
^
In file included from D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFiSTA.h:28,
from D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFi.h:32,
from D:\Arduino\libraries\WiFiManager\WiFiManager.h:65,
from D:\Arduino\libraries\WiFiManager\WiFiManager.cpp:13:
D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFiGeneric.h:145:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventCb, arduino_event_id_t)'
wifi_event_id_t onEvent(WiFiEventCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
^~~~~~~
D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFiGeneric.h:145:21: note: no known conversion for argument 1 from 'std::_Bind_helper<false, void (WiFiManager::*)(arduino_event_id_t, system_event_info_t), WiFiManager*, const std::_Placeholder<1>&, const std::_Placeholder<2>&>::type' {aka 'std::_Bind<void (WiFiManager::*(WiFiManager*, std::_Placeholder<1>, std::_Placeholder<2>))(arduino_event_id_t, system_event_info_t)>'} to 'WiFiEventCb' {aka 'void (*)(arduino_event_id_t)'}
D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFiGeneric.h:146:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventFuncCb, arduino_event_id_t)'
wifi_event_id_t onEvent(WiFiEventFuncCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
^~~~~~~
D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFiGeneric.h:146:21: note: no known conversion for argument 1 from 'std::_Bind_helper<false, void (WiFiManager::*)(arduino_event_id_t, system_event_info_t), WiFiManager*, const std::_Placeholder<1>&, const std::_Placeholder<2>&>::type' {aka 'std::_Bind<void (WiFiManager::*(WiFiManager*, std::_Placeholder<1>, std::_Placeholder<2>))(arduino_event_id_t, system_event_info_t)>'} to 'WiFiEventFuncCb' {aka 'std::function<void(arduino_event_id_t, arduino_event_info_t)>'}
D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFiGeneric.h:147:21: note: candidate: 'wifi_event_id_t WiFiGenericClass::onEvent(WiFiEventSysCb, arduino_event_id_t)'
wifi_event_id_t onEvent(WiFiEventSysCb cbEvent, arduino_event_id_t event = ARDUINO_EVENT_MAX);
^~~~~~~
D:\Arduino\hardware\espressif\esp32\libraries\WiFi\src/WiFiGeneric.h:147:21: note: no known conversion for argument 1 from 'std::_Bind_helper<false, void (WiFiManager::*)(arduino_event_id_t, system_event_info_t), WiFiManager*, const std::_Placeholder<1>&, const std::_Placeholder<2>&>::type' {aka 'std::_Bind<void (WiFiManager::*(WiFiManager*, std::_Placeholder<1>, std::_Placeholder<2>))(arduino_event_id_t, system_event_info_t)>'} to 'WiFiEventSysCb' {aka 'void (*)(arduino_event_t*)'}
Multiple libraries were found for "WiFi.h"
Settings in IDE
Module: NodeMcuESP32
Sketch
#BEGIN
#include <WiFiManager.h> // https://github.com/tzapu/WiFiManager
void setup() {
WiFi.mode(WIFI_STA);
Serial.begin(115200);
//WiFiManager, Local intialization. Once its business is done, there is no need to keep it around
WiFiManager wm;
bool res;
res = wm.autoConnect("AutoConnectAP","password"); // password protected ap
if(!res) {
Serial.println("Failed to connect");
// ESP.restart();
}
else {
Serial.println("connected...yeey :)");
}
}
void loop() {
}
#END
The same example compiles ok with esp8266.
About this issue
- Original URL
- State: open
- Created 3 years ago
- Comments: 19
Using WiFi events,
Working on version 1.0.6
Get this on version 2.0.1
no matching function for call to 'WiFiClass::onEvent(void (&)(arduino_event_id_t, arduino_event_info_t), system_event_id_t)'
Do I just use 1.0.6 until fixed? or is there a different method to use wifi events?
For me, the fix was to revert to version 1.0.6 of the esp32 board package rather than trying to use 2.0.0.
Hi Gentleman, i have the same problem Os : MacOs 12.0.1 Arduino IDE : 1.8.16 ESP Library 2.0.0 (test but niet) ESP Library : DFRobot (test but niet) ESP : Firebeetle ESP32-E Error : iFiManager.cpp: In member function ‘void WiFiManager::WiFiEvent(arduino_event_id_t, system_event_info_t)’: /Users/cgironde/Documents/Arduino/libraries/WiFiManager/WiFiManager.cpp:3505:17: warning: comparison between ‘enum arduino_event_id_t’ and ‘enum system_event_id_t’ [-Wenum-compare] if(event == SYSTEM_EVENT_STA_DISCONNECTED){ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
King Regards