This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
#include <Arduino.h>
|
||||
#include "tools.h"
|
||||
#include <ArduinoLog.h>
|
||||
#include <Elog.h>
|
||||
#include "../global_data/defines.h"
|
||||
#include <Preferences.h>
|
||||
#include <fetchOTA.h>
|
||||
@@ -8,24 +8,10 @@
|
||||
|
||||
extern Preferences prefs;
|
||||
extern OTAStatus ota_status;
|
||||
extern AsyncWebSocket ws;
|
||||
extern AsyncWebSocket webSocket;
|
||||
|
||||
extern Version current_spiffs_version;
|
||||
|
||||
void printSuffix(Print* _logOutput, int logLevel)
|
||||
{
|
||||
_logOutput->print(CR);
|
||||
}
|
||||
|
||||
void print_prefix(Print* _logOutput, int logLevel)
|
||||
{
|
||||
_logOutput->print("WATERMETER - TESTLOL - C");
|
||||
_logOutput->print(xPortGetCoreID());
|
||||
_logOutput->print(" - ");
|
||||
_logOutput->print(pcTaskGetName(xTaskGetCurrentTaskHandle()));
|
||||
_logOutput->print(" - ");
|
||||
}
|
||||
|
||||
bool is_error(ActiveErrors active_errors) {
|
||||
return active_errors.current_high || active_errors.current_low || active_errors.level_high || active_errors.level_low || active_errors.voltage_high || active_errors.voltage_low;
|
||||
}
|
||||
@@ -49,28 +35,28 @@ String processor(const String& var)
|
||||
|
||||
// OTA Callbacks
|
||||
void update_started() {
|
||||
Log.verbose("OTA Update started");
|
||||
logger.log(0, DEBUG, "OTA Update started");
|
||||
ota_status.update_progress = 0;
|
||||
}
|
||||
|
||||
void update_finished() {
|
||||
Log.verbose("OTA Update finished");
|
||||
logger.log(0, DEBUG, "OTA Update finished");
|
||||
ota_status.update_progress = -1;
|
||||
ws.textAll(String(-1).c_str());
|
||||
webSocket.textAll(String(-1).c_str());
|
||||
}
|
||||
|
||||
void update_progress(int cur, int total) {
|
||||
ota_status.update_progress = 0;
|
||||
if (cur != 0 ) {
|
||||
ota_status.update_progress = int(float(cur)/float(total)*100);
|
||||
Log.verbose("OTA Update progress: %d/%d, %i", cur, total, ota_status.update_progress);
|
||||
logger.log(0, DEBUG, "OTA Update progress: %d/%d, %i", cur, total, ota_status.update_progress);
|
||||
}
|
||||
ws.textAll(String(ota_status.update_progress).c_str());
|
||||
Log.verbose("OTA Update progress: %d/%d", cur, total);
|
||||
webSocket.textAll(String(ota_status.update_progress).c_str());
|
||||
logger.log(0, DEBUG, "OTA Update progress: %d/%d", cur, total);
|
||||
}
|
||||
|
||||
void update_error(int err) {
|
||||
Log.error("OTA Update error: %d", err);
|
||||
logger.log(0, ERROR, "OTA Update error: %d", err);
|
||||
ota_status.update_progress = -2;
|
||||
}
|
||||
|
||||
@@ -89,20 +75,20 @@ void check_update_task(void* parameter) {
|
||||
// If there is a SPIFSS update it will be ran automatically, as SPIFFS is necessary for the firmware to run
|
||||
Firmware latest_spiff_version = spiffs_fs.getLatestVersionOnServer();
|
||||
|
||||
Log.verbose("Required SPIFFS Version: %d.%d.%d; Current SPIFFS version: %d.%d.%d; Server SPIFFS Version: %d.%d.%d", REQUIRED_SPIFFS_VERSION.major, REQUIRED_SPIFFS_VERSION.minor, REQUIRED_SPIFFS_VERSION.patch, current_spiffs_version.major, current_spiffs_version.minor, current_spiffs_version.patch, latest_spiff_version.version.major, latest_spiff_version.version.minor, latest_spiff_version.version.patch);
|
||||
logger.log(0, DEBUG, "Required SPIFFS Version: %d.%d.%d; Current SPIFFS version: %d.%d.%d; Server SPIFFS Version: %d.%d.%d", REQUIRED_SPIFFS_VERSION.major, REQUIRED_SPIFFS_VERSION.minor, REQUIRED_SPIFFS_VERSION.patch, current_spiffs_version.major, current_spiffs_version.minor, current_spiffs_version.patch, latest_spiff_version.version.major, latest_spiff_version.version.minor, latest_spiff_version.version.patch);
|
||||
|
||||
if (latest_spiff_version.valid) {
|
||||
if (isVersionNewer(current_spiffs_version, REQUIRED_SPIFFS_VERSION)) {
|
||||
// If Required SPIFFS version is newer than current version, update
|
||||
Log.verbose("New SPIFFS version, running update now");
|
||||
logger.log(0, DEBUG, "New SPIFFS version, running update now");
|
||||
run_ota_spiffs_update(latest_spiff_version.url, update_started, update_finished, update_progress, update_error);
|
||||
// Reboot just to be safe
|
||||
ESP.restart();
|
||||
} else if (isVersionNewer(REQUIRED_SPIFFS_VERSION, latest_spiff_version.version)) {
|
||||
// If Server has new SPIFFS version but it's not required
|
||||
Log.verbose("New SPIFFS version available: %d.%d.%d, current version: %d.%d.%d but not necessary to update", latest_spiff_version.version.major, latest_spiff_version.version.minor, latest_spiff_version.version.patch, REQUIRED_SPIFFS_VERSION.major, REQUIRED_SPIFFS_VERSION.minor, REQUIRED_SPIFFS_VERSION.patch);
|
||||
logger.log(0, DEBUG, "New SPIFFS version available: %d.%d.%d, current version: %d.%d.%d but not necessary to update", latest_spiff_version.version.major, latest_spiff_version.version.minor, latest_spiff_version.version.patch, REQUIRED_SPIFFS_VERSION.major, REQUIRED_SPIFFS_VERSION.minor, REQUIRED_SPIFFS_VERSION.patch);
|
||||
} else {
|
||||
Log.verbose("No new SPIFFS version available");
|
||||
logger.log(0, DEBUG, "No new SPIFFS version available");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -110,11 +96,11 @@ void check_update_task(void* parameter) {
|
||||
while (true) {
|
||||
Firmware fw = ota.getLatestVersionOnServer();
|
||||
if (fw.valid) {
|
||||
Log.verbose("New firmware available: %d.%d.%d, current version: %d.%d.%d", fw.version.major, fw.version.minor, fw.version.patch, current_software_version.major, current_software_version.minor, current_software_version.patch);
|
||||
logger.log(0, DEBUG, "New firmware available: %d.%d.%d, current version: %d.%d.%d", fw.version.major, fw.version.minor, fw.version.patch, current_software_version.major, current_software_version.minor, current_software_version.patch);
|
||||
ota_status.latest_version = fw.version;
|
||||
ota_status.update_url = fw.url;
|
||||
if (isVersionNewer(current_software_version, fw.version)) {
|
||||
Log.verbose("Remote version is newer than current version");
|
||||
logger.log(0, DEBUG, "Remote version is newer than current version");
|
||||
ota_status.update_available = true;
|
||||
} else {
|
||||
ota_status.update_available = false;
|
||||
@@ -125,7 +111,7 @@ void check_update_task(void* parameter) {
|
||||
ota_status.update_available = false;
|
||||
}
|
||||
|
||||
Log.verbose("No new firmware available");
|
||||
logger.log(0, DEBUG, "No new firmware available");
|
||||
}
|
||||
delay(1000 * 60 * 1);
|
||||
}
|
||||
@@ -135,7 +121,7 @@ void check_update_task(void* parameter) {
|
||||
|
||||
void run_ota_update_task(void* parameter) {
|
||||
TaskArgs_t *args = (TaskArgs_t *) parameter;
|
||||
Log.verbose("Running OTA upgrade now with URL: %s", args->ota_status.update_url.c_str());
|
||||
logger.log(0, DEBUG, "Running OTA upgrade now with URL: %s", args->ota_status.update_url.c_str());
|
||||
run_ota_update(args->ota_status.update_url, update_started, update_finished, update_progress, update_error);
|
||||
vTaskDelete(NULL);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user