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