WebUI adjusted and prepared EE-Backup-Stuff
This commit is contained in:
parent
64f9e102a5
commit
371e21429d
@ -58,8 +58,8 @@
|
||||
<p>
|
||||
<h4>Tankinhalt verbleibend</h4>
|
||||
<div class="progress">
|
||||
<div class="progress-bar text-light" role="progressbar" aria-valuenow="%TANK_REMAIN_CAPACITY%" aria-valuemin="0"
|
||||
aria-valuemax="100" style="width: %TANK_REMAIN_CAPACITY%%">
|
||||
<div class="progress-bar text-light" role="progressbar" aria-valuenow="%TANK_REMAIN_CAPACITY%"
|
||||
aria-valuemin="0" aria-valuemax="100" style="width: %TANK_REMAIN_CAPACITY%%">
|
||||
%TANK_REMAIN_CAPACITY%%
|
||||
</div>
|
||||
</div>
|
||||
@ -76,10 +76,10 @@
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="col-md-3" scope="col">Zeitstempel</th>
|
||||
<th class="col-md-3" scope="col">Fehlercode</th>
|
||||
<th class="col-md-3" scope="col">Schwere</th>
|
||||
<th class="col-md-3" scope="col">Aktiv</th>
|
||||
<th class="col-6" scope="col">Zeitstempel</th>
|
||||
<th class="col-2" scope="col">Fehlercode</th>
|
||||
<th class="col-2" scope="col">Schwere</th>
|
||||
<th class="col-2" scope="col">Aktiv</th>
|
||||
</tr>
|
||||
%DTC_TABLE%
|
||||
</tbody>
|
||||
@ -113,7 +113,7 @@
|
||||
Dadurch wird die WiFi-Verbindung getrennt und muss neu aufgebaut werden.
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8">
|
||||
<div class="col text-center">
|
||||
<button name="sourcesave" type="submit" class="btn btn-outline-primary">Übernehmen</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -174,12 +174,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8">
|
||||
<div class="col text-center">
|
||||
<button name="pulsesave" type="submit" class="btn btn-outline-primary">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
</div>
|
||||
<!-- Div Source:Impulse Settings-->
|
||||
<!-- Div Source:CAN Settings-->
|
||||
@ -197,12 +198,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8">
|
||||
<div class="col text-center">
|
||||
<button name="cansave" type="submit" class="btn btn-outline-primary">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
</div>
|
||||
<!-- Div Source:CAN Settings-->
|
||||
<!-- Div Source:GPS Settings-->
|
||||
@ -220,12 +222,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8">
|
||||
<div class="col text-center">
|
||||
<button name="gpssave" type="submit" class="btn btn-outline-primary">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
</div>
|
||||
<!-- Div Source:GPS Settings-->
|
||||
</div>
|
||||
@ -234,8 +237,8 @@
|
||||
<div id="tab_lube" class="tab-pane fade" role="tabpanel">
|
||||
<h3>Schmierung</h3>
|
||||
<hr />
|
||||
<h4>Dosierung</h4>
|
||||
<p>
|
||||
<h4>Dosierung</h4>
|
||||
<form action="post.htm" method="POST" class="form-horizontal">
|
||||
<div class="form-group row">
|
||||
<label for="lubedistancenormal" class="control-label col-4">Normal (grün)</label>
|
||||
@ -262,7 +265,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8">
|
||||
<div class="col text-center">
|
||||
<button name="oilsave" type="submit" class="btn btn-outline-primary">Speichern</button>
|
||||
</div>
|
||||
</div>
|
||||
@ -327,7 +330,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8 row">
|
||||
<div class="col text-center">
|
||||
<button name="oilsave" type="submit" class="btn btn-outline-primary">Speichern</button>
|
||||
<button name="resettank" type="submit" class="btn btn-outline-primary ml-2">Tank zurücksetzen</button>
|
||||
</div>
|
||||
@ -350,7 +353,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8 row">
|
||||
<div class="col text-center">
|
||||
<button name="maintsave" type="submit" class="btn btn-outline-primary">Speichern</button>
|
||||
<button name="purgenow" type="submit" class="btn btn-outline-primary ml-2">Entlüftung starten</button>
|
||||
</div>
|
||||
@ -358,8 +361,8 @@
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
<h4>EEPROM formatieren</h4>
|
||||
<p>
|
||||
<h4>EEPROM formatieren</h4>
|
||||
<div class="alert alert-primary alert-dismissable show fade" role="alert">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true">×</span>
|
||||
@ -389,26 +392,37 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="offset-4 col-8">
|
||||
<div class="col text-center">
|
||||
<button name="reset_ee_btn" type="submit" class="btn btn-outline-primary">EEPROM formatieren</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<h4>Gerät neustarten</h4>
|
||||
<form action="post.htm" method="POST" class="form-horizontal">
|
||||
<div class="form-group row">
|
||||
<div class="col text-center">
|
||||
<button name="reboot" type="submit" class="btn btn-outline-primary">Reboot</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
</div>
|
||||
<!-- Div Tab Maintenance -->
|
||||
<!-- Div Tab SystemInfo -->
|
||||
<div id="tab_sysinfo" class="tab-pane fade" role="tabpanel">
|
||||
<h3>Systeminfo</h3>
|
||||
<hr />
|
||||
<h4>Einstellungen</h4>
|
||||
<p>
|
||||
<h4>Einstellungen</h4>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="col-md-8" scope="col">Parameter</td>
|
||||
<th class="col-md-4" scope="col">Value</td>
|
||||
<th class="col-7" scope="col">Parameter</td>
|
||||
<th class="col-5" scope="col">Value</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>DistancePerLube_Default</td>
|
||||
@ -473,13 +487,14 @@
|
||||
</tbody>
|
||||
</table>
|
||||
</p>
|
||||
<h4>Betriebsdaten</h4>
|
||||
<hr />
|
||||
<p>
|
||||
<h4>Betriebsdaten</h4>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="col-md-8" scope="col">Parameter</td>
|
||||
<th class="col-md-4" scope="col">Value</td>
|
||||
<th class="col-7" scope="col">Parameter</td>
|
||||
<th class="col-5" scope="col">Value</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>writeCycleCounter</td>
|
||||
@ -507,6 +522,7 @@
|
||||
</tr>
|
||||
</table>
|
||||
</p>
|
||||
<hr />
|
||||
</div>
|
||||
<!-- Div Tab SystemInfo -->
|
||||
<!-- Div Tab Firmware Update-->
|
||||
@ -517,6 +533,10 @@
|
||||
<h4>Version-Info</h4>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="col-7" scope="col">Parameter</td>
|
||||
<th class="col-5" scope="col">Value</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Firmware Version</td>
|
||||
<td>%SW_VERSION%</td>
|
||||
@ -529,6 +549,33 @@
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<h4>EEPROM-Backup</h4>
|
||||
<div class="form-group row">
|
||||
<div class="col text-center">
|
||||
<a class="btn btn-outline-primary" href="eejson" role="button" id="ee-backup-download">Download</a>
|
||||
</div>
|
||||
</div>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<h4>EEPROM-Restore</h4>
|
||||
<form method='POST' action='eeRestore' enctype='multipart/form-data'>
|
||||
<div class="form-group row">
|
||||
<div class="custom-file">
|
||||
<input type="file" name="ee-restore-file" class="custom-file-input" id="ee-restore-file" accept=".ee.json"
|
||||
required />
|
||||
<label class="custom-file-label" for="ee-restore-file">EEPROM-Backup auswählen</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col text-center">
|
||||
<button name="submit" type="submit" class="btn btn-outline-primary">Restore starten</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
<p>
|
||||
<h4>Firmware-Update</h4>
|
||||
<form method='POST' action='doUpdate' enctype='multipart/form-data'>
|
||||
<div class="form-group row">
|
||||
@ -539,10 +586,13 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group row">
|
||||
<div class="col text-center">
|
||||
<button name="submit" type="submit" class="btn btn-outline-primary">Update starten</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</p>
|
||||
<hr />
|
||||
</div>
|
||||
<!-- Div Tab Firmware Update-->
|
||||
</div>
|
||||
|
@ -59,3 +59,4 @@ lib_deps =
|
||||
robtillaart/I2C_EEPROM @ ^1.5.2
|
||||
mikalhart/TinyGPSPlus @ ^1.0.3
|
||||
me-no-dev/ESP Async WebServer @ ^1.2.3
|
||||
bblanchon/ArduinoJson @ ^6.19.4
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user