Removed not needed config for pen. Use inkscape interface.

This commit is contained in:
Holger Weber
2026-02-13 01:12:39 +01:00
parent 42e9c4d97b
commit 53e51dc50b
5 changed files with 213 additions and 143 deletions

View File

@@ -57,7 +57,7 @@ button { margin-top: 18px; border: 0; background: #0b5ed7; color: white; padding
let lastSeq = 0;
async function loadConfig() {
const resp = await fetch('/api/config');
const resp = await fetch('/api/config', { cache: 'no-store' });
if (!resp.ok) throw new Error('Konfiguration konnte nicht geladen werden');
return resp.json();
}
@@ -92,6 +92,8 @@ async function saveConfig() {
const text = await resp.text();
throw new Error(text || 'Speichern fehlgeschlagen');
}
const saved = await resp.json();
renderForm(saved);
status.textContent = 'Gespeichert';
}
@@ -143,6 +145,9 @@ void handleGetConfig() {
server.send(500, "text/plain", "Config storage not available");
return;
}
server.sendHeader("Cache-Control", "no-store, no-cache, must-revalidate");
server.sendHeader("Pragma", "no-cache");
server.sendHeader("Expires", "0");
server.send(200, "application/json", buildConfigJson());
}
@@ -159,17 +164,18 @@ void handlePostConfig() {
String error;
if (!applyConfigJson(server.arg("plain"), error)) {
Log(String("Config JSON fehlerhaft: ") + error);
server.send(400, "text/plain", error);
return;
}
if (!saveConfigToFile()) {
Log("Config konnte nicht gespeichert werden");
server.send(500, "text/plain", "Could not save config");
return;
}
// penState = penUpPos;
// penServo.write(penState);
Log(String("Config gespeichert: penUpPos=") + g_iPEN_UP_POS + ", penDownPos=" + g_iPEN_DOWN_POS);
server.send(200, "application/json", buildConfigJson());
}
@@ -180,11 +186,19 @@ void handleGetLogs() {
}
server.send(200, "application/json", buildLogsJson(since));
}
void handleNotFound() {
if (server.uri().startsWith("/api/")) {
server.send(404, "text/plain", "API endpoint not found");
return;
}
handleRoot();
}
} // namespace
ConfigParameter configParameters[] = {
{"penUpPos", &penUpPos, "Pen Up Position", 5},
{"penDownPos", &penDownPos, "Pen Down Position", 20},
// {"penUpPos", &g_iPEN_UP_POS, "Pen Up Position", 5},
// {"penDownPos", &g_iPEN_DOWN_POS, "Pen Down Position", 20},
};
const size_t configParameterCount = sizeof(configParameters) / sizeof(configParameters[0]);
@@ -203,6 +217,7 @@ bool loadConfigFromFile() {
File file = SPIFFS.open(kConfigPath, "r");
if (!file) {
Log("config.json fehlt, defaults werden gespeichert");
return saveConfigToFile();
}
@@ -210,6 +225,7 @@ bool loadConfigFromFile() {
DeserializationError err = deserializeJson(doc, file);
file.close();
if (err) {
Log("config.json ist ungueltig, defaults werden gespeichert");
return saveConfigToFile();
}
@@ -230,6 +246,7 @@ bool loadConfigFromFile() {
param->description = item["description"].as<String>();
}
}
Log(String("Config geladen: penUpPos=") + g_iPEN_UP_POS + ", penDownPos=" + g_iPEN_DOWN_POS);
return true;
}
@@ -237,6 +254,7 @@ bool loadConfigFromFile() {
bool saveConfigToFile() {
File file = SPIFFS.open(kConfigPath, "w");
if (!file) {
Log("SPIFFS open write failed");
return false;
}
@@ -250,7 +268,11 @@ bool saveConfigToFile() {
}
bool ok = serializeJsonPretty(doc, file) > 0;
file.flush();
file.close();
if (!ok) {
Log("serializeJsonPretty failed");
}
return ok;
}
@@ -324,7 +346,7 @@ void startWebInterface() {
server.on("/api/config", HTTP_GET, handleGetConfig);
server.on("/api/config", HTTP_POST, handlePostConfig);
server.on("/api/logs", HTTP_GET, handleGetLogs);
server.onNotFound(handleRoot);
server.onNotFound(handleNotFound);
server.begin();
}