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);