52 lines
1.3 KiB
C++
52 lines
1.3 KiB
C++
/*
|
|
* ESP8266 RGBW controller
|
|
* Copyright 2020 (c) Mark van Renswoude
|
|
*
|
|
* https://git.x2software.net/pub/RGBWifi
|
|
*/
|
|
#include "./api.h"
|
|
#include "../debug.h"
|
|
#include "../global.h"
|
|
|
|
|
|
void handleSetStatic(AsyncWebServerRequest *request)
|
|
{
|
|
_dln("API :: set/static");
|
|
|
|
AsyncWebParameter* rParam = request->getParam("r");
|
|
AsyncWebParameter* gParam = request->getParam("g");
|
|
AsyncWebParameter* bParam = request->getParam("b");
|
|
AsyncWebParameter* wParam = request->getParam("w");
|
|
|
|
if (rParam == nullptr || gParam == nullptr || bParam == nullptr || wParam == nullptr)
|
|
{
|
|
request->send(400);
|
|
return;
|
|
}
|
|
|
|
RgbwColor* color = new RgbwColor(rParam->value().toInt(), gParam->value().toInt(), bParam->value().toInt(), wParam->value().toInt());
|
|
strip->setStatic(*color);
|
|
delete color;
|
|
|
|
request->send(200);
|
|
}
|
|
|
|
|
|
void handleSetRainbow(AsyncWebServerRequest *request)
|
|
{
|
|
_dln("API :: set/rainbow");
|
|
|
|
AsyncWebParameter* speedParam = request->getParam("speed");
|
|
|
|
uint16_t speed = speedParam == nullptr ? 0 : speedParam->value().toInt();
|
|
strip->setRainbow(speed);
|
|
|
|
request->send(200);
|
|
}
|
|
|
|
|
|
void registerAPIRoutes(AsyncWebServer* server)
|
|
{
|
|
server->on("/api/set/static", HTTP_GET, handleSetStatic);
|
|
server->on("/api/set/rainbow", HTTP_GET, handleSetRainbow);
|
|
} |