diff --git a/code/components/jomjol_fileserver_ota/server_ota.cpp b/code/components/jomjol_fileserver_ota/server_ota.cpp index 13474de1..cd620cd1 100644 --- a/code/components/jomjol_fileserver_ota/server_ota.cpp +++ b/code/components/jomjol_fileserver_ota/server_ota.cpp @@ -93,7 +93,7 @@ void task_do_Update_ZIP(void *pvParameter) } LogFile.WriteToFile(ESP_LOG_INFO, TAG, "Trigger reboot due to firmware update."); - doReboot(); + doRebootOTA(); } else { @@ -596,7 +596,7 @@ void hard_restart() } -void task_reboot(void *TaskCreated) +void task_reboot(void *KillAutoFlow) { // write a reboot, to identify a reboot by purpouse FILE* pfile = fopen("/sdcard/reboot.txt", "w"); @@ -604,7 +604,9 @@ void task_reboot(void *TaskCreated) fwrite(_s_zw.c_str(), strlen(_s_zw.c_str()), 1, pfile); fclose(pfile); - if ((bool)TaskCreated) { + vTaskDelay(3000 / portTICK_PERIOD_MS); + + if ((bool)KillAutoFlow) { KillTFliteTasks(); // Kill autoflow task if executed in extra task, if not don't kill parent task } @@ -616,13 +618,14 @@ void task_reboot(void *TaskCreated) esp_camera_deinit(); WIFIDestroy(); - vTaskDelay(4000 / portTICK_PERIOD_MS); - esp_restart(); // Reset type: CPU Reset (Reset both CPUs) + vTaskDelay(3000 / portTICK_PERIOD_MS); + esp_restart(); // Reset type: CPU reset (Reset both CPUs) vTaskDelay(5000 / portTICK_PERIOD_MS); hard_restart(); // Reset type: System reset (Triggered by watchdog), if esp_restart stalls (WDT needs to be activated) - vTaskDelete(NULL); //Delete this task if it exits from the loop above + ESP_LOGE(TAG, "Reboot failed!"); + vTaskDelete(NULL); //Delete this task if it comes to this point } @@ -630,31 +633,47 @@ void doReboot() { LogFile.WriteToFile(ESP_LOG_INFO, TAG, "Reboot triggered by Software (5s)."); LogFile.WriteToFile(ESP_LOG_WARN, TAG, "Reboot in 5sec"); + BaseType_t xReturned = xTaskCreate(&task_reboot, "task_reboot", configMINIMAL_STACK_SIZE * 3, (void*) true, 10, NULL); if( xReturned != pdPASS ) { ESP_LOGE(TAG, "task_reboot not created -> force reboot without killing flow"); task_reboot((void*) false); } + vTaskDelay(10000 / portTICK_PERIOD_MS); // Prevent serving web client fetch response until system is shuting down +} + + +void doRebootOTA() +{ + LogFile.WriteToFile(ESP_LOG_WARN, TAG, "Reboot in 5sec"); + + esp_camera_deinit(); + + vTaskDelay(5000 / portTICK_PERIOD_MS); + esp_restart(); // Reset type: CPU reset (Reset both CPUs) + + vTaskDelay(5000 / portTICK_PERIOD_MS); + hard_restart(); // Reset type: System reset (Triggered by watchdog), if esp_restart stalls (WDT needs to be activated) } esp_err_t handler_reboot(httpd_req_t *req) { -#ifdef DEBUG_DETAIL_ON - LogFile.WriteHeapInfo("handler_reboot - Start"); -#endif + #ifdef DEBUG_DETAIL_ON + LogFile.WriteHeapInfo("handler_reboot - Start"); + #endif LogFile.WriteToFile(ESP_LOG_DEBUG, TAG, "handler_reboot"); ESP_LOGI(TAG, "!!! System will restart within 5 sec!!!"); - const char* resp_str = "
"; + const char* resp_str = " "; httpd_resp_send(req, resp_str, strlen(resp_str)); doReboot(); -#ifdef DEBUG_DETAIL_ON - LogFile.WriteHeapInfo("handler_reboot - Done"); -#endif + #ifdef DEBUG_DETAIL_ON + LogFile.WriteHeapInfo("handler_reboot - Done"); + #endif return ESP_OK; } diff --git a/code/components/jomjol_fileserver_ota/server_ota.h b/code/components/jomjol_fileserver_ota/server_ota.h index 552588aa..5a503321 100644 --- a/code/components/jomjol_fileserver_ota/server_ota.h +++ b/code/components/jomjol_fileserver_ota/server_ota.h @@ -13,6 +13,7 @@ void register_server_ota_sdcard_uri(httpd_handle_t server); void CheckOTAUpdate(); void doReboot(); +void doRebootOTA(); void hard_restart(); void CheckUpdate(); diff --git a/code/main/softAP.cpp b/code/main/softAP.cpp index bca2290f..5038cf1a 100644 --- a/code/main/softAP.cpp +++ b/code/main/softAP.cpp @@ -180,7 +180,7 @@ esp_err_t reboot_handlerAP(httpd_req_t *req) LogFile.WriteHeapInfo("handler_ota_update - Start"); #endif LogFile.WriteToFile(ESP_LOG_INFO, TAG, "Trigger reboot due to firmware update."); - doReboot(); + doRebootOTA(); return ESP_OK; }; diff --git a/sd-card/html/overview.html b/sd-card/html/overview.html index e8eced61..d7f57524 100644 --- a/sd-card/html/overview.html +++ b/sd-card/html/overview.html @@ -81,45 +81,43 @@ function addZero(i) { } + $(document).ready(function() { + LoadData(); + LoadROIImage(); + }); + + function LoadData(){ - loadStatus(); - loadCPUTemp(); - loadRSSI(); - loadUptime(); - loadRoundCounter(); loadValue("value", "value"); loadValue("raw", "raw"); loadValue("prevalue", "prevalue"); loadValue("error", "error", "font-size:8px"); + loadStatus(); + loadCPUTemp(); + loadRSSI(); + loadUptime(); + loadRoundCounter(); } function LoadROIImage(){ var d = new Date(); + var timestamp = d.getTime(); var h = addZero(d.getHours()); var m = addZero(d.getMinutes()); var s = addZero(d.getSeconds()); - $('#img').html('
');
+ $('#img').html('
');
$('#timestamp').html("Last Page Refresh:" + (h + ":" + m + ":" + s));
}
function Refresh() {
- setTimeout (function() {
+ setTimeout (function() {
LoadData();
-
- var d = new Date();
- var timestamp = d.getTime();
- var h = addZero(d.getHours());
- var m = addZero(d.getMinutes());
- var s = addZero(d.getSeconds());
- // reassign the url to be like alg_roi.jpg?timestamp=456784512 based on timestamp to ensure image is getting reloaded
- $('#img').html('
');
- $('#timestamp').html("Last Page Refresh:" + (h + ":" + m + ":" + s));
-
+ LoadROIImage();
Refresh();
- }, 300000);
- }
+ }, 300000);
+ }
function loadStatus() {
@@ -235,8 +233,6 @@ function addZero(i) {
function init(){
basepath = getbasepath();
- LoadData();
- LoadROIImage();
Refresh();
}