From 96ff27760e6cab536aa0add40f641fba9ea9e90b Mon Sep 17 00:00:00 2001 From: bogdan Date: Sun, 3 Sep 2023 23:08:42 +0200 Subject: [PATCH] no check version progress on manual firmware update --- include/NetTransport.h | 2 +- src/HTTPPostSystem.c | 2 +- src/OTA.c | 15 +++++++++++++-- src/RestApiHandler.c | 2 +- 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/include/NetTransport.h b/include/NetTransport.h index 6fbd705..1074051 100644 --- a/include/NetTransport.h +++ b/include/NetTransport.h @@ -115,7 +115,7 @@ void GotEthIF(void); void GetRFC3339Time(char *t); void StartTimeGet(void); -esp_err_t StartOTA(void); +esp_err_t StartOTA(bool isManual); char* GetAvailVersion(); char* GetUpdateStatus(); diff --git a/src/HTTPPostSystem.c b/src/HTTPPostSystem.c index d596fd6..0a0bf26 100644 --- a/src/HTTPPostSystem.c +++ b/src/HTTPPostSystem.c @@ -537,7 +537,7 @@ static HTTP_IO_RESULT HTTPPostSystemSettings(httpd_req_t *req, char *PostData) { if (!strcmp(tmp, (const char*) "prs")) { - StartOTA(); + StartOTA(true); } } if (httpd_query_key_value(PostData, "rtos", tmp, sizeof(tmp)) == ESP_OK) diff --git a/src/OTA.c b/src/OTA.c index dee9839..1506f52 100644 --- a/src/OTA.c +++ b/src/OTA.c @@ -48,6 +48,8 @@ char FwUpdStatus[64] = "Updated"; #define HASH_LEN 32 #define REPORT_PACKETS_EVERY 100 +static bool isManualUpdate = false; + void (*HookBeforeUpdate)(void); void regHookBeforeUpdate(void (*before_update)(void)) { @@ -177,9 +179,17 @@ esp_err_t my_esp_https_ota(const esp_http_client_config_t *config) GetBuildNumber(new_app_info.version)); bool need_to_update = GetBuildNumber(new_app_info.version) > GetBuildNumber(cur_app_info.version); + if (isManualUpdate) + { + need_to_update = true; + } + if (need_to_update) { - ESP_LOGW(TAG, "New firmware has newer build, START update firmware"); + if (!isManualUpdate) + ESP_LOGI(TAG, "New firmware has newer build, START update firmware"); + else + ESP_LOGW(TAG, "Manual update, no checking version, START update firmware"); if (HookBeforeUpdate != NULL) HookBeforeUpdate(); int countPackets = 0; @@ -303,7 +313,7 @@ static void OTATask(void *pvParameter) * ESP_ERR_NOT_FINISHED on attempt rerun existing thread */ -esp_err_t StartOTA(void) +esp_err_t StartOTA(bool isManual) { if (xTaskGetHandle("OTATask") != NULL) { @@ -311,6 +321,7 @@ esp_err_t StartOTA(void) return ESP_ERR_NOT_FINISHED; } ESP_LOGI(TAG, "Starting OTA Task"); + isManualUpdate = isManual; strcpy(FwUpdStatus, "Start update..."); xTaskCreate(OTATask, "OTATask", 1024 * 8, (void*) 0, 5, NULL); return ESP_OK; diff --git a/src/RestApiHandler.c b/src/RestApiHandler.c index 7c61379..f32ed12 100644 --- a/src/RestApiHandler.c +++ b/src/RestApiHandler.c @@ -270,7 +270,7 @@ static void funct_ota_state(char *argres, int rw) static void funct_ota_start(char *argres, int rw) { - StartOTA(); + StartOTA(true); } static void funct_ota_newver(char *argres, int rw) {