diff --git a/built-in-webpages/setup/app.js b/built-in-webpages/setup/app.js
index adb42314..0e88fc88 100644
--- a/built-in-webpages/setup/app.js
+++ b/built-in-webpages/setup/app.js
@@ -579,6 +579,7 @@ $('svg-no-eye').innerHTML = svgNoEye;
$('svg-scan').innerHTML = svgScan;
$('svg-connect').innerHTML = svgConnect;
$('svg-save').innerHTML = svgSave;
+$('svg-save2').innerHTML = svgSave;
$('svg-restart').innerHTML = svgRestart;
$('img-logo').innerHTML = svgLogo;
diff --git a/built-in-webpages/setup/setup.htm b/built-in-webpages/setup/setup.htm
index aea135e6..9f481cbb 100644
--- a/built-in-webpages/setup/setup.htm
+++ b/built-in-webpages/setup/setup.htm
@@ -97,7 +97,7 @@
Connect to WiFi
Connect to SSID
-
+
Save configuration
diff --git a/examples/customHTML/.vscode/arduino.json b/examples/customHTML/.vscode/arduino.json
index f0d763d5..0ebcfbc7 100644
--- a/examples/customHTML/.vscode/arduino.json
+++ b/examples/customHTML/.vscode/arduino.json
@@ -1,6 +1,6 @@
{
"board": "esp32:esp32:esp32s3",
- "port": "COM3",
+ "port": "COM23",
"sketch": "customHTML.ino",
"configuration": "JTAGAdapter=default,PSRAM=disabled,FlashMode=qio,FlashSize=4M,LoopCore=1,EventsCore=1,USBMode=hwcdc,CDCOnBoot=default,MSCOnBoot=default,DFUOnBoot=default,UploadMode=default,PartitionScheme=default,CPUFreq=240,UploadSpeed=921600,DebugLevel=none,EraseFlash=none"
}
\ No newline at end of file
diff --git a/examples/customHTML/.vscode/c_cpp_properties.json b/examples/customHTML/.vscode/c_cpp_properties.json
index b081448d..5735fd3b 100644
--- a/examples/customHTML/.vscode/c_cpp_properties.json
+++ b/examples/customHTML/.vscode/c_cpp_properties.json
@@ -3,7 +3,7 @@
"configurations": [
{
"name": "Arduino",
- "compilerPath": "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\bin\\xtensa-esp32s3-elf-g++",
+ "compilerPath": "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\bin\\xtensa-esp32s3-elf-g++",
"compilerArgs": [
"-mlongcalls",
"-ffunction-sections",
@@ -26,217 +26,217 @@
],
"intelliSenseMode": "gcc-x64",
"includePath": [
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\newlib\\platform_include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions\\freertos",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\port\\xtensa\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3\\private_include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\heap\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\log\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps\\sntp",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\lwip\\src\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include\\arch",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\soc\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\hal\\esp32s3\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\hal\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\hal\\platform_port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rom\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rom\\include\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rom\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_common\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_system\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\soc",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\public_compat",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\xtensa\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\xtensa\\esp32s3\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\driver\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\driver\\esp32s3\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_pm\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_ringbuf\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\efuse\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\efuse\\esp32s3\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\vfs\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_wifi\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_event\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_netif\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_eth\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\tcpip_adapter\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_phy\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_phy\\esp32s3\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_ipc\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\app_trace\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_timer\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mbedtls\\port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mbedtls\\mbedtls\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mbedtls\\esp_crt_bundle\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\app_update\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\spi_flash\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bootloader_support\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\nvs_flash\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\pthread\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\xtensa",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espcoredump\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espcoredump\\include\\port\\xtensa",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\esp_supplicant\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\ieee802154\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\console",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\asio\\asio\\asio\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\asio\\port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\osi\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\include\\esp32c3\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\api\\include\\api",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\blufi\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\host\\bluedroid\\api\\include\\api",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\tinycrypt\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\storage",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\btc\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\common\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\client\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\server\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\core\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\models\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\cbor\\port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\unity\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\unity\\unity\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\cmock\\CMock\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\coap\\port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\coap\\libcoap\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\nghttp\\port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\nghttp\\nghttp2\\lib\\includes",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-tls",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-tls\\esp-tls-crypto",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_adc_cal\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hid\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\tcp_transport\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_http_client\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_http_server\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_https_ota\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_https_server\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_lcd\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_lcd\\interface",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protobuf-c\\protobuf-c",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\common",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\security",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\transports",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mdns\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_local_ctrl\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\sdmmc\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_serial_slave_link\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_websocket_client\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\expat\\expat\\expat\\lib",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\expat\\port\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wear_levelling\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fatfs\\diskio",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fatfs\\vfs",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fatfs\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freemodbus\\freemodbus\\common\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\idf_test\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\idf_test\\include\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\jsmn\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json\\cJSON",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\libsodium\\libsodium\\src\\libsodium\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\libsodium\\port_include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mqtt\\esp-mqtt\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\openssl\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\perfmon\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\spiffs\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\usb\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\ulp\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wifi_provisioning\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\rmaker_common\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_diagnostics\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\rtc_store\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_insights\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json_generator\\upstream",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_schedule\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp_secure_cert_mgr\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rainmaker\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\gpio_button\\button\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\qrcode\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\ws2812_led",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include\\freertos",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\tinyusb\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_littlefs\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\tool",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\typedef",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\image",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\math",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\nn",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\layer",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\detect",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\model_zoo",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp32-camera\\driver\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp32-camera\\conversions\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dotprod\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\mem\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\hann\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_harris\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_nuttall\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\nuttall\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\flat_top\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\iir\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fir\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\add\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sub\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mul\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\addc\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mulc\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sqrt\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fft\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dct\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\conv\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\common\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf_imu13states\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fb_gfx\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\qio_qspi\\include",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\cores\\esp32",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\variants\\esp32s3",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\FS\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\LittleFS\\src",
- "C:\\Users\\cotes\\OneDrive\\Documenti\\Arduino\\libraries\\async-esp-fs-webserver\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\DNSServer\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\WiFi\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\Update\\src",
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\ESPmDNS\\src",
- "C:\\Users\\cotes\\OneDrive\\Documenti\\Arduino\\libraries\\ArduinoJson\\src",
- "c:\\users\\cotes\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0",
- "c:\\users\\cotes\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\xtensa-esp32s3-elf",
- "c:\\users\\cotes\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\backward",
- "c:\\users\\cotes\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include",
- "c:\\users\\cotes\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include-fixed",
- "c:\\users\\cotes\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\sys-include",
- "c:\\users\\cotes\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include"
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\newlib\\platform_include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions\\freertos",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\port\\xtensa\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include\\esp_additions",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\include\\soc\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hw_support\\port\\esp32s3\\private_include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\heap\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\log\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\include\\apps\\sntp",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\lwip\\src\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\lwip\\port\\esp32\\include\\arch",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\soc\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\soc\\esp32s3\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\hal\\esp32s3\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\hal\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\hal\\platform_port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rom\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rom\\include\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rom\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_common\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_system\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\soc",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_system\\port\\public_compat",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\xtensa\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\xtensa\\esp32s3\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\driver\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\driver\\esp32s3\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_pm\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_ringbuf\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\efuse\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\efuse\\esp32s3\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\vfs\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_wifi\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_event\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_netif\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_eth\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\tcpip_adapter\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_phy\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_phy\\esp32s3\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_ipc\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\app_trace\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_timer\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mbedtls\\port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mbedtls\\mbedtls\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mbedtls\\esp_crt_bundle\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\app_update\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\spi_flash\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bootloader_support\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\nvs_flash\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\pthread\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\xtensa",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_gdbstub\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espcoredump\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espcoredump\\include\\port\\xtensa",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wpa_supplicant\\esp_supplicant\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\ieee802154\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\console",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\asio\\asio\\asio\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\asio\\port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\osi\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\include\\esp32c3\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\api\\include\\api",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\blufi\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\common\\btc\\profile\\esp\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\host\\bluedroid\\api\\include\\api",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_common\\tinycrypt\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_core\\storage",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\btc\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\common\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\client\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\mesh_models\\server\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\core\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api\\models\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\bt\\esp_ble_mesh\\api",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\cbor\\port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\unity\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\unity\\unity\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\cmock\\CMock\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\coap\\port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\coap\\libcoap\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\nghttp\\port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\nghttp\\nghttp2\\lib\\includes",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-tls",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-tls\\esp-tls-crypto",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_adc_cal\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_hid\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\tcp_transport\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_http_client\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_http_server\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_https_ota\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_https_server\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_lcd\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_lcd\\interface",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protobuf-c\\protobuf-c",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\common",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\security",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\protocomm\\include\\transports",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mdns\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_local_ctrl\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\sdmmc\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_serial_slave_link\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_websocket_client\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\expat\\expat\\expat\\lib",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\expat\\port\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wear_levelling\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fatfs\\diskio",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fatfs\\vfs",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fatfs\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freemodbus\\freemodbus\\common\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\idf_test\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\idf_test\\include\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\jsmn\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json\\cJSON",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\libsodium\\libsodium\\src\\libsodium\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\libsodium\\port_include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\mqtt\\esp-mqtt\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\openssl\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\perfmon\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\spiffs\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\usb\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\ulp\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\wifi_provisioning\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\rmaker_common\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_diagnostics\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\rtc_store\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_insights\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json_parser\\upstream",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\json_generator\\upstream",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_schedule\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp_secure_cert_mgr\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_rainmaker\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\gpio_button\\button\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\qrcode\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\ws2812_led",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\freertos\\include\\freertos",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\tinyusb\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\arduino_tinyusb\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp_littlefs\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\tool",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\typedef",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\image",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\math",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\nn",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\layer",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\detect",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp-dl\\include\\model_zoo",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp32-camera\\driver\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\esp32-camera\\conversions\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dotprod\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\support\\mem\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\hann\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_harris\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\blackman_nuttall\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\nuttall\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\windows\\flat_top\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\iir\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fir\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\add\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sub\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mul\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\addc\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\mulc\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\math\\sqrt\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\matrix\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\fft\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\dct\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\conv\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\common\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\espressif__esp-dsp\\modules\\kalman\\ekf_imu13states\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\include\\fb_gfx\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\tools\\sdk\\esp32s3\\qio_qspi\\include",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\cores\\esp32",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\variants\\esp32s3",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\FS\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\LittleFS\\src",
+ "C:\\Users\\BAN_TAG\\Documents\\Arduino\\libraries\\async-esp-fs-webserver\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\DNSServer\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\WiFi\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\Update\\src",
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\libraries\\ESPmDNS\\src",
+ "C:\\Users\\BAN_TAG\\Documents\\Arduino\\libraries\\ArduinoJson\\src",
+ "c:\\users\\ban_tag\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0",
+ "c:\\users\\ban_tag\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\xtensa-esp32s3-elf",
+ "c:\\users\\ban_tag\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include\\c++\\8.4.0\\backward",
+ "c:\\users\\ban_tag\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include",
+ "c:\\users\\ban_tag\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\lib\\gcc\\xtensa-esp32s3-elf\\8.4.0\\include-fixed",
+ "c:\\users\\ban_tag\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\sys-include",
+ "c:\\users\\ban_tag\\appdata\\local\\arduino15\\packages\\esp32\\tools\\xtensa-esp32s3-elf-gcc\\esp-2021r2-patch5-8.4.0\\xtensa-esp32s3-elf\\include"
],
"forcedInclude": [
- "C:\\Users\\cotes\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\cores\\esp32\\Arduino.h"
+ "C:\\Users\\BAN_TAG\\AppData\\Local\\Arduino15\\packages\\esp32\\hardware\\esp32\\2.0.14\\cores\\esp32\\Arduino.h"
],
"cStandard": "c11",
"cppStandard": "c++11",
diff --git a/examples/customHTML/.vscode/settings.json b/examples/customHTML/.vscode/settings.json
index 02e74bf4..0f22c97e 100644
--- a/examples/customHTML/.vscode/settings.json
+++ b/examples/customHTML/.vscode/settings.json
@@ -1,6 +1,7 @@
{
"files.associations": {
"*.tcc": "cpp",
- "ostream": "cpp"
+ "ostream": "cpp",
+ "new": "cpp"
}
}
\ No newline at end of file
diff --git a/src/AsyncFsWebServer.cpp b/src/AsyncFsWebServer.cpp
index 33bc354d..4d14d49b 100644
--- a/src/AsyncFsWebServer.cpp
+++ b/src/AsyncFsWebServer.cpp
@@ -77,7 +77,6 @@ bool AsyncFsWebServer::init(AwsEventHandler wsHandle) {
return true;
}
-
void AsyncFsWebServer::printFileList(fs::FS &fs, const char * dirname, uint8_t levels) {
Serial.printf("\nListing directory: %s\n", dirname);
File root = fs.open(dirname, "r");
@@ -122,7 +121,7 @@ void AsyncFsWebServer::enableFsCodeEditor() {
}
bool AsyncFsWebServer::startCaptivePortal(const char* ssid, const char* pass, const char* redirectTargetURL) {
-
+
if (! WiFi.softAP(ssid, pass)) {
log_error("Captive portal failed to start: WiFi.softAP failed!");
return false;
@@ -196,7 +195,6 @@ void AsyncFsWebServer::setTaskWdt(uint32_t timeout) {
#endif
}
-
void AsyncFsWebServer::setAuthentication(const char* user, const char* pswd) {
m_pageUser = (char*) malloc(strlen(user)*sizeof(char));
m_pagePswd = (char*) malloc(strlen(pswd)*sizeof(char));
@@ -212,7 +210,7 @@ void AsyncFsWebServer::handleSetup(AsyncWebServerRequest *request) {
// AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", (uint8_t*)SETUP_HTML, SETUP_HTML_SIZE);
// Changed array name to match SEGGER Bin2C output
- AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", (uint8_t*)_acall_htm, sizeof(_acall_htm));
+ AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", (uint8_t*)_acall_htm, sizeof(_acall_htm));
response->addHeader("Content-Encoding", "gzip");
response->addHeader("X-Config-File", CONFIG_FOLDER CONFIG_FILE);
request->send(response);
@@ -258,117 +256,6 @@ void AsyncFsWebServer::clearConfig(AsyncWebServerRequest *request) {
request->send(200, "text/plain", "Clear config not done");
}
-
-void AsyncFsWebServer::setLogoBase64(const char* logo, const char* width, const char* height, bool overwrite) {
- char filename[32] = {CONFIG_FOLDER};
- strcat(filename, "/img-logo-");
- strcat(filename, width);
- strcat(filename, "_");
- strcat(filename, height);
- strcat(filename, ".txt");
-
- optionToFile(filename, logo, overwrite);
- addOption("img-logo", filename);
-}
-
-bool AsyncFsWebServer::optionToFile(const char* filename, const char* str, bool overWrite) {
- // Check if file is already saved
- if (m_filesystem->exists(filename) && !overWrite) {
- return true;
- }
- // Create or overwrite option file
- else {
- File file = m_filesystem->open(filename, "w");
- if (file) {
- #if defined(ESP8266)
- String _str = str;
- file.print(_str);
- #else
- file.print(str);
- #endif
- file.close();
- log_debug("File %s saved", filename);
- return true;
- }
- else {
- log_debug("Error writing file %s", filename);
- }
- }
- return false;
-}
-
-void AsyncFsWebServer::addSource(const char* source, const char* tag, bool overWrite) {
- String path = CONFIG_FOLDER;
- path += "/";
- path += tag;
-
- if (strstr(tag, "html") != NULL)
- path += ".htm";
- else if (strstr(tag, "css") != NULL)
- path += ".css";
- else if (strstr(tag, "javascript") != NULL)
- path += ".js";
-
- optionToFile(path.c_str(), source, overWrite);
- addOption(tag, path.c_str(), false);
-}
-
-void AsyncFsWebServer::addHTML(const char* html, const char* id, bool overWrite) {
- String _id = "raw-html-";
- _id += id;
- addSource(html, _id.c_str(), overWrite);
-}
-
-void AsyncFsWebServer::addCSS(const char* css, const char* id, bool overWrite) {
- String _id = "raw-css-" ;
- _id += id;
- addSource(css, _id.c_str(), overWrite);
-}
-
-void AsyncFsWebServer::addJavascript(const char* script, const char* id, bool overWrite) {
- String _id = "raw-javascript-" ;
- _id += id;
- addSource(script, _id.c_str(), overWrite);
-}
-
-void AsyncFsWebServer::addDropdownList(const char *label, const char** array, size_t size) {
- File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "r");
- int sz = file.size() * 1.33;
- int docSize = max(sz, 2048);
- DynamicJsonDocument doc((size_t)docSize);
- if (file) {
- // If file is present, load actual configuration
- DeserializationError error = deserializeJson(doc, file);
- if (error) {
- log_error("Failed to deserialize file, may be corrupted\n %s\n", error.c_str());
- file.close();
- return;
- }
- file.close();
- }
- else {
- log_error("File not found, will be created new configuration file");
- }
- numOptions++ ;
-
- // If key is present in json, we don't need to create it.
- if (doc.containsKey(label))
- return;
-
- JsonObject obj = doc.createNestedObject(label);
- obj["selected"] = array[0]; // first element selected as default
- JsonArray arr = obj.createNestedArray("values");
- for (unsigned int i=0; iopen(CONFIG_FOLDER CONFIG_FILE, "w");
- if (serializeJsonPretty(doc, file) == 0) {
- log_error("Failed to write to file");
- }
- file.close();
-}
-
void AsyncFsWebServer::handleScanNetworks(AsyncWebServerRequest *request) {
setTaskWdt(15000); // Increase task WDT timeout
log_info("Start scan WiFi networks");
@@ -484,8 +371,8 @@ void AsyncFsWebServer::doWifiConnection(AsyncWebServerRequest *request) {
/*
* If we are already connected and a new SSID is needed, once the ESP will join the new network,
- * /setup web page will no longer be able to communicate with ESP and therefore
- * it will not be possible to inform the user about the new IP address.
+ * /setup web page will no longer be able to communicate with ESP and therefore
+ * it will not be possible to inform the user about the new IP address.
* Inform and prompt the user for a confirmation (if OK, the next request will force disconnect variable)
*/
if (WiFi.status() == WL_CONNECTED && !newSSID) {
@@ -550,12 +437,12 @@ void AsyncFsWebServer::doWifiConnection(AsyncWebServerRequest *request) {
WiFi.mode(WIFI_AP_STA);
// Manual connection setup
- if (config) {
+ if (config) {
log_info("Manual config WiFi connection with IP: %s", local_ip.toString().c_str());
- if (!WiFi.config(local_ip, gateway, subnet))
+ if (!WiFi.config(local_ip, gateway, subnet))
log_error("STA Failed to configure");
}
-
+
Serial.printf("\n\n\nConnecting to %s\n", ssid.c_str());
WiFi.begin(ssid.c_str(), pass.c_str());
@@ -593,7 +480,7 @@ void AsyncFsWebServer::doWifiConnection(AsyncWebServerRequest *request) {
serverLoc += "/setup";
char resp[256];
- snprintf(resp, sizeof(resp),
+ snprintf(resp, sizeof(resp),
"ESP successfully connected to %s WiFi network.
Restart ESP now?"
"
Note: disconnect your browser from ESP AP and then reload %s",
ssid.c_str(), serverLoc.c_str(), serverLoc.c_str()
@@ -708,7 +595,7 @@ IPAddress AsyncFsWebServer::startWiFi(uint32_t timeout, CallbackF fn ) {
subnet.fromString(doc["subnet"].as());
local_ip.fromString(doc["ip_address"].as());
log_info("Manual config WiFi connection with IP: %s\n", local_ip.toString().c_str());
- if (!WiFi.config(local_ip, gateway, subnet))
+ if (!WiFi.config(local_ip, gateway, subnet))
log_error("STA Failed to configure");
delay(100);
}
@@ -760,8 +647,8 @@ IPAddress AsyncFsWebServer::startWiFi(uint32_t timeout, CallbackF fn ) {
}
IPAddress AsyncFsWebServer::startWiFi(uint32_t timeout, const char *apSSID, const char *apPsw, CallbackF fn) {
- IPAddress ip (0, 0, 0, 0);
- ip = startWiFi(timeout, fn);
+ IPAddress ip (0, 0, 0, 0);
+ ip = startWiFi(timeout, fn);
if (!ip) {
// No connection, start AP and then captive portal
startCaptivePortal(apSSID, apPsw, "/setup");
@@ -770,6 +657,7 @@ IPAddress AsyncFsWebServer::startWiFi(uint32_t timeout, const char *apSSID, cons
return ip;
}
+
// edit page, in usefull in some situation, but if you need to provide only a web interface, you can disable
#ifdef INCLUDE_EDIT_HTM
diff --git a/src/AsyncFsWebServer.h b/src/AsyncFsWebServer.h
index 25b3ad00..2ba3d557 100644
--- a/src/AsyncFsWebServer.h
+++ b/src/AsyncFsWebServer.h
@@ -33,6 +33,7 @@
#define LOG_LEVEL 2 // (0 disable, 1 error, 2 info, 3 debug)
#include "SerialLog.h"
#include "CaptivePortal.hpp"
+#include "SetupConfig.hpp"
#define MIN_F -3.4028235E+38
#define MAX_F 3.4028235E+38
@@ -108,12 +109,17 @@ class AsyncFsWebServer : public AsyncWebServer
FsInfoCallbackF getFsInfo = nullptr;
public:
- AsyncFsWebServer(uint16_t port, fs::FS &fs, const char* hostname = "") : AsyncWebServer(port) {
+ SetupConfigurator setup;
+
+ AsyncFsWebServer(uint16_t port, fs::FS &fs, const char* hostname = "") :
+ AsyncWebServer(port),
+ m_filesystem(&fs),
+ setup(&fs),
+ m_port(port)
+ {
m_ws = new AsyncWebSocket("/ws");
- m_filesystem = &fs;
if (strlen(hostname))
m_host = hostname;
- m_port = port;
}
~AsyncFsWebServer() {
@@ -122,22 +128,12 @@ class AsyncFsWebServer : public AsyncWebServer
if(_catchAllHandler) delete _catchAllHandler;
}
- const char* getVersion();
-
#ifdef ESP32
inline TaskHandle_t getTaskHandler() {
return xTaskGetCurrentTaskHandle();
}
#endif
- // AsyncWebServer* getServer() { return m_server;}
- AsyncWebSocket* getWebSocket() { return m_ws;}
-
- // Broadcast a websocket message to all clients connected
- void wsBroadcast(const char * buffer) {
- m_ws->textAll(buffer);
- }
-
/*
Start webserver aand bind a websocket event handler (optional)
*/
@@ -147,6 +143,7 @@ class AsyncFsWebServer : public AsyncWebServer
Enable the built-in ACE web file editor
*/
void enableFsCodeEditor();
+
/*
Enable authenticate for /setup webpage
*/
@@ -157,40 +154,45 @@ class AsyncFsWebServer : public AsyncWebServer
*/
void printFileList(fs::FS &fs, const char * dirname, uint8_t levels);
+ /*
+ Send a default "OK" reply to client
+ */
+ void sendOK(AsyncWebServerRequest *request);
/*
- * Get reference to current config.json file
+ Start WiFi connection, if fails to in AP mode
*/
- File getConfigFile(const char* mode) {
- File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, mode);
- return file;
- }
+ IPAddress startWiFi(uint32_t timeout, const char *apSSID, const char *apPsw, CallbackF fn=nullptr);
/*
- * Get complete path of config.json file
+ Start WiFi connection, NO AP mode on fail
*/
- const char* getConfiFileName() {
- return CONFIG_FOLDER CONFIG_FILE;
- }
+ IPAddress startWiFi(uint32_t timeout, CallbackF fn=nullptr ) ;
/*
- * Set current firmware version (shown in /setup webpage)
+ * Redirect to captive portal if we got a request for another domain.
*/
- void setFirmwareVersion(char* version) {
- strlcpy(m_version, version, sizeof(m_version));
- }
+ bool startCaptivePortal(const char* ssid, const char* pass, const char* redirectTargetURL);
+
/*
- * Set /setup webpage title
+ * get instance of current websocket handler
*/
- void setSetupPageTitle(const char* title) {
- addOption("name-logo", title);
+ AsyncWebSocket* getWebSocket() { return m_ws;}
+
+ /*
+ * Broadcast a websocket message to all clients connected
+ */
+ void wsBroadcast(const char * buffer) {
+ m_ws->textAll(buffer);
}
/*
- * Set /setup log (base64 string)
+ * Need to be run in loop to handle DNS requests
*/
- void setLogoBase64(const char* logo, const char* width = "128", const char* height = "128", bool overwrite = false) ;
+ void updateDNS() {
+ m_dnsServer->processNextRequest();
+ }
/*
* Set callback function to provide updated FS info to library
@@ -202,152 +204,64 @@ class AsyncFsWebServer : public AsyncWebServer
}
/*
- Send a default "OK" reply to client
+ * Get reference to current config.json file
*/
- void sendOK(AsyncWebServerRequest *request);
+ File getConfigFile(const char* mode) {
+ File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, mode);
+ return file;
+ }
/*
- Start WiFi connection, if fails to in AP mode
+ * Get complete path of config.json file
*/
- IPAddress startWiFi(uint32_t timeout, const char *apSSID, const char *apPsw, CallbackF fn=nullptr);
+ const char* getConfiFileName() {
+ return CONFIG_FOLDER CONFIG_FILE;
+ }
/*
- Start WiFi connection, NO AP mode on fail
+ * Set current firmware version (shown in /setup webpage)
*/
- IPAddress startWiFi(uint32_t timeout, CallbackF fn=nullptr ) ;
+ void setFirmwareVersion(char* version) {
+ strlcpy(m_version, version, sizeof(m_version));
+ }
/*
- * Redirect to captive portal if we got a request for another domain.
+ * Set current library version
*/
- bool startCaptivePortal(const char* ssid, const char* pass, const char* redirectTargetURL);
+ const char* getVersion();
/*
- Need to be run in loop to handle DNS requests
+ * Set /setup webpage title
*/
- void updateDNS() {
- m_dnsServer->processNextRequest();
+ void setSetupPageTitle(const char* title) {
+ setup.addOption("name-logo", title);
}
- /*
- In order to keep config.json file small and clean, custom HTML, CSS and Javascript
- will be saved as file. The related option will contain the path to this file
- */
- bool optionToFile(const char* filename, const char* str, bool overWrite);
-
- /*
- Add an option which contain "raw" HTML code to be injected in /setup page
- Th HTML code will be written in a file with named as option id
- */
- void addHTML(const char* html, const char* id, bool overWrite = false) ;
- /*
- Add an option which contain "raw" CSS style to be injected in /setup page
- Th CSS code will be written in a file with named as option raw-css.css
- */
- void addCSS(const char* css, const char* id, bool overWrite = false);
- /*
- Add an option which contain "raw" JS script to be injected in /setup page
- Th JS code will be written in a file with named as option raw-javascript.js
- */
- void addJavascript(const char* script, const char* id, bool overWrite = false) ;
- /*
- Add a new option box with custom label
- */
- void addDropdownList(const char *label, const char** array, size_t size);
- /*
- Add a new option box with custom label
- */
- inline void addOptionBox(const char* boxTitle) {
- addOption("param-box", boxTitle, false);
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////// BACKWARD COMPATIBILITY ONLY /////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////////////////////////
+ bool optionToFile(const char* f, const char* id, bool ow) {return setup.optionToFile(f, id, ow);}
+ void addHTML(const char* h, const char* id, bool ow = false) {setup.addHTML(h, id, ow);}
+ void addCSS(const char* c, const char* id, bool ow = false){setup.addCSS(c, id, ow);}
+ void addJavascript(const char* s, const char* id, bool ow = false) {setup.addJavascript(s, id, ow);}
+ void addDropdownList(const char *l, const char** a, size_t size){setup.addDropdownList(l, a, size);}
+ void addOptionBox(const char* title) { setup.addOption("param-box", title); }
+ void setLogoBase64(const char* logo, const char* w = "128", const char* h = "128", bool ow = false) {
+ setup.setLogoBase64(logo, w, h, ow);
}
- /*
- Add custom option to config webpage (float values)
- */
template
- inline void addOption(const char *label, T val, double d_min, double d_max, double step) {
- addOption(label, val, false, d_min, d_max, step);
+ void addOption(const char *lbl, T val, double min, double max, double st){
+ setup.addOption(lbl, val, false, min, max, st);
}
- /*
- Add custom option to config webpage (type of parameter will be deduced from variable itself)
- */
template
- inline void addOption(const char *label, T val, bool hidden = false,
- double d_min = MIN_F, double d_max = MAX_F, double step = 1.0) {
- File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "r");
- int sz = file.size() * 1.33;
- int docSize = max(sz, 2048);
- DynamicJsonDocument doc((size_t)docSize);
- if (file) {
- // If file is present, load actual configuration
- DeserializationError error = deserializeJson(doc, file);
- if (error) {
- log_error("Failed to deserialize file, may be corrupted\n %s", error.c_str());
- file.close();
- return;
- }
- file.close();
- }
- else
- log_error("File not found, will be created new configuration file");
-
- numOptions++ ;
- String key = label;
- if (hidden)
- key += "-hidden";
- // Univoque key name
- if (key.equals("param-box"))
- key += numOptions ;
- if (key.equals("raw-javascript"))
- key += numOptions ;
-
- // If key is present in json, we don't need to create it.
- if (doc.containsKey(key.c_str()))
- return;
-
- // if min, max, step != from default, treat this as object in order to set other properties
- if (d_min != MIN_F || d_max != MAX_F || step != 1.0) {
- JsonObject obj = doc.createNestedObject(key);
- obj["value"] = static_cast(val);
- obj["min"] = d_min;
- obj["max"] = d_max;
- obj["step"] = step;
- }
- else {
- doc[key] = static_cast(val);
- }
-
- file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "w");
- if (serializeJsonPretty(doc, file) == 0)
- log_error("Failed to write to file");
- file.close();
+ void addOption(const char *lbl, T val, bool hd = false, double min = MIN_F,
+ double max = MAX_F, double st = 1.0) {
+ setup.addOption(lbl, val, hd, min, max, st);
}
- /*
- Get current value for a specific custom option (true on success)
- */
template
- inline bool getOptionValue(const char *label, T &var) {
- File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "r");
- DynamicJsonDocument doc(file.size() * 1.33);
- if (file) {
- DeserializationError error = deserializeJson(doc, file);
- if (error) {
- log_error("Failed to deserialize file, may be corrupted\n %s\n", error.c_str());
- file.close();
- return false;
- }
- file.close();
- }
- else
- return false;
-
- if (doc[label]["value"])
- var = doc[label]["value"].as();
- else if (doc[label]["selected"])
- var = doc[label]["selected"].as();
- else
- var = doc[label].as();
- return true;
- }
+ bool getOptionValue(const char *lbl, T &var) { return setup.getOptionValue(lbl, var);}
+ /////////////////////////////////////////////////////////////////////////////////////////////////
};
diff --git a/src/SetupConfig.hpp b/src/SetupConfig.hpp
new file mode 100644
index 00000000..36a5c4c6
--- /dev/null
+++ b/src/SetupConfig.hpp
@@ -0,0 +1,239 @@
+#ifndef CONFIGURATOR_HPP
+#define CONFIGURATOR_HPP
+#include
+#include
+#include "AsyncFsWebServer.h"
+
+#define MIN_F -3.4028235E+38
+#define MAX_F 3.4028235E+38
+
+class SetupConfigurator
+{
+ private:
+ fs::FS* m_filesystem = nullptr;
+ uint8_t numOptions = 0;
+
+ public:
+ SetupConfigurator(fs::FS *fs) {
+ m_filesystem = fs;
+ }
+
+ void setLogoBase64(const char* logo, const char* width, const char* height, bool overwrite) {
+ char filename[32] = {CONFIG_FOLDER};
+ strcat(filename, "/img-logo-");
+ strcat(filename, width);
+ strcat(filename, "_");
+ strcat(filename, height);
+ strcat(filename, ".txt");
+
+ optionToFile(filename, logo, overwrite);
+ addOption("img-logo", filename);
+ }
+
+ bool optionToFile(const char* filename, const char* str, bool overWrite) {
+ // Check if file is already saved
+ if (m_filesystem->exists(filename) && !overWrite) {
+ return true;
+ }
+ // Create or overwrite option file
+ else {
+ File file = m_filesystem->open(filename, "w");
+ if (file) {
+ #if defined(ESP8266)
+ String _str = str;
+ file.print(_str);
+ #else
+ file.print(str);
+ #endif
+ file.close();
+ log_debug("File %s saved", filename);
+ return true;
+ }
+ else {
+ log_debug("Error writing file %s", filename);
+ }
+ }
+ return false;
+ }
+
+ void addSource(const char* source, const char* tag, bool overWrite) {
+ String path = CONFIG_FOLDER;
+ path += "/";
+ path += tag;
+
+ if (strstr(tag, "html") != NULL)
+ path += ".htm";
+ else if (strstr(tag, "css") != NULL)
+ path += ".css";
+ else if (strstr(tag, "javascript") != NULL)
+ path += ".js";
+
+ optionToFile(path.c_str(), source, overWrite);
+ addOption(tag, path.c_str(), false);
+ }
+
+ void addHTML(const char* html, const char* id, bool overWrite) {
+ String _id = "raw-html-";
+ _id += id;
+ addSource(html, _id.c_str(), overWrite);
+ }
+
+ void addCSS(const char* css, const char* id, bool overWrite) {
+ String _id = "raw-css-" ;
+ _id += id;
+ addSource(css, _id.c_str(), overWrite);
+ }
+
+ void addJavascript(const char* script, const char* id, bool overWrite) {
+ String _id = "raw-javascript-" ;
+ _id += id;
+ addSource(script, _id.c_str(), overWrite);
+ }
+
+
+ /*
+ Add a new dropdown input element
+ */
+ void addDropdownList(const char *label, const char** array, size_t size) {
+ File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "r");
+ int sz = file.size() * 1.33;
+ int docSize = max(sz, 2048);
+ DynamicJsonDocument doc((size_t)docSize);
+ if (file) {
+ // If file is present, load actual configuration
+ DeserializationError error = deserializeJson(doc, file);
+ if (error) {
+ log_error("Failed to deserialize file, may be corrupted\n %s\n", error.c_str());
+ file.close();
+ return;
+ }
+ file.close();
+ }
+ else {
+ log_error("File not found, will be created new configuration file");
+ }
+ numOptions++ ;
+
+ // If key is present in json, we don't need to create it.
+ if (doc.containsKey(label))
+ return;
+
+ JsonObject obj = doc.createNestedObject(label);
+ obj["selected"] = array[0]; // first element selected as default
+ JsonArray arr = obj.createNestedArray("values");
+ for (unsigned int i=0; iopen(CONFIG_FOLDER CONFIG_FILE, "w");
+ if (serializeJsonPretty(doc, file) == 0) {
+ log_error("Failed to write to file");
+ }
+ file.close();
+ }
+
+ /*
+ Add a new option box with custom label
+ */
+ void addOptionBox(const char* boxTitle) {
+ addOption("param-box", boxTitle, false);
+ }
+
+ /*
+ Add custom option to config webpage (float values)
+ */
+ template
+ void addOption(const char *label, T val, double d_min, double d_max, double step) {
+ addOption(label, val, false, d_min, d_max, step);
+ }
+
+ /*
+ Add custom option to config webpage (type of parameter will be deduced from variable itself)
+ */
+ /*
+ Add custom option to config webpage (type of parameter will be deduced from variable itself)
+ */
+ template
+ void addOption(const char *label, T val, bool hidden = false,
+ double d_min = MIN_F, double d_max = MAX_F, double step = 1.0)
+ {
+ File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "r");
+ int sz = file.size() * 1.33;
+ int docSize = max(sz, 2048);
+ DynamicJsonDocument doc((size_t)docSize);
+ if (file) {
+ // If file is present, load actual configuration
+ DeserializationError error = deserializeJson(doc, file);
+ if (error) {
+ log_error("Failed to deserialize file, may be corrupted\n %s", error.c_str());
+ file.close();
+ return;
+ }
+ file.close();
+ }
+ else
+ log_error("File not found, will be created new configuration file");
+
+ numOptions++ ;
+ String key = label;
+ if (hidden)
+ key += "-hidden";
+ // Univoque key name
+ if (key.equals("param-box"))
+ key += numOptions ;
+ if (key.equals("raw-javascript"))
+ key += numOptions ;
+
+ // If key is present in json, we don't need to create it.
+ if (doc.containsKey(key.c_str()))
+ return;
+
+ // if min, max, step != from default, treat this as object in order to set other properties
+ if (d_min != MIN_F || d_max != MAX_F || step != 1.0) {
+ JsonObject obj = doc.createNestedObject(key);
+ obj["value"] = static_cast(val);
+ obj["min"] = d_min;
+ obj["max"] = d_max;
+ obj["step"] = step;
+ }
+ else {
+ doc[key] = static_cast(val);
+ }
+
+ file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "w");
+ if (serializeJsonPretty(doc, file) == 0)
+ log_error("Failed to write to file");
+ file.close();
+ }
+
+ /*
+ Get current value for a specific custom option (true on success)
+ */
+ template
+ bool getOptionValue(const char *label, T &var) {
+ File file = m_filesystem->open(CONFIG_FOLDER CONFIG_FILE, "r");
+ DynamicJsonDocument doc(file.size() * 1.33);
+ if (file) {
+ DeserializationError error = deserializeJson(doc, file);
+ if (error) {
+ log_error("Failed to deserialize file, may be corrupted\n %s\n", error.c_str());
+ file.close();
+ return false;
+ }
+ file.close();
+ }
+ else
+ return false;
+
+ if (doc[label]["value"])
+ var = doc[label]["value"].as();
+ else if (doc[label]["selected"])
+ var = doc[label]["selected"].as();
+ else
+ var = doc[label].as();
+ return true;
+ }
+
+};
+
+#endif