From 427c202567bbf681c3668f2e7b770b49c5ee0435 Mon Sep 17 00:00:00 2001 From: bendtherules Date: Tue, 28 Nov 2023 19:09:05 +0530 Subject: [PATCH] Remote update progress --- build/esp12e/firmware.bin | Bin 394544 -> 395008 bytes include/version.h | 6 +++--- src/myOTA.cpp | 44 ++++++++++++++++++++++---------------- versioning | 2 +- 4 files changed, 29 insertions(+), 23 deletions(-) diff --git a/build/esp12e/firmware.bin b/build/esp12e/firmware.bin index bc064c415aaa84b62b4537a26634c945ad09b43e..07c69b7394083efb9e340ae612598f425d752acf 100644 GIT binary patch delta 27492 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 WW6A{r0YF!ER5MRx*rc`pCHxD|>djRE delta 26925 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 diff --git a/include/version.h b/include/version.h index 83aced3..a4d01ec 100644 --- a/include/version.h +++ b/include/version.h @@ -1,9 +1,9 @@ #ifndef BUILD_NUMBER - #define BUILD_NUMBER 47 + #define BUILD_NUMBER 48 #endif #ifndef VERSION - #define VERSION "v0.1.47 - 2023-11-28 18:50:16.207931" + #define VERSION "v0.1.48 - 2023-11-28 19:08:40.189843" #endif #ifndef VERSION_SHORT - #define VERSION_SHORT "v0.1.47" + #define VERSION_SHORT "v0.1.48" #endif diff --git a/src/myOTA.cpp b/src/myOTA.cpp index 6f5c0c1..e3233c1 100644 --- a/src/myOTA.cpp +++ b/src/myOTA.cpp @@ -34,7 +34,7 @@ void setupOTALocal() { showInsideInfo("LU:Restarting.."); }); ArduinoOTA.onProgress([](unsigned int progress, unsigned int total) { - Serial.printf("Progress:%u%%\r", (progress / (total / 100))); + Serial.printf("LU: Progress:%u%%\r", (progress / (total / 100))); { char infoBuffer[LCD_COLUMNS]; sprintf(infoBuffer, "LU:P:%u%%", (progress / (total / 100))); @@ -73,22 +73,28 @@ void handleOTALocal() { void handleOTARemote() { WiFiClient client; - Serial.println("Updating from remote..."); - showInsideInfo("RU:Start"); - t_httpUpdate_return ret = ESPhttpUpdate.update(client, "http://patient.bendtherules.in/build/esp12e/firmware.bin", VERSION_SHORT); - switch(ret) { - case HTTP_UPDATE_FAILED: - Serial.print("update:Update failed. Reason - "); - Serial.println(ESPhttpUpdate.getLastErrorString()); - showInsideInfo("RU:Failed"); - break; - case HTTP_UPDATE_NO_UPDATES: - Serial.println("update:Update no Update."); - showInsideInfo("RU:Skip"); - break; - case HTTP_UPDATE_OK: - Serial.println("update:Update ok."); // may not be called since we reboot the ESP - showInsideInfo("RU:Done"); - break; - } + ESPhttpUpdate.setLedPin(LED_BUILTIN, LOW); + ESPhttpUpdate.onStart([]() { + Serial.println("RU: Started"); + showInsideInfo("RU:Started"); + }); + ESPhttpUpdate.onEnd([]() { + Serial.println("RU: Finished. Restarting.."); + showInsideInfo("RU:Restarting.."); + }); + ESPhttpUpdate.onProgress([](unsigned int progress, unsigned int total) { + Serial.printf("RU: Progress:%u%%\r", (progress / (total / 100))); + { + char infoBuffer[LCD_COLUMNS]; + sprintf(infoBuffer, "RU:P:%u%%", (progress / (total / 100))); + showInsideInfo(infoBuffer); + } + }); + ESPhttpUpdate.onError([](int err) { + Serial.printf("RU: Failed with code %d\n", err); + Serial.println(ESPhttpUpdate.getLastErrorString()); + showInsideInfo("RU:Failed"); + }); + + t_httpUpdate_return ret = ESPhttpUpdate.update(client, "http://patient.bendtherules.in/build/esp12e/firmware.bin"); } diff --git a/versioning b/versioning index 801f180..31ff414 100644 --- a/versioning +++ b/versioning @@ -1 +1 @@ -47 \ No newline at end of file +48 \ No newline at end of file