solar_radiation.cpp
1 #include "routes.h" 2 #include <manager.h> 3 4 #include <ESPAsyncWebServer.h> 5 #include <AsyncJson.h> 6 #include <ArduinoJson.h> 7 8 namespace { 9 10 void handle_get(AsyncWebServerRequest *request) { 11 SolarRadiationSensorData sensor_data = {}; 12 bool ok = sensors::manager::accessSolarRadiation(&sensor_data); 13 14 AsyncJsonResponse *response = new AsyncJsonResponse(); 15 JsonObject root = response->getRoot().to<JsonObject>(); 16 root["ok"] = ok && sensor_data.ok; 17 JsonObject data = root["data"].to<JsonObject>(); 18 if (ok && sensor_data.ok) { 19 data["watts_per_square_meter"] = sensor_data.watts_per_square_meter; 20 } 21 response->setLength(); 22 request->send(response); 23 } 24 25 } 26 27 void services::http::api::sensors::solar_radiation::registerRoutes(AsyncWebServer &server) { 28 server.on("/api/sensors/solar-radiation", HTTP_GET, handle_get); 29 }