WebUI adjusted and prepared EE-Backup-Stuff
This commit is contained in:
		| @@ -58,8 +58,8 @@ | |||||||
|         <p> |         <p> | ||||||
|         <h4>Tankinhalt verbleibend</h4> |         <h4>Tankinhalt verbleibend</h4> | ||||||
|         <div class="progress"> |         <div class="progress"> | ||||||
|           <div class="progress-bar text-light" role="progressbar" aria-valuenow="%TANK_REMAIN_CAPACITY%" aria-valuemin="0" |           <div class="progress-bar text-light" role="progressbar" aria-valuenow="%TANK_REMAIN_CAPACITY%" | ||||||
|             aria-valuemax="100" style="width: %TANK_REMAIN_CAPACITY%%"> |             aria-valuemin="0" aria-valuemax="100" style="width: %TANK_REMAIN_CAPACITY%%"> | ||||||
|             %TANK_REMAIN_CAPACITY%% |             %TANK_REMAIN_CAPACITY%% | ||||||
|           </div> |           </div> | ||||||
|         </div> |         </div> | ||||||
| @@ -76,10 +76,10 @@ | |||||||
|           <table class="table"> |           <table class="table"> | ||||||
|             <tbody> |             <tbody> | ||||||
|               <tr> |               <tr> | ||||||
|                 <th class="col-md-3" scope="col">Zeitstempel</th> |                 <th class="col-6" scope="col">Zeitstempel</th> | ||||||
|                 <th class="col-md-3" scope="col">Fehlercode</th> |                 <th class="col-2" scope="col">Fehlercode</th> | ||||||
|                 <th class="col-md-3" scope="col">Schwere</th> |                 <th class="col-2" scope="col">Schwere</th> | ||||||
|                 <th class="col-md-3" scope="col">Aktiv</th> |                 <th class="col-2" scope="col">Aktiv</th> | ||||||
|               </tr> |               </tr> | ||||||
|               %DTC_TABLE% |               %DTC_TABLE% | ||||||
|             </tbody> |             </tbody> | ||||||
| @@ -113,7 +113,7 @@ | |||||||
|             Dadurch wird die WiFi-Verbindung getrennt und muss neu aufgebaut werden. |             Dadurch wird die WiFi-Verbindung getrennt und muss neu aufgebaut werden. | ||||||
|           </div> |           </div> | ||||||
|           <div class="form-group row"> |           <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> |               <button name="sourcesave" type="submit" class="btn btn-outline-primary">Übernehmen</button> | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
| @@ -174,12 +174,13 @@ | |||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|             <div class="form-group row"> |             <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> |                 <button name="pulsesave" type="submit" class="btn btn-outline-primary">Speichern</button> | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|           </form> |           </form> | ||||||
|           </p> |           </p> | ||||||
|  |           <hr /> | ||||||
|         </div> |         </div> | ||||||
|         <!-- Div Source:Impulse Settings--> |         <!-- Div Source:Impulse Settings--> | ||||||
|         <!-- Div Source:CAN Settings--> |         <!-- Div Source:CAN Settings--> | ||||||
| @@ -197,12 +198,13 @@ | |||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|             <div class="form-group row"> |             <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> |                 <button name="cansave" type="submit" class="btn btn-outline-primary">Speichern</button> | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|           </form> |           </form> | ||||||
|           </p> |           </p> | ||||||
|  |           <hr /> | ||||||
|         </div> |         </div> | ||||||
|         <!-- Div Source:CAN Settings--> |         <!-- Div Source:CAN Settings--> | ||||||
|         <!-- Div Source:GPS Settings--> |         <!-- Div Source:GPS Settings--> | ||||||
| @@ -220,12 +222,13 @@ | |||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|             <div class="form-group row"> |             <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> |                 <button name="gpssave" type="submit" class="btn btn-outline-primary">Speichern</button> | ||||||
|               </div> |               </div> | ||||||
|             </div> |             </div> | ||||||
|           </form> |           </form> | ||||||
|           </p> |           </p> | ||||||
|  |           <hr /> | ||||||
|         </div> |         </div> | ||||||
|         <!-- Div Source:GPS Settings--> |         <!-- Div Source:GPS Settings--> | ||||||
|       </div> |       </div> | ||||||
| @@ -234,8 +237,8 @@ | |||||||
|       <div id="tab_lube" class="tab-pane fade" role="tabpanel"> |       <div id="tab_lube" class="tab-pane fade" role="tabpanel"> | ||||||
|         <h3>Schmierung</h3> |         <h3>Schmierung</h3> | ||||||
|         <hr /> |         <hr /> | ||||||
|         <h4>Dosierung</h4> |  | ||||||
|         <p> |         <p> | ||||||
|  |         <h4>Dosierung</h4> | ||||||
|         <form action="post.htm" method="POST" class="form-horizontal"> |         <form action="post.htm" method="POST" class="form-horizontal"> | ||||||
|           <div class="form-group row"> |           <div class="form-group row"> | ||||||
|             <label for="lubedistancenormal" class="control-label col-4">Normal (grün)</label> |             <label for="lubedistancenormal" class="control-label col-4">Normal (grün)</label> | ||||||
| @@ -262,7 +265,7 @@ | |||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|           <div class="form-group row"> |           <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> |               <button name="oilsave" type="submit" class="btn btn-outline-primary">Speichern</button> | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
| @@ -327,7 +330,7 @@ | |||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|           <div class="form-group row"> |           <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="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> |               <button name="resettank" type="submit" class="btn btn-outline-primary ml-2">Tank zurücksetzen</button> | ||||||
|             </div> |             </div> | ||||||
| @@ -350,7 +353,7 @@ | |||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|           <div class="form-group row"> |           <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="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> |               <button name="purgenow" type="submit" class="btn btn-outline-primary ml-2">Entlüftung starten</button> | ||||||
|             </div> |             </div> | ||||||
| @@ -358,8 +361,8 @@ | |||||||
|         </form> |         </form> | ||||||
|         </p> |         </p> | ||||||
|         <hr /> |         <hr /> | ||||||
|         <h4>EEPROM formatieren</h4> |  | ||||||
|         <p> |         <p> | ||||||
|  |         <h4>EEPROM formatieren</h4> | ||||||
|         <div class="alert alert-primary alert-dismissable show fade" role="alert"> |         <div class="alert alert-primary alert-dismissable show fade" role="alert"> | ||||||
|           <button type="button" class="close" data-dismiss="alert" aria-label="Close"> |           <button type="button" class="close" data-dismiss="alert" aria-label="Close"> | ||||||
|             <span aria-hidden="true">×</span> |             <span aria-hidden="true">×</span> | ||||||
| @@ -389,26 +392,37 @@ | |||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|           <div class="form-group row"> |           <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> |               <button name="reset_ee_btn" type="submit" class="btn btn-outline-primary">EEPROM formatieren</button> | ||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|         </form> |         </form> | ||||||
|         </p> |         </p> | ||||||
|         <hr /> |         <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> | ||||||
|       <!-- Div Tab Maintenance --> |       <!-- Div Tab Maintenance --> | ||||||
|       <!-- Div Tab SystemInfo --> |       <!-- Div Tab SystemInfo --> | ||||||
|       <div id="tab_sysinfo" class="tab-pane fade" role="tabpanel"> |       <div id="tab_sysinfo" class="tab-pane fade" role="tabpanel"> | ||||||
|         <h3>Systeminfo</h3> |         <h3>Systeminfo</h3> | ||||||
|         <hr /> |         <hr /> | ||||||
|         <h4>Einstellungen</h4> |  | ||||||
|         <p> |         <p> | ||||||
|  |         <h4>Einstellungen</h4> | ||||||
|         <table class="table"> |         <table class="table"> | ||||||
|           <tbody> |           <tbody> | ||||||
|             <tr> |             <tr> | ||||||
|               <th class="col-md-8" scope="col">Parameter</td> |               <th class="col-7" scope="col">Parameter</td> | ||||||
|               <th class="col-md-4" scope="col">Value</td> |               <th class="col-5" scope="col">Value</td> | ||||||
|             </tr> |             </tr> | ||||||
|             <tr> |             <tr> | ||||||
|               <td>DistancePerLube_Default</td> |               <td>DistancePerLube_Default</td> | ||||||
| @@ -473,13 +487,14 @@ | |||||||
|           </tbody> |           </tbody> | ||||||
|         </table> |         </table> | ||||||
|         </p> |         </p> | ||||||
|         <h4>Betriebsdaten</h4> |         <hr /> | ||||||
|         <p> |         <p> | ||||||
|  |         <h4>Betriebsdaten</h4> | ||||||
|         <table class="table"> |         <table class="table"> | ||||||
|           <tbody> |           <tbody> | ||||||
|             <tr> |             <tr> | ||||||
|               <th class="col-md-8" scope="col">Parameter</td> |               <th class="col-7" scope="col">Parameter</td> | ||||||
|               <th class="col-md-4" scope="col">Value</td> |               <th class="col-5" scope="col">Value</td> | ||||||
|             </tr> |             </tr> | ||||||
|             <tr> |             <tr> | ||||||
|               <td>writeCycleCounter</td> |               <td>writeCycleCounter</td> | ||||||
| @@ -507,6 +522,7 @@ | |||||||
|             </tr> |             </tr> | ||||||
|         </table> |         </table> | ||||||
|         </p> |         </p> | ||||||
|  |         <hr /> | ||||||
|       </div> |       </div> | ||||||
|       <!-- Div Tab SystemInfo --> |       <!-- Div Tab SystemInfo --> | ||||||
|       <!-- Div Tab Firmware Update--> |       <!-- Div Tab Firmware Update--> | ||||||
| @@ -517,6 +533,10 @@ | |||||||
|         <h4>Version-Info</h4> |         <h4>Version-Info</h4> | ||||||
|         <table class="table"> |         <table class="table"> | ||||||
|           <tbody> |           <tbody> | ||||||
|  |             <tr> | ||||||
|  |               <th class="col-7" scope="col">Parameter</td> | ||||||
|  |               <th class="col-5" scope="col">Value</td> | ||||||
|  |             </tr> | ||||||
|             <tr> |             <tr> | ||||||
|               <td>Firmware Version</td> |               <td>Firmware Version</td> | ||||||
|               <td>%SW_VERSION%</td> |               <td>%SW_VERSION%</td> | ||||||
| @@ -529,6 +549,33 @@ | |||||||
|         </p> |         </p> | ||||||
|         <hr /> |         <hr /> | ||||||
|         <p> |         <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> |         <h4>Firmware-Update</h4> | ||||||
|         <form method='POST' action='doUpdate' enctype='multipart/form-data'> |         <form method='POST' action='doUpdate' enctype='multipart/form-data'> | ||||||
|           <div class="form-group row"> |           <div class="form-group row"> | ||||||
| @@ -539,10 +586,13 @@ | |||||||
|             </div> |             </div> | ||||||
|           </div> |           </div> | ||||||
|           <div class="form-group row"> |           <div class="form-group row"> | ||||||
|  |             <div class="col text-center"> | ||||||
|               <button name="submit" type="submit" class="btn btn-outline-primary">Update starten</button> |               <button name="submit" type="submit" class="btn btn-outline-primary">Update starten</button> | ||||||
|             </div> |             </div> | ||||||
|  |           </div> | ||||||
|         </form> |         </form> | ||||||
|         </p> |         </p> | ||||||
|  |         <hr /> | ||||||
|       </div> |       </div> | ||||||
|       <!-- Div Tab Firmware Update--> |       <!-- Div Tab Firmware Update--> | ||||||
|     </div> |     </div> | ||||||
|   | |||||||
| @@ -59,3 +59,4 @@ lib_deps = | |||||||
|     robtillaart/I2C_EEPROM @ ^1.5.2 |     robtillaart/I2C_EEPROM @ ^1.5.2 | ||||||
|     mikalhart/TinyGPSPlus @ ^1.0.3 |     mikalhart/TinyGPSPlus @ ^1.0.3 | ||||||
|     me-no-dev/ESP Async WebServer @ ^1.2.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 WebserverNotFound_Callback(AsyncWebServerRequest *request); | ||||||
| void Webserver_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 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 GetFlashVersion(char *buff, size_t buff_size); | ||||||
|  |  | ||||||
| void initWebUI() | void initWebUI() | ||||||
| @@ -37,8 +39,11 @@ void initWebUI() | |||||||
|   webServer.onNotFound(WebserverNotFound_Callback); |   webServer.onNotFound(WebserverNotFound_Callback); | ||||||
|   webServer.on("/index.htm", HTTP_GET, Webserver_Callback); |   webServer.on("/index.htm", HTTP_GET, Webserver_Callback); | ||||||
|   webServer.on("/post.htm", HTTP_POST, WebserverPOST_Callback); |   webServer.on("/post.htm", HTTP_POST, WebserverPOST_Callback); | ||||||
|  |   webServer.on("/eejson", HTTP_GET, WebServerEEJSON_Callback); | ||||||
|   webServer.on( |   webServer.on( | ||||||
|       "/doUpdate", HTTP_POST, [](AsyncWebServerRequest *request) {}, WebserverFirmwareUpdate_Callback); |       "/doUpdate", HTTP_POST, [](AsyncWebServerRequest *request) {}, WebserverFirmwareUpdate_Callback); | ||||||
|  |   webServer.on( | ||||||
|  |       "/eeRestore", HTTP_POST, [](AsyncWebServerRequest *request) {}, WebserverEERestore_Callback); | ||||||
|  |  | ||||||
|   webServer.begin(); |   webServer.begin(); | ||||||
| } | } | ||||||
| @@ -327,6 +332,10 @@ void WebserverPOST_Callback(AsyncWebServerRequest *request) | |||||||
|       globals.systemStatus = sysStat_Purge; |       globals.systemStatus = sysStat_Purge; | ||||||
|       globals.purgePulses = LubeConfig.BleedingPulses; |       globals.purgePulses = LubeConfig.BleedingPulses; | ||||||
|     } |     } | ||||||
|  |     if(p->name() == "reboot") | ||||||
|  |     { | ||||||
|  |       globals.systemStatus = sysStat_Shutdown; | ||||||
|  |     } | ||||||
|     // end: POST Form Maintenance |     // 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 <ESPAsyncWebServer.h> | ||||||
| #include <Updater.h> | #include <Updater.h> | ||||||
| #include <ESP8266mDNS.h> | #include <ESP8266mDNS.h> | ||||||
|  | #include <AsyncJson.h> | ||||||
|  | #include <ArduinoJson.h> | ||||||
|  |  | ||||||
| #include "config.h" | #include "config.h" | ||||||
| #include "globals.h" | #include "globals.h" | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user