Webserver ajax instead of http redirects

This commit is contained in:
Patrick Haßel 2023-12-31 15:25:12 +01:00
parent 9a01e99eec
commit 72cc70bf68

View File

@ -24,8 +24,6 @@ void web_fps_on();
void web_fps_off();
void redirect();
void server_setup() {
server.on("/", web_index);
server.on("/mode", web_setMode);
@ -49,23 +47,37 @@ void web_index() {
server.sendContent(R"(<meta http-equiv="Pragma" content="no-cache" />)");
server.sendContent(R"(<meta http-equiv="Expires" content="Sun, 1 Jan 1999 00:00:00 GMT" />)");
server.sendContent(R"(<a href="/mode?mode=0">NONE</a><br>)");
server.sendContent(R"(<a href="/mode?mode=1">BORDER</a><br>)");
server.sendContent(R"(<a href="/mode?mode=2">CLOCK</a><br>)");
server.sendContent(R"(<a href="/mode?mode=3">GAME_OF_LIFE_BLACK_WHITE</a><br>)");
server.sendContent(R"(<a href="/mode?mode=4">GAME_OF_LIFE_GRAYSCALE</a><br>)");
server.sendContent(R"(<a href="/mode?mode=5">GAME_OF_LIFE_COLOR_FADE</a><br>)");
server.sendContent(R"(<a href="/mode?mode=6">GAME_OF_LIFE_RANDOM_COLOR</a><br>)");
server.sendContent(R"(<a href="/mode?mode=7">PONG</a><br>)");
server.sendContent(R"(<a href="/mode?mode=8">SPACE_INVADERS</a><br>)");
server.sendContent(R"(<a href="/mode?mode=9">COUNT_DOWN</a><br>)");
server.sendContent(R"(<a href="/mode?mode=10">COUNT_DOWN_BARS</a><br>)");
server.sendContent(R"(<a href="/mode?mode=11">STARFIELD</a><br>)");
server.sendContent(R"(<a href="/mode?mode=12">MATRIX</a><br>)");
server.sendContent(R"(
<style>
body {
font-family: sans-serif;
font-size: 9vw;
}
</style>
<script>
function get(path){
var r = new XMLHttpRequest();
r.open("GET", path, true);
r.send();
}
</script>)");
server.sendContent(R"(<a onclick="get('/mode?mode=0');">NONE</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=1');">BORDER</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=2');">CLOCK</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=3');">GAME_OF_LIFE_BLACK_WHITE</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=4');">GAME_OF_LIFE_GRAYSCALE</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=5');">GAME_OF_LIFE_COLOR_FADE</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=6');">GAME_OF_LIFE_RANDOM_COLOR</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=7');">PONG</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=8');">SPACE_INVADERS</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=9');">COUNT_DOWN</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=10');">COUNT_DOWN_BARS</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=11');">STARFIELD</a><br>)");
server.sendContent(R"(<a onclick="get('/mode?mode=12');">MATRIX</a><br>)");
server.sendContent(R"(Helligkeit: <a href="/brighter">+</a> / <a href="/darker">-</a><br>)");
server.sendContent(R"(Geschwindigkeit: <a href="/faster">+</a> / <a href="/slower">-</a><br>)");
server.sendContent(R"(FPS: <a href="/fps/on">EIN</a> / <a href="/fps/off">AUS</a><br>)");
server.sendContent(R"(Helligkeit: <a onclick="get('/brighter');">+</a> / <a onclick="get('/darker');">-</a><br>)");
server.sendContent(R"(Geschwindigkeit: <a onclick="get('/faster');">+</a> / <a onclick="get('/slower');">-</a><br>)");
server.sendContent(R"(FPS: <a onclick="get('/fps/on');">EIN</a> / <a onclick="get('/fps/off');">AUS</a><br>)");
server.client().flush();
}
@ -80,40 +92,35 @@ void web_setMode() {
return;
}
setMode((ModeId) value);
redirect();
server.send(200);
}
void web_brighter() {
setBrightness(display.getBrightness() + 10);
redirect();
server.send(200);
}
void web_darker() {
setBrightness(display.getBrightness() - 10);
redirect();
server.send(200);
}
void web_faster() {
setSpeed(config.speed * 1.1);
redirect();
server.send(200);
}
void web_slower() {
setSpeed(config.speed / 1.1);
redirect();
server.send(200);
}
void web_fps_on() {
display.fpsShow = true;
redirect();
server.send(200);
}
void web_fps_off() {
display.fpsShow = false;
redirect();
}
void redirect() {
server.sendHeader("location", "/");
server.send(302, "text/plain", "realtimeOK");
server.send(200);
}