#include "json_builder.h" #include #include "../global_data/water_data_queue.h" extern DeviceTelemetry telemetry; extern NetworkData wifi_data; extern NetworkData ethernet_data; extern SensorData shunt_data; StaticJsonDocument<128> build_shunt_data_json(SensorData data) { StaticJsonDocument<128> doc; doc["bus_voltage"] = data.bus_voltage; doc["shunt_voltage"] = data.shunt_voltage; doc["current"] = data.shunt_current; return doc; } StaticJsonDocument<128> build_water_data_json(WaterData data) { StaticJsonDocument<128> doc; doc["percentage"] = data.percentage; doc["water_height"] = data.level; doc["liters"] = data.liters; return doc; } StaticJsonDocument<128> build_telemetry_json(DeviceTelemetry data) { StaticJsonDocument<128> doc; doc["uptime_seconds"] = data.uptime_seconds; doc["heap_percent"] = data.heap_used_percent; doc["temperature"] = data.temperature; return doc; } StaticJsonDocument<256> build_network_json(NetworkData wired, NetworkData wireless) { StaticJsonDocument<256> doc; doc["wifi"]["ip"] = wireless.ip_address; doc["wifi"]["rssi"] = wireless.rssi; doc["wifi"]["link"] = wireless.link; doc["wifi"]["ssid"] = wireless.network_name; doc["ethernet"]["ip"] = wired.ip_address; doc["ethernet"]["rssi"] = wired.rssi; doc["ethernet"]["link"] = wired.link; return doc; } StaticJsonDocument<128> build_ota_json(OTAStatus status) { StaticJsonDocument<256> doc; doc["update_available"] = status.update_available; doc["current_version"] = String(status.current_version.major) + "." + String(status.current_version.minor) + "." + String(status.current_version.patch); doc["new_version"] = String(status.latest_version.major) + "." + String(status.latest_version.minor) + "." + String(status.latest_version.patch); doc["progress"] = status.update_progress; return doc; }