Cleanup
This commit is contained in:
parent
fcf37907c8
commit
8c0d631ce2
@ -193,17 +193,12 @@ void OtaUpdateActivity::loop() {
|
||||
if (state == WAITING_CONFIRMATION) {
|
||||
if (inputManager.wasPressed(InputManager::BTN_CONFIRM)) {
|
||||
Serial.printf("[%lu] [OTA] New update available, starting download...\n", millis());
|
||||
int lastUpdatePercentage = 0;
|
||||
xSemaphoreTake(renderingMutex, portMAX_DELAY);
|
||||
state = UPDATE_IN_PROGRESS;
|
||||
xSemaphoreGive(renderingMutex);
|
||||
updateRequired = true;
|
||||
vTaskDelay(10 / portTICK_PERIOD_MS);
|
||||
const auto res = updater.installUpdate([this, &lastUpdatePercentage](const size_t progress, const size_t total) {
|
||||
// Only trigger display updates every 2% at most
|
||||
updateRequired = true;
|
||||
// vTaskDelay(10 / portTICK_PERIOD_MS);
|
||||
});
|
||||
const auto res = updater.installUpdate([this](const size_t, const size_t) { updateRequired = true; });
|
||||
|
||||
if (res != OtaUpdater::OK) {
|
||||
Serial.printf("[%lu] [OTA] Update failed: %d\n", millis(), res);
|
||||
|
||||
@ -18,12 +18,15 @@ class OtaUpdateActivity : public ActivityWithSubactivity {
|
||||
SHUTTING_DOWN
|
||||
};
|
||||
|
||||
// Can't initialize this to 0 or the first render doesn't happen
|
||||
static constexpr unsigned int UNINITIALIZED_PERCENTAGE = 111;
|
||||
|
||||
TaskHandle_t displayTaskHandle = nullptr;
|
||||
SemaphoreHandle_t renderingMutex = nullptr;
|
||||
bool updateRequired = false;
|
||||
const std::function<void()> goBack;
|
||||
State state = WIFI_SELECTION;
|
||||
unsigned int lastUpdaterPercentage = 111; // Can't initialize this to 0 or the first render doesn't happen
|
||||
unsigned int lastUpdaterPercentage = UNINITIALIZED_PERCENTAGE;
|
||||
OtaUpdater updater;
|
||||
|
||||
void onWifiSelectionComplete(bool success);
|
||||
|
||||
@ -27,7 +27,7 @@ OtaUpdater::OtaUpdaterError OtaUpdater::checkForUpdate() {
|
||||
}
|
||||
|
||||
JsonDocument doc;
|
||||
const DeserializationError error = deserializeJson(doc, http.getStream());
|
||||
const DeserializationError error = deserializeJson(doc, *client);
|
||||
http.end();
|
||||
if (error) {
|
||||
Serial.printf("[%lu] [OTA] JSON parse failed: %s\n", millis(), error.c_str());
|
||||
@ -121,6 +121,7 @@ OtaUpdater::OtaUpdaterError OtaUpdater::installUpdate(const std::function<void(s
|
||||
|
||||
if (httpCode != HTTP_CODE_OK) {
|
||||
Serial.printf("[%lu] [OTA] Download failed: %d\n", millis(), httpCode);
|
||||
http.end();
|
||||
return HTTP_ERROR;
|
||||
}
|
||||
|
||||
@ -129,12 +130,14 @@ OtaUpdater::OtaUpdaterError OtaUpdater::installUpdate(const std::function<void(s
|
||||
|
||||
if (contentLength != otaSize) {
|
||||
Serial.printf("[%lu] [OTA] Invalid content length\n", millis());
|
||||
http.end();
|
||||
return HTTP_ERROR;
|
||||
}
|
||||
|
||||
// 3. Begin the ESP-IDF Update process
|
||||
if (!Update.begin(otaSize)) {
|
||||
Serial.printf("[%lu] [OTA] Not enough space. Error: %s\n", millis(), Update.errorString());
|
||||
http.end();
|
||||
return INTERNAL_UPDATE_ERROR;
|
||||
}
|
||||
|
||||
@ -146,11 +149,12 @@ OtaUpdater::OtaUpdaterError OtaUpdater::installUpdate(const std::function<void(s
|
||||
onProgress(progress, total);
|
||||
});
|
||||
const size_t written = Update.writeStream(*client);
|
||||
http.end();
|
||||
|
||||
if (written == otaSize) {
|
||||
Serial.printf("[%lu] [OTA] Successfully written %u bytes\n", millis(), written);
|
||||
} else {
|
||||
Serial.printf("[%lu] [OTA] Written only %u/%u bytes. Error: %s\n", millis(), written, contentLength,
|
||||
Serial.printf("[%lu] [OTA] Written only %u/%u bytes. Error: %s\n", millis(), written, otaSize,
|
||||
Update.errorString());
|
||||
return INTERNAL_UPDATE_ERROR;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user