From 0556f864731c404c21f979c35bb00c20078f3391 Mon Sep 17 00:00:00 2001 From: Rune Harlyk Date: Sat, 20 Dec 2025 21:07:32 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20Adds=20endpoints=20for=20wifi=20?= =?UTF-8?q?and=20ap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- esp32/src/main.cpp | 23 ++++++++++++++++++++++- esp32/src/www_mount.cpp | 8 ++------ 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/esp32/src/main.cpp b/esp32/src/main.cpp index 2cbcbb4..2509c1d 100644 --- a/esp32/src/main.cpp +++ b/esp32/src/main.cpp @@ -39,7 +39,7 @@ WiFiService wifiService; APService apService; void setupServer() { - server.config.max_uri_handlers = 10 + WWW_ASSETS_COUNT; + server.config.max_uri_handlers = 18 + WWW_ASSETS_COUNT; server.maxUploadSize = 1000000; // 1 MB; server.listen(80); server.serveStatic("/api/config/", ESP_FS, "/config/"); @@ -70,6 +70,27 @@ void setupServer() { server.on("/api/servo/config", HTTP_POST, [&](PsychicRequest *request, JsonVariant &json) { return servoController.endpoint.handleStateUpdate(request, json); }); + + // WiFi + server.on("/api/wifi/sta/settings", HTTP_GET, + [&](PsychicRequest *request) { return wifiService.endpoint.getState(request); }); + server.on("/api/wifi/sta/settings", HTTP_POST, [&](PsychicRequest *request, JsonVariant &json) { + return wifiService.endpoint.handleStateUpdate(request, json); + }); + server.on("/api/wifi/scan", HTTP_GET, [&](PsychicRequest *request) { return wifiService.handleScan(request); }); + server.on("/api/wifi/networks", HTTP_GET, + [&](PsychicRequest *request) { return wifiService.getNetworks(request); }); + server.on("/api/wifi/sta/status", HTTP_GET, + [&](PsychicRequest *request) { return wifiService.getNetworkStatus(request); }); + + // AP + server.on("/api/ap/status", HTTP_GET, [&](PsychicRequest *request) { return apService.getStatus(request); }); + server.on("/api/ap/settings", HTTP_GET, + [&](PsychicRequest *request) { return apService.endpoint.getState(request); }); + server.on("/api/ap/settings", HTTP_POST, [&](PsychicRequest *request, JsonVariant &json) { + return apService.endpoint.handleStateUpdate(request, json); + }); + #if EMBED_WEBAPP mountStaticAssets(server); #endif diff --git a/esp32/src/www_mount.cpp b/esp32/src/www_mount.cpp index bd055c0..142a479 100644 --- a/esp32/src/www_mount.cpp +++ b/esp32/src/www_mount.cpp @@ -23,12 +23,8 @@ void mountStaticAssets(PsychicHttpServer& server) { auto* handle = new (&buf[i * sizeof(PsychicWebHandler)]) PsychicWebHandler(); handle->onRequest([a](PsychicRequest* req) { return web_send(req, *a); }); server.on(a->uri, HTTP_GET, handle); - } - for (size_t i = 0; i < WWW_ASSETS_COUNT; i++) { - if (strcmp(WWW_ASSETS[i].uri, WWW_OPT.default_uri) == 0) { - server.defaultEndpoint->setHandler( - reinterpret_cast(&buf[i * sizeof(PsychicWebHandler)])); - break; + if (strcmp(a->uri, WWW_OPT.default_uri) == 0) { + server.defaultEndpoint->setHandler(handle); } } } \ No newline at end of file