#include "webui.h" AsyncWebServer webServer(80); const char *PARAM_MESSAGE = "message"; String processor(const String &var); void WebserverPOST_Callback(AsyncWebServerRequest *request); void WebserverNotFound_Callback(AsyncWebServerRequest *request); void Webserver_Callback(AsyncWebServerRequest *request); void initWebUI() { if (!LittleFS.begin()) { Serial.println("An Error has occurred while mounting LittleFS"); return; } webServer.serveStatic("/static/", LittleFS, "/static/"); webServer.onNotFound(WebserverNotFound_Callback); webServer.on("/index.htm", HTTP_GET, Webserver_Callback); webServer.on("/", HTTP_POST, WebserverPOST_Callback); webServer.begin(); } void UpdateWebUI() { } String processor(const String &var) { if (var == "TANK_REMAIN_CAPACITY") return String((PersistenceData.tankRemain_µl / 10) / LubeConfig.tankCapacity_ml); if (var == "LUBE_DISTANCE_NORMAL") return String(LubeConfig.DistancePerLube_Default); if (var == "LUBE_DISTANCE_RAIN") return String(LubeConfig.DistancePerLube_Rain); if (var == "TANK_CAPACITY") return String(LubeConfig.tankCapacity_ml); if (var == "AMOUNT_PER_DOSE") return String(LubeConfig.amountPerDose_µl); if (var == "TANK_REMIND") return String(LubeConfig.TankRemindAtPercentage); if (var == "PULSE_PER_REV") return String(LubeConfig.PulsePerRevolution); if (var == "TIRE_WIDTH_MM") return String(LubeConfig.TireWidth_mm); if (var == "TIRE_RATIO") return String(LubeConfig.TireWidthHeight_Ratio); if (var == "RIM_DIAMETER") return String(LubeConfig.RimDiameter_Inch); if (var == "DISTANCE_PER_REV") return String(LubeConfig.DistancePerRevolution_mm); if (var == "BLEEDING_PULSES") return String(LubeConfig.BleedingPulses); if (var == "SPEED_SOURCE") return String(SpeedSourceString[LubeConfig.SpeedSource]); if (var == "GPS_BAUD") return String(GPSBaudRateString[LubeConfig.GPSBaudRate]); #if PCB_REVISION == 13 if (var == "CAN_SOURCE") return String(CANSourceString[LubeConfig.CANSource]); #endif if (var == "CONFIG_CHECKSUM") return String(LubeConfig.checksum, 16); if (var == "WRITE_CYCLE_COUNT") return String(PersistenceData.writeCycleCounter); if (var == "TANK_REMAIN_UL") return String(PersistenceData.tankRemain_µl); if (var == "TRAVEL_DISTANCE_HIGHRES") return String(PersistenceData.TravelDistance_highRes); if (var == "PERSISTANCE_CHECKSUM") return String(PersistenceData.checksum, 16); if (var == "SHOW_IMPULSE_SETTINGS") return LubeConfig.SpeedSource == SOURCE_IMPULSE ? "" : "hidden"; if (var == "SHOW_CAN_SETTINGS") return LubeConfig.SpeedSource == SOURCE_CAN ? "" : "hidden"; if (var == "SHOW_GPS_SETTINGS") return LubeConfig.SpeedSource == SOURCE_GPS ? "" : "hidden"; if (var == "SOURCE_SELECT_OPTIONS") { String temp; for (uint32_t i = 0; i < SpeedSourceString_Elements; i++) temp = temp + ""; return temp; } if (var == "CANSOURCE_SELECT_OPTIONS") { String temp; for (uint32_t i = 0; i < CANSourceString_Elements; i++) temp = temp + ""; return temp; } if (var == "GPSBAUD_SELECT_OPTIONS") { String temp; for (uint32_t i = 0; i < GPSBaudRateString_Elements; i++) temp = temp + ""; return temp; } if (var == "SYSTEM_STATUS") return String(globals.systemStatustxt); if (var == "PLACEHOLDER") return "placeholder"; return String(); } void Webserver_Callback(AsyncWebServerRequest *request) { request->send(LittleFS, "/index.htm", String(), false, processor); } void WebserverPOST_Callback(AsyncWebServerRequest *request) { String message; if (request->hasParam(PARAM_MESSAGE, true)) { message = request->getParam(PARAM_MESSAGE, true)->value(); Serial.printf("POST: %s", message.c_str()); } } void WebserverNotFound_Callback(AsyncWebServerRequest *request) { request->send(404, "text/plain", "Not found"); }