pressure.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 BarometricPressureSensorData sensor_data = {}; 12 bool ok = sensors::manager::accessBarometricPressure(&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["pressure_hpa"] = sensor_data.pressure_hpa; 20 data["temperature_celsius"] = sensor_data.temperature_celsius; 21 data["model"] = sensor_data.model; 22 } 23 response->setLength(); 24 request->send(response); 25 } 26 27 } 28 29 void services::http::api::sensors::pressure::registerRoutes(AsyncWebServer &server) { 30 server.on("/api/sensors/pressure", HTTP_GET, handle_get); 31 }