ota.cpp: bugfix

This commit is contained in:
Klaus K Wilting 2018-11-04 19:54:09 +01:00
parent 3aa8a88d3a
commit 26ea8621c2

View File

@ -75,6 +75,7 @@ void start_ota_update() {
WiFi.begin(WIFI_SSID, WIFI_PASS); WiFi.begin(WIFI_SSID, WIFI_PASS);
int i = WIFI_MAX_TRY, j = OTA_MAX_TRY; int i = WIFI_MAX_TRY, j = OTA_MAX_TRY;
bool ret = false;
while (i--) { while (i--) {
ESP_LOGI(TAG, "Trying to connect to %s", WIFI_SSID); ESP_LOGI(TAG, "Trying to connect to %s", WIFI_SSID);
@ -82,26 +83,29 @@ void start_ota_update() {
// we now have wifi connection and try to do an OTA over wifi update // we now have wifi connection and try to do an OTA over wifi update
ESP_LOGI(TAG, "Connected to %s", WIFI_SSID); ESP_LOGI(TAG, "Connected to %s", WIFI_SSID);
display(1, "OK", "WiFi connected"); display(1, "OK", "WiFi connected");
// do a number of tries limited by OTA_MAX_TRY // do a number of tries to update firmware limited by OTA_MAX_TRY
while (j--) { while ( j--) {
ESP_LOGI(TAG, ESP_LOGI(TAG,
"Starting OTA update, attempt %u of %u. This will take some " "Starting OTA update, attempt %u of %u. This will take some "
"time to complete...", "time to complete...",
OTA_MAX_TRY - j, OTA_MAX_TRY); OTA_MAX_TRY - j, OTA_MAX_TRY);
if (do_ota_update()) ret = do_ota_update();
goto end; if (ret)
goto end; // update successful
} }
} else { goto end; // update not successful
vTaskDelay(5000 / portTICK_PERIOD_MS);
} }
} }
ESP_LOGI(TAG, "Could not connect to %s, rebooting.", WIFI_SSID); // wifi did not connect
ESP_LOGI(TAG, "Could not connect to %s", WIFI_SSID);
display(1, " E", "no WiFi connect"); display(1, " E", "no WiFi connect");
vTaskDelay(5000 / portTICK_PERIOD_MS);
end: end:
switch_LED(LED_OFF); switch_LED(LED_OFF);
ESP_LOGI(TAG, "Rebooting to runmode using %s firmware",
ret ? "new" : "current");
display(5, "**", ""); // mark line rebooting display(5, "**", ""); // mark line rebooting
vTaskDelay(5000 / portTICK_PERIOD_MS); vTaskDelay(5000 / portTICK_PERIOD_MS);
ESP.restart(); ESP.restart();
@ -281,13 +285,12 @@ bool do_ota_update() {
finished: finished:
client.stop(); client.stop();
ESP_LOGI(TAG, "OTA update completed. Rebooting to runmode with new version."); ESP_LOGI(TAG, "OTA update completed.");
return true; return true;
failure: failure:
client.stop(); client.stop();
ESP_LOGI(TAG, ESP_LOGI(TAG, "OTA update failed.");
"OTA update failed. Rebooting to runmode with current version.");
return false; return false;
} // do_ota_update } // do_ota_update