// // Created by lukas on 06.12.20. // #include "GeneralInfoService.h" #include "Pins.h" #include "Timer.h" GeneralInfoService::GeneralInfoService(AsyncWebServer *server, float *lasthum, float *lasttemp) : hum(lasthum), temp(lasttemp), lastPumpTime(0), lastWaterOutage(0), lastPumpDuration(0) { server->on(GENERALINFO_SERVICE_PATH, HTTP_GET, std::bind(&GeneralInfoService::reply, this, std::placeholders::_1)); } void GeneralInfoService::reply(AsyncWebServerRequest *request) { AsyncJsonResponse *response = new AsyncJsonResponse(false, MAX_FEATURES_SIZE); JsonObject root = response->getRoot(); root["temp"] = *temp; root["hum"] = *hum; const uint32_t systime = Timer::getSystemSeconds(); root["lastpumptime"] = lastPumpTime != 0 ? systime - lastPumpTime : 0; root["lastWaterOutage"] = lastWaterOutage != 0 ? systime - lastWaterOutage : 0; root["lastPumpDuration"] = lastPumpDuration != 0 ? lastPumpDuration : 0; root["runtime"] = systime; root["watersensor"] = digitalRead(WasserSensorPin) ? true : false; root["pressuresensor"] = digitalRead(DruckSensorPin) ? true : false; root["version"] = VERSION; response->setLength(); request->send(response); } void GeneralInfoService::setlastPumpTime(uint32_t lastPumpTime) { this->lastPumpTime = lastPumpTime; } void GeneralInfoService::setlastWaterOutage(uint32_t lastWaterOutage) { this->lastWaterOutage = lastWaterOutage; } void GeneralInfoService::setPumpDuration(uint32_t lastPumpDuration) { this->lastPumpDuration = lastPumpDuration; }