\n\n \n \n\n \n\n\n","numLines":462,"startLine":1,"totalLines":462}},"sourceToolAssistantUUID":"9ae96ddb-fcfc-4e87-8d75-794705c914d0","userType":"external","entrypoint":"claude-vscode","cwd":"d:\\PlatformIO1\\Projects\\Healthv2.0","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb","version":"2.1.216","gitBranch":"HEAD"}
{"parentUuid":"2f99afca-b920-436f-a52f-3f1ce563cc1a","isSidechain":false,"message":{"id":"94542c02-cc3b-425d-b597-87812de557da","type":"message","role":"assistant","model":"deepseek-v4-pro","content":[{"type":"tool_use","id":"call_01_TeVZTdZTSoTHPoCyyRL29810","name":"Glob","input":{"pattern":"data/**/*","path":"d:\\PlatformIO1\\Projects\\Healthv2.0"}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":70,"cache_creation_input_tokens":0,"cache_read_input_tokens":73472,"output_tokens":511,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"},"stop_details":null},"type":"assistant","uuid":"e5b970e2-a6d8-41af-a463-cd15c13ce7b4","timestamp":"2026-07-21T04:43:38.366Z","effort":"high","userType":"external","entrypoint":"claude-vscode","cwd":"d:\\PlatformIO1\\Projects\\Healthv2.0","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb","version":"2.1.216","gitBranch":"HEAD"}
{"type":"last-prompt","lastPrompt":"为啥还和之前一样,开始界面,连接wifi啥的字还是英文","leafUuid":"e5b970e2-a6d8-41af-a463-cd15c13ce7b4","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb"}
{"type":"ai-title","aiTitle":"Fix RadarRawData member name","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb"}
{"parentUuid":"e5b970e2-a6d8-41af-a463-cd15c13ce7b4","isSidechain":false,"promptId":"3782c6df-2338-4d4e-a990-6831b7f39d44","type":"user","message":{"role":"user","content":[{"tool_use_id":"call_01_TeVZTdZTSoTHPoCyyRL29810","type":"tool_result","content":"data\\index.html"}]},"uuid":"7e97e741-045e-4ea4-87fe-5f134a7c3736","timestamp":"2026-07-21T04:43:38.578Z","toolUseResult":{"filenames":["data\\index.html"],"durationMs":203,"numFiles":1,"truncated":false,"totalMatches":1,"countIsComplete":true},"sourceToolAssistantUUID":"e5b970e2-a6d8-41af-a463-cd15c13ce7b4","userType":"external","entrypoint":"claude-vscode","cwd":"d:\\PlatformIO1\\Projects\\Healthv2.0","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb","version":"2.1.216","gitBranch":"HEAD"}
{"type":"queue-operation","operation":"enqueue","timestamp":"2026-07-21T04:44:14.691Z","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb"}
{"parentUuid":"7e97e741-045e-4ea4-87fe-5f134a7c3736","isSidechain":false,"message":{"id":"4d81c23e-fedc-4e38-b978-26820f6d2556","type":"message","role":"assistant","model":"deepseek-v4-pro","content":[{"type":"thinking","thinking":"OK, now I see the situation. There are TWO different things:\n\n1. **`data/index.html`** — This is a beautifully crafted Chinese-language custom web page that's stored in the LittleFS data directory. It's already fully in Chinese! But this page is NOT currently being served by anything — it's sitting in the `data/` directory but the WiFiManager library uses its own hardcoded HTML, not this custom page.\n\n2. **WiFiManager's built-in captive portal** — When the user connects to the ESP32's AP (\"HealthMonitor-Setup\"), they see the default WiFiManager page which is in English. This is what the user is complaining about.\n\nThe project has a beautiful custom Chinese `index.html` in the `data/` directory but it's not being used! The WiFiManager library has its own hardcoded HTML that it serves.\n\nTo fix this, we need to:\n1. Either serve the custom `index.html` through WiFiManager's web server somehow\n2. Or start a separate web server when the WiFiManager AP mode is active\n3. Or use WiFiManager's `setCustomMenuHTML()` to inject custom HTML\n\nActually, looking at this more carefully, WiFiManager v2.0.17 has limited ability to customize the main WiFi config page. The library serves its own built-in HTML for the WiFi form. While we can set title and custom head elements, the main form content (SSID field, password field, save button, etc.) is hardcoded in English.\n\nThe best approach would be to:\n1. Run a separate AsyncWebServer on the ESP32 that serves this custom `index.html`\n2. Or use the WiFiManager's web server and redirect to the custom page\n3. Or use the WiFiManager API to submit WiFi credentials from the custom page\n\nWait, actually the simplest approach might be different. Looking at the WiFiManager library, it creates its own web server. The custom `index.html` in `data/` seems to be designed to work as a standalone page or with a custom server.\n\nLet me think about the practical approach:\n\nOption A: Use the custom `index.html` as WiFiManager's custom menu HTML via `setCustomMenuHTML()`. But this would only show as an extra menu item, not replace the main WiFi page.\n\nOption B: Set up a separate web server on the ESP32 (like ESPAsyncWebServer) that serves the custom `index.html` from LittleFS, and have it handle the WiFi config submission by calling WiFiManager's WiFi saving functions.\n\nOption C: Override WiFiManager's internal web server handling. This is complex and fragile.\n\nActually, looking at the WiFiManager library more carefully, in newer versions (2.0.x), when parameters are shown, they appear on a separate \"Setup\" page. But the initial \"Configure WiFi\" page with SSID/password fields is still the default English one.\n\nThe most practical approach is to use the ESP32's ability to run both WiFiManager and a separate web server. Or, better yet, to use WiFiManager in a way where we start the config portal but also serve our custom HTML.\n\nActually, wait. Let me re-read the situation. The user already has a `data/index.html` that's fully Chinese. This is clearly meant to be the captive portal page. But currently the project uses WiFiManager which has its own English HTML.\n\nThe solution: We need to either:\n1. Serve this custom HTML through WiFiManager somehow\n2. Or replace WiFiManager's web serving with our own\n\nLooking at the WiFiManager API more carefully:\n- `startConfigPortal()` starts the DNS server and web server\n- The web server serves hardcoded HTML for the root page\n- We can customize some parts but not replace the whole thing\n\nThe best approach for this project would be to:\n1. Upload the `data/index.html` to LittleFS on the ESP32\n2. Instead of using WiFiManager's built-in web server, start a custom web server (like ESPAsyncWebServer or even WiFiServer) that serves this HTML\n3. When the user submits the form, call WiFiManager's API or directly call WiFi.begin() and save config\n\nBut this is a significant architectural change. Let me think of a simpler approach...\n\nActually, WiFiManager has a non-blocking mode. We could:\n1. Start WiFiManager in non-blocking mode (or use `startConfigPortal()` which blocks)\n2. While WiFiManager's portal is running, we can't easily serve our own pages because WiFiManager takes over the web server (port 80)\n\nWait, let me look at this differently. The WiFiManager library's captive portal is a feature - it handles DNS redirection and serves the config page. But the user wants a Chinese page.\n\nOne practical approach: The `data/index.html` file already exists and is fully Chinese. The issue is getting it served. We could:\n\n1. Convert the project to NOT use WiFiManager's built-in web UI, and instead use a custom web server approach\n2. Or, find a way to make WiFiManager serve our custom page\n\nActually, looking at the WiFiManager source code again, it creates a `WiFiServer` (or `WebServer` on ESP32). The page content is generated in the `handleRequest()` or similar function. There's no easy way to replace the page content.\n\nBut here's an idea: WiFiManager supports `setCustomHeadElement()` which injects HTML into the ``. And it has `setCustomMenuHTML()` which adds a custom menu item/page. But these don't replace the main WiFi config page.\n\nThe cleanest solution I think is:\n1. Keep using WiFiManager for its WiFi connection management, DNS captive portal, and parameter storage\n2. BUT override the web serving with our own by using a separate AsyncWebServer\n\nActually, this is getting too complex. Let me check if there's a simpler way.\n\nActually, re-reading the WiFiManager docs more carefully, I see that `setConfigPortalBlocking(false)` allows non-blocking mode. And `process()` handles the DNS/web server loop. But we can't serve our own pages because WiFiManager takes over port 80.\n\nHmm, wait. Let me look at an alternative approach. The WiFiManager library on ESP32 uses the `WebServer` class (ESP32's built-in web server, not to be confused with ESP8266WebServer). Maybe we can modify how it works.\n\nActually, the most straightforward approach is:\n1. Start the config portal with `_wm.startConfigPortal()` in blocking mode\n2. The default WiFiManager page will be in English - BUT WiFiManager also accepts HTTP POST to `/save` or similar endpoints\n3. So a user could theoretically load the custom HTML page from... hmm, but how?\n\nWait, I think I'm overcomplicating this. Let me check if WiFiManager's `startConfigPortal()` can be configured to use a custom HTML page.\n\nLooking at the WiFiManager library code:\n- The main page HTML is generated in `handleWifi()` and related methods\n- There's no `setCustomIndexHTML()` or similar API\n\nSo the options are:\n1. Fork/modify the WiFiManager library (bad idea)\n2. Create a custom web server that runs alongside WiFiManager's DNS\n3. Use WiFiManager's non-blocking mode and serve custom pages on a different port\n4. Submit a PR to WiFiManager to support custom HTML (too slow)\n5. Just accept the WiFiManager default page but supplement it with other methods\n\nActually, wait. Let me look at the system from the user's perspective again:\n\nThe user connects to \"HealthMonitor-Setup\" AP → phone shows captive portal → they see English WiFiManager page.\n\nWhat if instead of WiFiManager's built-in portal, we:\n1. Use the device as an AP with a known SSID\n2. Serve the custom `index.html` using a simple `WiFiServer` + `WiFiClient` approach (or `WebServer` library)\n3. Handle the form submission by saving to LittleFS and calling `WiFi.begin()`\n4. Handle DNS redirection (captive portal detection) with a simple DNS server\n\nThis would give us full control over the HTML. But it's a significant amount of work and would duplicate WiFiManager's functionality.\n\nAlternatively, a much simpler approach: modify the WiFiManager library's HTML in-place. Since it's in the `.pio/libdeps` directory, we could patch the WiFiManager source. But this would be overwritten when the library updates.\n\nActually, let me look at this from a completely different angle. The WiFiManager library (`tzapu/WiFiManager@^2.0.17`) generates HTML text in its `.cpp` file. We could copy the relevant HTML generation code from WiFiManager, modify it to Chinese, and... no, that's not practical.\n\nOK here's what I think the right approach is:\n\n1. The project already has a beautiful `data/index.html` that's fully Chinese\n2. We should set up a proper web server that serves this page\n3. Use WiFiManager primarily for its WiFi connection management (auto-connect, timeout, etc.) rather than its web UI\n4. Or, use WiFiManager's non-blocking mode and run a custom web server on a different port for the actual config UI\n\nBut actually, for the simplest fix that the user is asking for: the WiFiManager default page is in English. Let me look if there are localization-related defines in WiFiManager's source that we could override.\n\nLet me check the WiFiManager source for the English text strings that appear on the portal page.","signature":"4d81c23e-fedc-4e38-b978-26820f6d2556"}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":4322,"cache_creation_input_tokens":0,"cache_read_input_tokens":73984,"output_tokens":2254,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"},"stop_details":null},"type":"assistant","uuid":"c29d3f82-f1bf-4633-8e16-f3980eb56a5e","timestamp":"2026-07-21T04:44:14.149Z","effort":"high","userType":"external","entrypoint":"claude-vscode","cwd":"d:\\PlatformIO1\\Projects\\Healthv2.0","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb","version":"2.1.216","gitBranch":"HEAD"}
{"parentUuid":"c29d3f82-f1bf-4633-8e16-f3980eb56a5e","isSidechain":false,"message":{"id":"4d81c23e-fedc-4e38-b978-26820f6d2556","type":"message","role":"assistant","model":"deepseek-v4-pro","content":[{"type":"text","text":"明白了!问题在于 `data/index.html` 已经是完美的中文页面,但 WiFiManager 库自带的是英文内置页面,并没有使用这个自定义页面。\n\n让我检查 WiFiManager 内置页面的英文文本和自定义选项。"}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":4322,"cache_creation_input_tokens":0,"cache_read_input_tokens":73984,"output_tokens":2254,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"},"stop_details":null},"type":"assistant","uuid":"4317beff-3bfc-4cda-ace5-1b5b93c11e8d","timestamp":"2026-07-21T04:44:15.049Z","effort":"high","userType":"external","entrypoint":"claude-vscode","cwd":"d:\\PlatformIO1\\Projects\\Healthv2.0","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb","version":"2.1.216","gitBranch":"HEAD"}
{"parentUuid":"4317beff-3bfc-4cda-ace5-1b5b93c11e8d","isSidechain":false,"message":{"id":"4d81c23e-fedc-4e38-b978-26820f6d2556","type":"message","role":"assistant","model":"deepseek-v4-pro","content":[{"type":"tool_use","id":"call_00_NlqJltSAJ0kGBi5y69Br0619","name":"Grep","input":{"-n":true,"output_mode":"content","path":"d:\\PlatformIO1\\Projects\\Healthv2.0\\.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager","pattern":"Configure WiFi|WiFi SSID|WiFi Password|Scan|to configure|No networks|connect to|Save|Reset|Update|Info|Exit|Close|custom|setup","glob":"*.cpp","-i":true}}],"stop_reason":"tool_use","stop_sequence":null,"usage":{"input_tokens":4322,"cache_creation_input_tokens":0,"cache_read_input_tokens":73984,"output_tokens":2254,"server_tool_use":{"web_search_requests":0,"web_fetch_requests":0},"service_tier":"standard","cache_creation":{"ephemeral_1h_input_tokens":0,"ephemeral_5m_input_tokens":0},"inference_geo":"","iterations":[],"speed":"standard"},"stop_details":null},"type":"assistant","uuid":"0ff9df44-19e2-42f9-b079-2164104d01ad","timestamp":"2026-07-21T04:44:17.095Z","effort":"high","userType":"external","entrypoint":"claude-vscode","cwd":"d:\\PlatformIO1\\Projects\\Healthv2.0","sessionId":"49fba966-60be-4542-a6c1-b5b7e0e566bb","version":"2.1.216","gitBranch":"HEAD"}
{"parentUuid":"0ff9df44-19e2-42f9-b079-2164104d01ad","isSidechain":false,"promptId":"3782c6df-2338-4d4e-a990-6831b7f39d44","type":"user","message":{"role":"user","content":[{"tool_use_id":"call_00_NlqJltSAJ0kGBi5y69Br0619","type":"tool_result","content":"\nOutput too large (29.5KB). Full output saved to: C:\\Users\\杨志佳\\.claude\\projects\\d--PlatformIO1-Projects-Healthv2-0\\49fba966-60be-4542-a6c1-b5b7e0e566bb\\tool-results\\call_00_NlqJltSAJ0kGBi5y69Br0619.txt\n\nPreview (first 2KB):\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:31:WiFiManagerParameter::WiFiManagerParameter(const char *custom) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:37: _customHTML = custom;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:48:WiFiManagerParameter::WiFiManagerParameter(const char *id, const char *label, const char *defaultValue, int length, const char *custom) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:49: init(id, label, defaultValue, length, custom, WFM_LABEL_DEFAULT);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:52:WiFiManagerParameter::WiFiManagerParameter(const char *id, const char *label, const char *defaultValue, int length, const char *custom, int labelPlacement) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:53: init(id, label, defaultValue, length, custom, labelPlacement);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:56:void WiFiManagerParameter::init(const char *id, const char *label, const char *defaultValue, int length, const char *custom, int labelPlacement) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:60: _customHTML = custom;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:124:const char* WiFiManagerParameter::getCustomHTML() const {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:125: return _customHTML;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:159: DEBUG_WM(WM_DEBUG_DEV,F(\"Updated _max_params:\"),_max_params);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:220: if(_debug && _debugLevel >= WM_DEBUG_DEV) debugPlatformInfo();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:254: WiFi.persistent(false); // disable persistent so scannetworks and mode switching do not cause overwrites\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:283: // bool wifiIsSaved = getWiFiIsSaved();\n...\n"}]},"uuid":"37cfcda2-ceaf-40ba-8860-29cdf0ef2a3f","timestamp":"2026-07-21T04:44:17.409Z","toolUseResult":{"mode":"content","numFiles":0,"filenames":[],"content":".pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:31:WiFiManagerParameter::WiFiManagerParameter(const char *custom) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:37: _customHTML = custom;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:48:WiFiManagerParameter::WiFiManagerParameter(const char *id, const char *label, const char *defaultValue, int length, const char *custom) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:49: init(id, label, defaultValue, length, custom, WFM_LABEL_DEFAULT);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:52:WiFiManagerParameter::WiFiManagerParameter(const char *id, const char *label, const char *defaultValue, int length, const char *custom, int labelPlacement) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:53: init(id, label, defaultValue, length, custom, labelPlacement);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:56:void WiFiManagerParameter::init(const char *id, const char *label, const char *defaultValue, int length, const char *custom, int labelPlacement) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:60: _customHTML = custom;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:124:const char* WiFiManagerParameter::getCustomHTML() const {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:125: return _customHTML;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:159: DEBUG_WM(WM_DEBUG_DEV,F(\"Updated _max_params:\"),_max_params);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:220: if(_debug && _debugLevel >= WM_DEBUG_DEV) debugPlatformInfo();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:254: WiFi.persistent(false); // disable persistent so scannetworks and mode switching do not cause overwrites\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:283: // bool wifiIsSaved = getWiFiIsSaved();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:284: bool wifiIsSaved = true; // workaround until I can check esp32 wifiisinit and has nvs\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:287: setupHostname(true);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:302: // check if wifi is saved, (has autoconnect) to speed up cp start\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:304: if(wifiIsSaved){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:308: // attempt to connect using saved settings, on fail fallback to AP config portal\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:320: if(esp32persistent) WiFi.persistent(false); // disable persistent for esp32 after esp_wifi_start or else saves wont work\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:332: setupHostname(true);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:338: // @todo check if correct ssid == saved ssid when already connected\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:374: DEBUG_WM(F(\"No Credentials are Saved, skipping connect\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:392:bool WiFiManager::setupHostname(bool restart){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:455: // WiFi.reconnect(); // This does not reset dhcp\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:457: delay(200); // do not remove, need a delay for disconnect to change status()\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:481: // setup optional soft AP static ip config\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:484: DEBUG_WM(F(\"Custom AP IP/GW/Subnet:\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:560: setupConfigPortal();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:618:void WiFiManager::setupHTTPServer(){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:626: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"http server started with custom port: \"),_httpPort); // @todo not showing ip\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:630: server.reset(new WM_WebServer(_httpPort));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:631: // This is not the safest way to reset the webserver, it can cause crashes on callbacks initilized before this and since its a shared pointer...\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:641: /* Setup httpd callbacks, web pages: root, wifi config pages, SO captive portal detectors and not found. */\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:646: server->on(WM_G(R_wifinoscan), std::bind(&WiFiManager::handleWifi, this, false));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:647: server->on(WM_G(R_wifisave), std::bind(&WiFiManager::handleWifiSave, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:648: server->on(WM_G(R_info), std::bind(&WiFiManager::handleInfo, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:650: server->on(WM_G(R_paramsave), std::bind(&WiFiManager::handleParamSave, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:651: server->on(WM_G(R_restart), std::bind(&WiFiManager::handleReset, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:652: server->on(WM_G(R_exit), std::bind(&WiFiManager::handleExit, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:653: server->on(WM_G(R_close), std::bind(&WiFiManager::handleClose, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:658: server->on(WM_G(R_update), std::bind(&WiFiManager::handleUpdate, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:659: server->on(WM_G(R_updatedone), HTTP_POST, std::bind(&WiFiManager::handleUpdateDone, this), std::bind(&WiFiManager::handleUpdating, this));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:667:void WiFiManager::setupDNSD(){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:668: dnsServer.reset(new DNSServer());\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:670: /* Setup the DNS server redirecting all the domains to the apIP */\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:679:void WiFiManager::setupConfigPortal() {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:680: setupHTTPServer();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:681: _lastscan = 0; // reset network scan cache\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:682: if(_preloadwifiscan) WiFi_scanNetworks(true,true); // preload wifiscan , async\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:707: //setup AP\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:719: // HANDLE issues with STA connections, shutdown sta if not connected, or else this will hang channel scanning and softap will not respond\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:759: DEBUG_WM(WM_DEBUG_DEV,F(\"setupConfigPortal\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:761: setupConfigPortal();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:764: DEBUG_WM(WM_DEBUG_DEV,F(\"setupDNSD\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:766: setupDNSD();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:819: DEBUG_WM(WM_DEBUG_NOTIFY,F(\"config portal exiting\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:832: MDNS.update();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:837: if(_allowExit && (configPortalHasTimeout() || abort)){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:861: * returns WL_IDLE_STATUS or WL_CONNECTED/WL_CONNECT_FAILED upon connect/save flag\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:874: // Waiting for save...\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:878: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"processing save\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:880: if(_enableCaptivePortal) delay(_cpclosedelay); // keeps the captiveportal from closing to fast.\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:885: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"No ssid, skipping wifi save\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:890: uint8_t res = connectWifi(_ssid, _pass, _connectonsave) == WL_CONNECTED;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:891: if (res || (!_connectonsave)) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:893: if(!_connectonsave){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:894: DEBUG_WM(F(\"SAVED with no connect to new AP\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:896: DEBUG_WM(F(\"Connect to new AP [SUCCESS]\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:902: if ( _savewificallback != NULL) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:904: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"[CB] _savewificallback calling\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:906: _savewificallback(); // @CALLBACK\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:908: if(!_connectonsave) return WL_IDLE_STATUS;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:913: DEBUG_WM(WM_DEBUG_ERROR,F(\"[ERROR] Connect to new AP Failed\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:919: // do save callback\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:920: // @todo this is more of an exiting callback than a save, clarify when this should actually occur\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:921: // confirm or verify data was saved to make this more accurate callback\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:922: if ( _savewificallback != NULL) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:924: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"[CB] WiFi/Param save callback\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:926: _savewificallback(); // @CALLBACK\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:932: // clear save strings\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:975: server.reset();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:977: WiFi.scanDelete(); // free wifi scan results\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:982: dnsServer.reset();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1010: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"configportal closed\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1028: // make sure sta is on before `begin` so it does not call enablesta->mode while persistent is ON ( which would save WM AP state to eeprom !)\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1044: // if ssid argument provided connect to that\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1048: // @todo connect=false seems to disconnect sta in begin() so not sure if _connectonsave is useful at all\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1051: if(_saveTimeout > 0){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1052: connRes = waitForConnectResult(_saveTimeout); // use default save timeout for saves to prevent bugs in esp->waitforconnectresult loop\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1060: // connect using saved ssid if there is one\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1067: DEBUG_WM(F(\"No wifi saved, skipping\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1089: if(connRes != WL_SCAN_COMPLETED){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1090: updateConxResult(connRes);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1097: * connect to a new wifi ap\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1102: * @return connect only save if false\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1122: * connect to stored wifi\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1130: DEBUG_WM(F(\"Connecting to SAVED AP:\"),WiFi_SSID(true));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1164: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"Custom static IP/GW/Subnet/DNS\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1168: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"Custom static DNS\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1174: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"Custom STA IP/GW/Subnet\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1193:void WiFiManager::updateConxResult(uint8_t status){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1281: page += _customHeadElement;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1336: String str = FPSTR(HTTP_ROOT_MAIN); // @todo custom title\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1346: if(_preloadwifiscan) WiFi_scanNetworks(_scancachetime,true); // preload wifiscan throttled, async\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1355:void WiFiManager::handleWifi(boolean scan) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1361: if (scan) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1365: WiFi_scanNetworks(server->hasArg(F(\"refresh\")),false); //wifiscan, force if arg refresh\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1366: page += getScanItemOut();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1371: pitem.replace(FPSTR(T_v), F(\"wifisave\")); // set form action\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1396: page += FPSTR(HTTP_SCAN_LINK);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1421: pitem.replace(FPSTR(T_v), F(\"paramsave\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1443: if((String)_menutokens[menuId] == \"custom\" && _customMenuHTML!=NULL){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1444: page += _customMenuHTML;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1454:// // is it possible in softap mode to detect aps without scanning\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1455:// bool WiFiManager::WiFi_scanNetworksForAP(bool force){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1456:// WiFi_scanNetworks(force);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1459:void WiFiManager::WiFi_scanComplete(int networksFound){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1460: _lastscan = millis();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1463: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"WiFi Scan ASYNC completed\"), \"in \"+(String)(_lastscan - _startscan)+\" ms\"); \n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1464: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"WiFi Scan ASYNC found:\"),_numNetworks);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1468:bool WiFiManager::WiFi_scanNetworks(){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1469: return WiFi_scanNetworks(false,false);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1472:bool WiFiManager::WiFi_scanNetworks(unsigned int cachetime,bool async){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1473: return WiFi_scanNetworks(millis()-_lastscan > cachetime,async);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1475:bool WiFiManager::WiFi_scanNetworks(unsigned int cachetime){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1476: return WiFi_scanNetworks(millis()-_lastscan > cachetime,false);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1478:bool WiFiManager::WiFi_scanNetworks(bool force,bool async){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1480: // DEBUG_WM(WM_DEBUG_DEV,\"scanNetworks async:\",async == true);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1481: // DEBUG_WM(WM_DEBUG_DEV,_numNetworks,(millis()-_lastscan ));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1482: // DEBUG_WM(WM_DEBUG_DEV,\"scanNetworks force:\",force == true);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1485: // if 0 networks, rescan @note this was a kludge, now disabling to test real cause ( maybe wifi not init etc)\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1487: if(_numNetworks == 0 && _autoforcerescan){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1488: DEBUG_WM(WM_DEBUG_DEV,\"NO APs found forcing new scan\");\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1492: // if scan is empty or stale (last scantime > _scancachetime), this avoids fast reloading wifi page and constant scan delayed page loads appearing to freeze.\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1493: if(!_lastscan || (_lastscan>0 && (millis()-_lastscan > _scancachetime))){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1499: _startscan = millis();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1500: if(async && _asyncScan){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1504: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"WiFi Scan ASYNC started\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1507: WiFi.scanNetworksAsync(std::bind(&WiFiManager::WiFi_scanComplete,this,_1));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1509: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"WiFi Scan SYNC started\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1510: res = WiFi.scanNetworks();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1514: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"WiFi Scan ASYNC started\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1516: res = WiFi.scanNetworks(true);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1521: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"WiFi Scan SYNC started\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1522: res = WiFi.scanNetworks();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1524: if(res == WIFI_SCAN_FAILED){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1526: DEBUG_WM(WM_DEBUG_ERROR,F(\"[ERROR] scan failed\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1529: else if(res == WIFI_SCAN_RUNNING){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1531: DEBUG_WM(WM_DEBUG_ERROR,F(\"[ERROR] scan waiting\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1533: while(WiFi.scanComplete() == WIFI_SCAN_RUNNING){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1539: _numNetworks = WiFi.scanComplete();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1542: _lastscan = millis();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1544: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"WiFi Scan completed\"), \"in \"+(String)(_lastscan - _startscan)+\" ms\");\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1550: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"Scan is cached\"),(String)(millis()-_lastscan )+\" ms ago\");\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1556:String WiFiManager::WiFiManager::getScanItemOut(){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1559: if(!_numNetworks) WiFi_scanNetworks(); // scan in case this gets called before any scans\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1564: DEBUG_WM(F(\"No networks found\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1617: HTTP_ITEM_STR.replace(\"{h}\",_scanDispOptions ? \"\" : \"h\");\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1619: HTTP_ITEM_STR.replace(\"{h}\",_scanDispOptions ? \"h\" : \"\");\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1697: // @todo how can we get these accurate settings from memory , wifi_get_ip_info does not seem to reveal if struct ip_info is static or not\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1769: // if no ID use customhtml for item, else generate from param string\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1779: if(tok_c)pitem.replace(FPSTR(T_c), _params[i]->getCustomHTML()); // T_c meant for additional attributes, not html, but can stuff\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1781: pitem = _params[i]->getCustomHTML();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1805: * HTTPD CALLBACK save form and redirect to WLAN config page again\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1807:void WiFiManager::handleWifiSave() {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1809: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"<- HTTP WiFi save \"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1814: //SAVE/connect here\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1821: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"Detected WiFi password change\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1826: String requestinfo = \"SERVER_REQUEST\\n----------------\\n\";\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1827: requestinfo += \"URI: \";\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1828: requestinfo += server->uri();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1829: requestinfo += \"\\nMethod: \";\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1830: requestinfo += (server->method() == HTTP_GET) ? \"GET\" : \"POST\";\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1831: requestinfo += \"\\nArguments: \";\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1832: requestinfo += server->args();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1833: requestinfo += \"\\n\";\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1835: requestinfo += \" \" + server->argName(i) + \": \" + server->arg(i) + \"\\n\";\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1838: DEBUG_WM(WM_DEBUG_MAX,requestinfo);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1872: if (_presavewificallback != NULL) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1873: _presavewificallback(); // @CALLBACK \n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1876: if(_paramsInWifi) doParamSave();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1881: page = getHTTPHead(FPSTR(S_titlewifisettings)); // @token titleparamsaved\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1882: page += FPSTR(HTTP_PARAMSAVED);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1885: page = getHTTPHead(FPSTR(S_titlewifisaved)); // @token titlewifisaved\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1886: page += FPSTR(HTTP_SAVED);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1896: DEBUG_WM(WM_DEBUG_DEV,F(\"Sent wifi save page\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1899: connect = true; //signal ready to connect/reset process in processConfigPortal\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1902:void WiFiManager::handleParamSave() {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1905: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"<- HTTP Param save \"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1912: doParamSave();\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1914: String page = getHTTPHead(FPSTR(S_titleparamsaved)); // @token titleparamsaved\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1915: page += FPSTR(HTTP_PARAMSAVED);\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1922: DEBUG_WM(WM_DEBUG_DEV,F(\"Sent param save page\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1926:void WiFiManager::doParamSave(){\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1927: // @todo use new callback for before paramsaves, is this really needed?\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1928: if ( _presaveparamscallback != NULL) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1929: _presaveparamscallback(); // @CALLBACK\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1966: if ( _saveparamscallback != NULL) {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1967: _saveparamscallback(); // @CALLBACK\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1973: * HTTPD CALLBACK info page\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1975:void WiFiManager::handleInfo() {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1977: DEBUG_WM(WM_DEBUG_VERBOSE,F(\"<- HTTP Info\"));\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1980: String page = getHTTPHead(FPSTR(S_titleinfo)); // @token titleinfo\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1983: uint16_t infos = 0;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1986: //@todo wrap in build flag to remove all info code for memory saving\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1988: infos = 28;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:1989: String infoids[] = {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:2002: F(\"lastreset\"),\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:2021: // add esp_chip_info ?\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:2022: infos = 27;\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:2023: String infoids[] = {\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:2034: F(\"lastreset\"),\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\WiFiManager.cpp:2055: for(size_t i=0; i\"\n.pio\\libdeps\\esp32-s3-devkitc-1\\WiFiManager\\wm_strings_en.h:32:const char HTTP_SCRIPT[] PROGMEM = \"\"; // @todo add button states, disable on click , show ack , spinner etc\n39\t\n40\tconst char HTTP_HEAD_END[] PROGMEM = \"
\"; // {c} = _bodyclass\n41\t// example of embedded logo, base64 encoded inline, No styling here\n42\t// const char HTTP_ROOT_MAIN[] PROGMEM = \"