no check version progress on manual firmware update

This commit is contained in:
Bogdan Pilyugin 2023-09-03 23:08:42 +02:00
parent 9ca6f0f210
commit 96ff27760e
4 changed files with 16 additions and 5 deletions

View File

@ -115,7 +115,7 @@ void GotEthIF(void);
void GetRFC3339Time(char *t); void GetRFC3339Time(char *t);
void StartTimeGet(void); void StartTimeGet(void);
esp_err_t StartOTA(void); esp_err_t StartOTA(bool isManual);
char* GetAvailVersion(); char* GetAvailVersion();
char* GetUpdateStatus(); char* GetUpdateStatus();

View File

@ -537,7 +537,7 @@ static HTTP_IO_RESULT HTTPPostSystemSettings(httpd_req_t *req, char *PostData)
{ {
if (!strcmp(tmp, (const char*) "prs")) if (!strcmp(tmp, (const char*) "prs"))
{ {
StartOTA(); StartOTA(true);
} }
} }
if (httpd_query_key_value(PostData, "rtos", tmp, sizeof(tmp)) == ESP_OK) if (httpd_query_key_value(PostData, "rtos", tmp, sizeof(tmp)) == ESP_OK)

View File

@ -48,6 +48,8 @@ char FwUpdStatus[64] = "<span class='clok'>Updated</span>";
#define HASH_LEN 32 #define HASH_LEN 32
#define REPORT_PACKETS_EVERY 100 #define REPORT_PACKETS_EVERY 100
static bool isManualUpdate = false;
void (*HookBeforeUpdate)(void); void (*HookBeforeUpdate)(void);
void regHookBeforeUpdate(void (*before_update)(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)); GetBuildNumber(new_app_info.version));
bool need_to_update = GetBuildNumber(new_app_info.version) > GetBuildNumber(cur_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) 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) if (HookBeforeUpdate != NULL)
HookBeforeUpdate(); HookBeforeUpdate();
int countPackets = 0; int countPackets = 0;
@ -303,7 +313,7 @@ static void OTATask(void *pvParameter)
* ESP_ERR_NOT_FINISHED on attempt rerun existing thread * ESP_ERR_NOT_FINISHED on attempt rerun existing thread
*/ */
esp_err_t StartOTA(void) esp_err_t StartOTA(bool isManual)
{ {
if (xTaskGetHandle("OTATask") != NULL) if (xTaskGetHandle("OTATask") != NULL)
{ {
@ -311,6 +321,7 @@ esp_err_t StartOTA(void)
return ESP_ERR_NOT_FINISHED; return ESP_ERR_NOT_FINISHED;
} }
ESP_LOGI(TAG, "Starting OTA Task"); ESP_LOGI(TAG, "Starting OTA Task");
isManualUpdate = isManual;
strcpy(FwUpdStatus, "<span class='clwarn'>Start update...</span>"); strcpy(FwUpdStatus, "<span class='clwarn'>Start update...</span>");
xTaskCreate(OTATask, "OTATask", 1024 * 8, (void*) 0, 5, NULL); xTaskCreate(OTATask, "OTATask", 1024 * 8, (void*) 0, 5, NULL);
return ESP_OK; return ESP_OK;

View File

@ -270,7 +270,7 @@ static void funct_ota_state(char *argres, int rw)
static void funct_ota_start(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) static void funct_ota_newver(char *argres, int rw)
{ {