diff --git a/data/index.html b/data/index.html index d9afaf5..252b845 100644 --- a/data/index.html +++ b/data/index.html @@ -28,12 +28,30 @@
+ +
diff --git a/src/main.cpp b/src/main.cpp index d04f5f3..dbfca66 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -29,12 +29,10 @@ void setup() String pwd = config.getString("password", "mbgmbgmbg"); IPAddress defaultIp(192, 168, 1, 201); IPAddress ip = config.getUInt("ip", defaultIp); - - IPAddress cidr = config.getUChar("cidr", 24); - - // TODO: \/ Herleiten \/ @psxde - const IPAddress gateway(192, 168, 1, 1); - const IPAddress subnet(255, 255, 255, 0); + IPAddress defaultSubnet(255, 255, 255, 0); + IPAddress subnet = config.getUInt("subnet", defaultSubnet); + IPAddress defaultGateway(192, 168, 1, 1); + IPAddress gateway = config.getUInt("gateway", defaultGateway); // WiFi stuff // WiFi.begin(ssid, pwd); @@ -75,8 +73,8 @@ void setup() server.serveStatic("/", SPIFFS, "/").setDefaultFile("index.html"); - server.on("/config", HTTP_GET, [&, defaultIp, ssid, pwd, direction1, universe1, direction2, universe2](AsyncWebServerRequest *request) - { onGetConfig(ssid, pwd, defaultIp, universe1, direction1, universe2, direction2, request); }); + server.on("/config", HTTP_GET, [&, defaultIp, subnet, gateway, ssid, pwd, direction1, universe1, direction2, universe2](AsyncWebServerRequest *request) + { onGetConfig(ssid, pwd, defaultIp, subnet, gateway, universe1, direction1, universe2, direction2, request); }); server.onRequestBody([](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total) { diff --git a/src/routes/config.cpp b/src/routes/config.cpp index 30fd565..ba4806d 100644 --- a/src/routes/config.cpp +++ b/src/routes/config.cpp @@ -87,16 +87,34 @@ Direction parseDirection(uint8_t direction) #pragma endregion -void onGetConfig(String ssid, String pwd, uint32_t ip, uint8_t universe1, Direction direction1, uint8_t universe2, Direction direction2, AsyncWebServerRequest *request) +void onGetConfig( + String ssid, + String pwd, + uint32_t ip, + uint32_t subnet, + uint32_t gateway, + uint8_t universe1, + Direction direction1, + uint8_t universe2, + Direction direction2, + AsyncWebServerRequest *request) { JsonDocument doc; IPAddress ipAddr = ip; String ipString = ipAddr.toString(); + ipAddr = subnet; + String subnetString = ipAddr.toString(); + + ipAddr = gateway; + String gatewayString = ipAddr.toString(); + doc["ssid"] = ssid; doc["password"] = pwd; doc["ip"] = ipString; + doc["subnet"] = subnetString; + doc["gateway"] = gatewayString; doc["universe-1"] = universe1; doc["direction-1"] = direction1; doc["universe-2"] = universe2; @@ -122,10 +140,17 @@ void onPutConfig(AsyncWebServerRequest *request, uint8_t *data, size_t len, size if (ipMethod == Static) { - String ipString = doc["ip"].as(); IPAddress ipAddress; - ipAddress.fromString(ipString); + ipAddress.fromString(doc["ip"].as()); config.putUInt("ip", ipAddress); + + IPAddress subnet; + subnet.fromString(doc["subnet"].as()); + config.putUInt("subnet", subnet); + + IPAddress gateway; + gateway.fromString(doc["gateway"].as()); + config.putUInt("gateway", gateway); } Connection connection = parseConnection(doc["connection"].as()); diff --git a/src/routes/config.h b/src/routes/config.h index 3ea31a5..ff9507f 100644 --- a/src/routes/config.h +++ b/src/routes/config.h @@ -28,7 +28,17 @@ enum Direction Output }; -void onGetConfig(String ssid, String pwd, uint32_t ip, uint8_t universe1, Direction direction1, uint8_t universe2, Direction direction2, AsyncWebServerRequest *request); +void onGetConfig( + String ssid, + String pwd, + uint32_t ip, + uint32_t subnet, + uint32_t gateway, + uint8_t universe1, + Direction direction1, + uint8_t universe2, + Direction direction2, + AsyncWebServerRequest *request); void onPutConfig(AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total);