WebUI adjusted and prepared EE-Backup-Stuff
This commit is contained in:
@@ -9,6 +9,8 @@ void WebserverPOST_Callback(AsyncWebServerRequest *request);
|
||||
void WebserverNotFound_Callback(AsyncWebServerRequest *request);
|
||||
void Webserver_Callback(AsyncWebServerRequest *request);
|
||||
void WebserverFirmwareUpdate_Callback(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final);
|
||||
void WebserverEERestore_Callback(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final);
|
||||
void WebServerEEJSON_Callback(AsyncWebServerRequest *request);
|
||||
void GetFlashVersion(char *buff, size_t buff_size);
|
||||
|
||||
void initWebUI()
|
||||
@@ -37,8 +39,11 @@ void initWebUI()
|
||||
webServer.onNotFound(WebserverNotFound_Callback);
|
||||
webServer.on("/index.htm", HTTP_GET, Webserver_Callback);
|
||||
webServer.on("/post.htm", HTTP_POST, WebserverPOST_Callback);
|
||||
webServer.on("/eejson", HTTP_GET, WebServerEEJSON_Callback);
|
||||
webServer.on(
|
||||
"/doUpdate", HTTP_POST, [](AsyncWebServerRequest *request) {}, WebserverFirmwareUpdate_Callback);
|
||||
webServer.on(
|
||||
"/eeRestore", HTTP_POST, [](AsyncWebServerRequest *request) {}, WebserverEERestore_Callback);
|
||||
|
||||
webServer.begin();
|
||||
}
|
||||
@@ -327,6 +332,10 @@ void WebserverPOST_Callback(AsyncWebServerRequest *request)
|
||||
globals.systemStatus = sysStat_Purge;
|
||||
globals.purgePulses = LubeConfig.BleedingPulses;
|
||||
}
|
||||
if(p->name() == "reboot")
|
||||
{
|
||||
globals.systemStatus = sysStat_Shutdown;
|
||||
}
|
||||
// end: POST Form Maintenance
|
||||
}
|
||||
}
|
||||
@@ -395,3 +404,100 @@ void WebserverFirmwareUpdate_Callback(AsyncWebServerRequest *request, const Stri
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WebserverEERestore_Callback(AsyncWebServerRequest *request, const String &filename, size_t index, uint8_t *data, size_t len, bool final)
|
||||
{
|
||||
|
||||
bool ee_done = false;
|
||||
bool validext = false;
|
||||
|
||||
if (!index)
|
||||
{
|
||||
Serial.println("EEPROM restore");
|
||||
size_t content_len = request->contentLength();
|
||||
validext = (filename.indexOf(".ee.json") > -1);
|
||||
}
|
||||
|
||||
if (validext)
|
||||
{
|
||||
Serial.println("Restoring EEPROM-Stuff");
|
||||
}
|
||||
|
||||
if (final)
|
||||
{
|
||||
AsyncWebServerResponse *response = request->beginResponse(302, "text/plain", "Please wait while the device reboots");
|
||||
response->addHeader("Refresh", "20");
|
||||
response->addHeader("Location", "/");
|
||||
request->send(response);
|
||||
if (ee_done)
|
||||
{
|
||||
Serial.println("Update complete");
|
||||
Serial.flush();
|
||||
globals.systemStatus = sysStat_Shutdown;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WebServerEEJSON_Callback(AsyncWebServerRequest *request)
|
||||
{
|
||||
AsyncResponseStream *response = request->beginResponseStream("application/json");
|
||||
DynamicJsonDocument json(1024);
|
||||
JsonObject fwinfo = json.createNestedObject("info");
|
||||
|
||||
char buffer[16];
|
||||
|
||||
fwinfo["DeviceName"] = globals.DeviceName;
|
||||
fwinfo["FW-Version"] = QUOTE(SW_VERSION);
|
||||
fwinfo["FS-Version"] = globals.FlashVersion;
|
||||
|
||||
JsonObject config = json.createNestedObject("config");
|
||||
|
||||
config["EEPROM_Version"] = LubeConfig.EEPROM_Version;
|
||||
config["DistancePerLube_Default"] = LubeConfig.DistancePerLube_Default;
|
||||
config["DistancePerLube_Rain"] = LubeConfig.DistancePerLube_Rain;
|
||||
config["tankCapacity_ml"] = LubeConfig.tankCapacity_ml;
|
||||
config["amountPerDose_µl"] = LubeConfig.amountPerDose_µl;
|
||||
config["TankRemindAtPercentage"] = LubeConfig.TankRemindAtPercentage;
|
||||
config["PulsePerRevolution"] = LubeConfig.PulsePerRevolution;
|
||||
config["TireWidth_mm"] = LubeConfig.TireWidth_mm;
|
||||
config["TireWidthHeight_Ratio"] = LubeConfig.TireWidthHeight_Ratio;
|
||||
config["RimDiameter_Inch"] = LubeConfig.RimDiameter_Inch;
|
||||
config["DistancePerRevolution_mm"] = LubeConfig.DistancePerRevolution_mm;
|
||||
config["BleedingPulses"] = LubeConfig.BleedingPulses;
|
||||
config["SpeedSource"] = LubeConfig.SpeedSource;
|
||||
config["SpeedSource_Str"] = SpeedSourceString[LubeConfig.SpeedSource];
|
||||
#ifdef FEATURE_ENABLE_GPS
|
||||
config["GPSBaudRate"] = LubeConfig.GPSBaudRate;
|
||||
config["GPSBaudRate_Str"] = GPSBaudRateString[LubeConfig.GPSBaudRate];
|
||||
#endif
|
||||
#ifdef FEATURE_ENABLE_CAN
|
||||
config["CANSource"] = LubeConfig.CANSource;
|
||||
config["CANSource_Str"] = CANSourceString[LubeConfig.CANSource];
|
||||
#endif
|
||||
sprintf(buffer, "0x%08X", LubeConfig.checksum);
|
||||
config["checksum"] = buffer;
|
||||
|
||||
JsonObject eepart = json.createNestedObject("eepart");
|
||||
|
||||
sprintf(buffer, "0x%04X", globals.eePersistanceAdress);
|
||||
eepart["PersistanceAddress"] = buffer;
|
||||
|
||||
JsonObject persis = json.createNestedObject("persis");
|
||||
|
||||
persis["writeCycleCounter"] = PersistenceData.writeCycleCounter;
|
||||
persis["tankRemain_µl"] = PersistenceData.tankRemain_µl;
|
||||
persis["TravelDistance_highRes_mm"] = PersistenceData.TravelDistance_highRes_mm;
|
||||
persis["odometer_mm"] = PersistenceData.odometer_mm;
|
||||
persis["odometer"] = PersistenceData.odometer;
|
||||
sprintf(buffer, "0x%08X", PersistenceData.checksum);
|
||||
persis["checksum"] = buffer;
|
||||
|
||||
serializeJsonPretty(json, *response);
|
||||
|
||||
response->addHeader("Content-disposition", "attachment; filename=backup.ee.json");
|
||||
|
||||
request->send(response);
|
||||
}
|
@@ -8,6 +8,8 @@
|
||||
#include <ESPAsyncWebServer.h>
|
||||
#include <Updater.h>
|
||||
#include <ESP8266mDNS.h>
|
||||
#include <AsyncJson.h>
|
||||
#include <ArduinoJson.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "globals.h"
|
||||
|
Reference in New Issue
Block a user