Files
2026-02-12 10:20:00 +01:00

88 lines
2.2 KiB
Arduino

#include <WiFi.h>
#include <WebServer.h>
#include <ArduinoJson.h>
#include "structs.h"
#include "prototypes.h"
const char* ssid = "PPIA";
const char* password = "pawelpdaldonejta";
unsigned char brightness = 100;
WebServer server(80);
void handleBrightness() {
if (server.hasArg("value")) {
brightness = server.arg("value").toInt();
}
server.send(200, "text/plain", "OK");
}
void handleRoot()
{
size_t len = strlen(index_html);
server.setContentLength(len);
server.send(200, "text/html", "");
const size_t CHUNK = 256;
for (size_t i = 0; i < len; i += CHUNK) {
size_t n = (len - i < CHUNK) ? len - i : CHUNK;
server.client().write((const uint8_t*)(index_html + i), n);
}
}
void handleToggleProgram() {
if (server.hasArg("program") && server.hasArg("enabled")) {
String program = server.arg("program");
bool enabled = server.arg("enabled") == "true";
if (program == "top_text") {
program_top_text_enabled = enabled;
} else if (program == "bottom_text") {
program_bottom_text_enabled = enabled;
} else if (program == "vehicles") {
program_vehicles_enabled = enabled;
} else {
server.send(400, "text/plain", "Unknown program");
return;
}
server.send(200, "text/plain", "OK");
} else {
server.send(400, "text/plain", "Missing program or enabled parameter");
}
}
void handleProgramStatus() {
StaticJsonDocument<128> doc;
doc["top_text"] = program_top_text_enabled;
doc["bottom_text"] = program_bottom_text_enabled;
doc["vehicles"] = program_vehicles_enabled;
doc["brightness"] = brightness;
String json;
serializeJson(doc, json);
server.send(200, "application/json", json);
}
void start_server()
{
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
pixels.clear();
scrollAllScrollableTexts(true);
pixels.show();
delay(50);
}
Serial.println("Connected to WiFi");
Serial.println(WiFi.localIP());
server.on("/", handleRoot);
server.on("/toggle-program", HTTP_POST, handleToggleProgram);
server.on("/program-status", HTTP_GET, handleProgramStatus);
server.on("/brightness", HTTP_POST, handleBrightness);
server.begin();
}
void handle_server()
{
server.handleClient();
}