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;
}