88 lines
2.2 KiB
Arduino
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();
|
|
}
|