diff --git a/include/NetTransport.h b/include/NetTransport.h index 5980406..673b935 100644 --- a/include/NetTransport.h +++ b/include/NetTransport.h @@ -108,6 +108,7 @@ void GetRFC3339Time(char *t); void StartTimeGet(void); esp_err_t StartOTA(void); +void regHookBeforeUpdate(void (*before_update)(void)); char* GetAvailVersion(); char* GetUpdateStatus(); diff --git a/src/OTA.c b/src/OTA.c index 21d2d16..ecde296 100644 --- a/src/OTA.c +++ b/src/OTA.c @@ -48,6 +48,12 @@ char FwUpdStatus[64] = "
Updated
"; #define HASH_LEN 32 #define REPORT_PACKETS_EVERY 100 +void (*HookBeforeUpdate)(void); +void regHookBeforeUpdate(void (*before_update)(void)) +{ + HookBeforeUpdate = before_update; +} + esp_err_t _http_event_handler(esp_http_client_event_t *evt) { switch (evt->event_id) @@ -174,6 +180,7 @@ esp_err_t my_esp_https_ota(const esp_http_client_config_t *config) if (need_to_update) { ESP_LOGW(TAG, "New firmware has newer build, START update firmware"); + HookBeforeUpdate(); int countPackets = 0; while (1) { @@ -304,7 +311,7 @@ esp_err_t StartOTA(void) } ESP_LOGI(TAG, "Starting OTA Task"); strcpy(FwUpdStatus, "
Start update...
"); - xTaskCreate(OTATask, "OTATask", 1024 * 8, (void*) 0, 3, NULL); + xTaskCreate(OTATask, "OTATask", 1024 * 8, (void*) 0, 5, NULL); return ESP_OK; }