diff --git a/main/ota_update.c b/main/ota_update.c index 74b5248..19f024b 100644 --- a/main/ota_update.c +++ b/main/ota_update.c @@ -94,14 +94,7 @@ void start_uart_update(uint8_t msgid, const uint8_t *payload, uart_write_bytes(MASTER_UART, send_buffer, len); } -void payload_uart_update(uint8_t msgid, const uint8_t *payload, - size_t payload_len, uint8_t *send_payload_buffer, - size_t send_payload_buffer_size, uint8_t *send_buffer, - size_t send_buffer_size) { - // ESP_LOGI(TAG, "OTA Update Payload Uart Command"); - - uint32_t write_len = MIN(UPDATE_PAYLOAD_SIZE, payload_len); - update_size += write_len; +esp_err_t write_ota(uint32_t write_len, uint8_t *payload) { if (update_buffer_write_index > UPDATE_BUFFER_SIZE - write_len) { // ESP_LOGI(TAG, "Writing Data to Update BUffer Sequence %d, writing Data // %d", @@ -110,15 +103,32 @@ void payload_uart_update(uint8_t msgid, const uint8_t *payload, esp_err_t err = esp_ota_write(update_handle, update_buffer, update_buffer_write_index); if (err != ESP_OK) { - ESP_LOGE(TAG, "GOT ESP ERROR WRITE OTA %d", err); + return err; } update_buffer_write_index = 0; sequenz_counter++; + return err; } memcpy(&update_buffer[update_buffer_write_index], payload, write_len); update_buffer_write_index += write_len; +} + +void payload_uart_update(uint8_t msgid, const uint8_t *payload, + size_t payload_len, uint8_t *send_payload_buffer, + size_t send_payload_buffer_size, uint8_t *send_buffer, + size_t send_buffer_size) { + // ESP_LOGI(TAG, "OTA Update Payload Uart Command"); + + uint32_t write_len = MIN(UPDATE_PAYLOAD_SIZE, payload_len); + update_size += write_len; + + esp_err_t err = write_ota(write_len, payload); + + if (err != ESP_OK) { + ESP_LOGE(TAG, "GOT ESP ERROR WRITE OTA %d", err); + } size_t send_payload_len = 4; memcpy(send_payload_buffer, &sequenz_counter, 2); @@ -138,12 +148,7 @@ void payload_uart_update(uint8_t msgid, const uint8_t *payload, uart_write_bytes(MASTER_UART, send_buffer, len); } -void end_uart_update(uint8_t msgid, const uint8_t *payload, size_t payload_len, - uint8_t *send_payload_buffer, - size_t send_payload_buffer_size, uint8_t *send_buffer, - size_t send_buffer_size) { - ESP_LOGI(TAG, "OTA Update End Uart Command"); - +esp_err_t end_ota() { esp_err_t err = esp_ota_write(update_handle, update_buffer, update_buffer_write_index); if (err != ESP_OK) { @@ -171,6 +176,16 @@ void end_uart_update(uint8_t msgid, const uint8_t *payload, size_t payload_len, ESP_LOGE(TAG, "esp_ota_set_boot_partition failed: %s", esp_err_to_name(err)); } + return err; +} + +void end_uart_update(uint8_t msgid, const uint8_t *payload, size_t payload_len, + uint8_t *send_payload_buffer, + size_t send_payload_buffer_size, uint8_t *send_buffer, + size_t send_buffer_size) { + ESP_LOGI(TAG, "OTA Update End Uart Command"); + + esp_err_t err = end_ota(); // message ret esp_err_t int send_payload_len = 1;