From c04ab90fd208f07d1a1baafd70ebe958f4c14591 Mon Sep 17 00:00:00 2001 From: Phat Nguyen Date: Fri, 17 May 2024 10:32:20 +0700 Subject: [PATCH] Update OTA processing message. Fix always retry of bootCount = 0 --- examples/OneOpenAir/OneOpenAir.ino | 11 +++++++++-- src/AgOledDisplay.cpp | 3 ++- src/AgValue.h | 2 +- 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/examples/OneOpenAir/OneOpenAir.ino b/examples/OneOpenAir/OneOpenAir.ino index 35bcaeb..67ea2e0 100644 --- a/examples/OneOpenAir/OneOpenAir.ino +++ b/examples/OneOpenAir/OneOpenAir.ino @@ -549,6 +549,11 @@ static void displayExecuteOta(OtaState state, String msg, int processing) { break; } case OtaState::OTA_STATE_SUCCESS: { + if (ag->isOne()) { + oledDisplay.showNewFirmwareUpdating(String(100)); + delay(250); + } + int i = 6; while(i != 0) { i = i - 1; @@ -564,6 +569,7 @@ static void displayExecuteOta(OtaState state, String msg, int processing) { delay(1000); } + oledDisplay.setBrightness(0); esp_restart(); } break; @@ -877,11 +883,12 @@ static void configUpdateHandle() { fwNewVersion = configuration.newFirmwareVersion(); if (fwNewVersion.length()) { bool doOta = false; - if (measurements.otaBootCount == 0) { + if (measurements.otaBootCount < 0) { doOta = true; Serial.println("First OTA"); } else { - if ((measurements.bootCount - measurements.otaBootCount) >= 30) { + int bootDiff = measurements.bootCount - measurements.otaBootCount; + if (bootDiff >= 30) { doOta = true; } else { Serial.println( diff --git a/src/AgOledDisplay.cpp b/src/AgOledDisplay.cpp index 125c887..5e6699d 100644 --- a/src/AgOledDisplay.cpp +++ b/src/AgOledDisplay.cpp @@ -380,7 +380,8 @@ void OledDisplay::showNewFirmwareFailed(void) { do { DISP()->setFont(u8g2_font_t0_16_tf); setCentralText(20, "Firmware Update"); - setCentralText(40, "Failed"); + setCentralText(40, "fail, will retry"); + // setCentralText(60, "will retry"); } while (DISP()->nextPage()); } diff --git a/src/AgValue.h b/src/AgValue.h index 7446411..a30857e 100644 --- a/src/AgValue.h +++ b/src/AgValue.h @@ -69,7 +69,7 @@ public: int countPosition; const int targetCount = 20; int bootCount; - int otaBootCount; + int otaBootCount = -1; String toString(bool isLocal, AgFirmwareMode fwMode, int rssi, void* _ag, void* _config); };