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