mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	Extract OTA backend functionality into separate ota_base component
This commit is contained in:
		| @@ -18,7 +18,7 @@ | |||||||
| #include <cinttypes> | #include <cinttypes> | ||||||
|  |  | ||||||
| #ifdef USE_OTA | #ifdef USE_OTA | ||||||
| #include "esphome/components/ota/ota_backend.h" | #include "esphome/components/ota/ota.h" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #ifdef USE_ESP32_BLE_SOFTWARE_COEXISTENCE | #ifdef USE_ESP32_BLE_SOFTWARE_COEXISTENCE | ||||||
|   | |||||||
| @@ -2,12 +2,13 @@ | |||||||
| #ifdef USE_OTA | #ifdef USE_OTA | ||||||
| #include "esphome/components/md5/md5.h" | #include "esphome/components/md5/md5.h" | ||||||
| #include "esphome/components/network/util.h" | #include "esphome/components/network/util.h" | ||||||
| #include "esphome/components/ota/ota_backend.h" | #include "esphome/components/ota/ota.h"               // For OTAComponent and callbacks | ||||||
| #include "esphome/components/ota/ota_backend_arduino_esp32.h" | #include "esphome/components/ota_base/ota_backend.h"  // For OTABackend class | ||||||
| #include "esphome/components/ota/ota_backend_arduino_esp8266.h" | #include "esphome/components/ota_base/ota_backend_arduino_esp32.h" | ||||||
| #include "esphome/components/ota/ota_backend_arduino_libretiny.h" | #include "esphome/components/ota_base/ota_backend_arduino_esp8266.h" | ||||||
| #include "esphome/components/ota/ota_backend_arduino_rp2040.h" | #include "esphome/components/ota_base/ota_backend_arduino_libretiny.h" | ||||||
| #include "esphome/components/ota/ota_backend_esp_idf.h" | #include "esphome/components/ota_base/ota_backend_arduino_rp2040.h" | ||||||
|  | #include "esphome/components/ota_base/ota_backend_esp_idf.h" | ||||||
| #include "esphome/core/application.h" | #include "esphome/core/application.h" | ||||||
| #include "esphome/core/hal.h" | #include "esphome/core/hal.h" | ||||||
| #include "esphome/core/log.h" | #include "esphome/core/log.h" | ||||||
| @@ -149,7 +150,7 @@ void ESPHomeOTAComponent::handle_() { | |||||||
|   buf[1] = USE_OTA_VERSION; |   buf[1] = USE_OTA_VERSION; | ||||||
|   this->writeall_(buf, 2); |   this->writeall_(buf, 2); | ||||||
|  |  | ||||||
|   backend = ota::make_ota_backend(); |   backend = ota_base::make_ota_backend(); | ||||||
|  |  | ||||||
|   // Read features - 1 byte |   // Read features - 1 byte | ||||||
|   if (!this->readall_(buf, 1)) { |   if (!this->readall_(buf, 1)) { | ||||||
|   | |||||||
| @@ -4,7 +4,7 @@ | |||||||
| #ifdef USE_OTA | #ifdef USE_OTA | ||||||
| #include "esphome/core/helpers.h" | #include "esphome/core/helpers.h" | ||||||
| #include "esphome/core/preferences.h" | #include "esphome/core/preferences.h" | ||||||
| #include "esphome/components/ota/ota_backend.h" | #include "esphome/components/ota/ota.h" | ||||||
| #include "esphome/components/socket/socket.h" | #include "esphome/components/socket/socket.h" | ||||||
|  |  | ||||||
| namespace esphome { | namespace esphome { | ||||||
|   | |||||||
| @@ -6,11 +6,12 @@ | |||||||
|  |  | ||||||
| #include "esphome/components/md5/md5.h" | #include "esphome/components/md5/md5.h" | ||||||
| #include "esphome/components/watchdog/watchdog.h" | #include "esphome/components/watchdog/watchdog.h" | ||||||
| #include "esphome/components/ota/ota_backend.h" | #include "esphome/components/ota/ota.h"               // For OTAComponent and callbacks | ||||||
| #include "esphome/components/ota/ota_backend_arduino_esp32.h" | #include "esphome/components/ota_base/ota_backend.h"  // For OTABackend class | ||||||
| #include "esphome/components/ota/ota_backend_arduino_esp8266.h" | #include "esphome/components/ota_base/ota_backend_arduino_esp32.h" | ||||||
| #include "esphome/components/ota/ota_backend_arduino_rp2040.h" | #include "esphome/components/ota_base/ota_backend_arduino_esp8266.h" | ||||||
| #include "esphome/components/ota/ota_backend_esp_idf.h" | #include "esphome/components/ota_base/ota_backend_arduino_rp2040.h" | ||||||
|  | #include "esphome/components/ota_base/ota_backend_esp_idf.h" | ||||||
|  |  | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace http_request { | namespace http_request { | ||||||
| @@ -115,7 +116,7 @@ uint8_t OtaHttpRequestComponent::do_ota_() { | |||||||
|   ESP_LOGV(TAG, "MD5Digest initialized"); |   ESP_LOGV(TAG, "MD5Digest initialized"); | ||||||
|  |  | ||||||
|   ESP_LOGV(TAG, "OTA backend begin"); |   ESP_LOGV(TAG, "OTA backend begin"); | ||||||
|   auto backend = ota::make_ota_backend(); |   auto backend = ota_base::make_ota_backend(); | ||||||
|   auto error_code = backend->begin(container->content_length); |   auto error_code = backend->begin(container->content_length); | ||||||
|   if (error_code != ota::OTA_RESPONSE_OK) { |   if (error_code != ota::OTA_RESPONSE_OK) { | ||||||
|     ESP_LOGW(TAG, "backend->begin error: %d", error_code); |     ESP_LOGW(TAG, "backend->begin error: %d", error_code); | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| #pragma once | #pragma once | ||||||
|  |  | ||||||
| #include "esphome/components/ota/ota_backend.h" | #include "esphome/components/ota/ota.h" | ||||||
| #include "esphome/core/component.h" | #include "esphome/core/component.h" | ||||||
| #include "esphome/core/defines.h" | #include "esphome/core/defines.h" | ||||||
| #include "esphome/core/helpers.h" | #include "esphome/core/helpers.h" | ||||||
|   | |||||||
| @@ -9,7 +9,7 @@ | |||||||
| #include "esphome/components/audio/audio_transfer_buffer.h" | #include "esphome/components/audio/audio_transfer_buffer.h" | ||||||
|  |  | ||||||
| #ifdef USE_OTA | #ifdef USE_OTA | ||||||
| #include "esphome/components/ota/ota_backend.h" | #include "esphome/components/ota/ota.h" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| namespace esphome { | namespace esphome { | ||||||
|   | |||||||
| @@ -8,10 +8,10 @@ from esphome.const import ( | |||||||
|     CONF_PLATFORM, |     CONF_PLATFORM, | ||||||
|     CONF_TRIGGER_ID, |     CONF_TRIGGER_ID, | ||||||
| ) | ) | ||||||
| from esphome.core import CORE, coroutine_with_priority | from esphome.core import coroutine_with_priority | ||||||
|  |  | ||||||
| CODEOWNERS = ["@esphome/core"] | CODEOWNERS = ["@esphome/core"] | ||||||
| AUTO_LOAD = ["md5", "safe_mode"] | AUTO_LOAD = ["safe_mode", "ota_base"] | ||||||
|  |  | ||||||
| IS_PLATFORM_COMPONENT = True | IS_PLATFORM_COMPONENT = True | ||||||
|  |  | ||||||
| @@ -84,12 +84,6 @@ BASE_OTA_SCHEMA = cv.Schema( | |||||||
| async def to_code(config): | async def to_code(config): | ||||||
|     cg.add_define("USE_OTA") |     cg.add_define("USE_OTA") | ||||||
|  |  | ||||||
|     if CORE.is_esp32 and CORE.using_arduino: |  | ||||||
|         cg.add_library("Update", None) |  | ||||||
|  |  | ||||||
|     if CORE.is_rp2040 and CORE.using_arduino: |  | ||||||
|         cg.add_library("Updater", None) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| async def ota_to_code(var, config): | async def ota_to_code(var, config): | ||||||
|     await cg.past_safe_mode() |     await cg.past_safe_mode() | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| #pragma once | #pragma once | ||||||
| #ifdef USE_OTA_STATE_CALLBACK | #ifdef USE_OTA_STATE_CALLBACK | ||||||
| #include "ota_backend.h" | #include "ota.h" | ||||||
|  |  | ||||||
| #include "esphome/core/automation.h" | #include "esphome/core/automation.h" | ||||||
|  |  | ||||||
|   | |||||||
| @@ -1,4 +1,4 @@ | |||||||
| #include "ota_backend.h" | #include "ota.h" | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota { | ||||||
							
								
								
									
										52
									
								
								esphome/components/ota/ota.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								esphome/components/ota/ota.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,52 @@ | |||||||
|  | #pragma once | ||||||
|  |  | ||||||
|  | #include "esphome/core/component.h" | ||||||
|  | #include "esphome/core/defines.h" | ||||||
|  | #include "esphome/components/ota_base/ota_backend.h" | ||||||
|  |  | ||||||
|  | #ifdef USE_OTA_STATE_CALLBACK | ||||||
|  | #include "esphome/core/automation.h" | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | namespace esphome { | ||||||
|  | namespace ota { | ||||||
|  |  | ||||||
|  | // Import types from ota_base namespace for backward compatibility | ||||||
|  | using ota_base::OTABackend; | ||||||
|  | using ota_base::OTAResponseTypes; | ||||||
|  | using ota_base::OTAState; | ||||||
|  |  | ||||||
|  | class OTAComponent : public Component { | ||||||
|  | #ifdef USE_OTA_STATE_CALLBACK | ||||||
|  |  public: | ||||||
|  |   void add_on_state_callback(std::function<void(ota_base::OTAState, float, uint8_t)> &&callback) { | ||||||
|  |     this->state_callback_.add(std::move(callback)); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  protected: | ||||||
|  |   CallbackManager<void(ota_base::OTAState, float, uint8_t)> state_callback_{}; | ||||||
|  | #endif | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #ifdef USE_OTA_STATE_CALLBACK | ||||||
|  | class OTAGlobalCallback { | ||||||
|  |  public: | ||||||
|  |   void register_ota(OTAComponent *ota_caller) { | ||||||
|  |     ota_caller->add_on_state_callback([this, ota_caller](ota_base::OTAState state, float progress, uint8_t error) { | ||||||
|  |       this->state_callback_.call(state, progress, error, ota_caller); | ||||||
|  |     }); | ||||||
|  |   } | ||||||
|  |   void add_on_state_callback(std::function<void(ota_base::OTAState, float, uint8_t, OTAComponent *)> &&callback) { | ||||||
|  |     this->state_callback_.add(std::move(callback)); | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |  protected: | ||||||
|  |   CallbackManager<void(ota_base::OTAState, float, uint8_t, OTAComponent *)> state_callback_{}; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | OTAGlobalCallback *get_global_ota_callback(); | ||||||
|  | void register_ota_platform(OTAComponent *ota_caller); | ||||||
|  | #endif | ||||||
|  |  | ||||||
|  | }  // namespace ota | ||||||
|  | }  // namespace esphome | ||||||
							
								
								
									
										16
									
								
								esphome/components/ota_base/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								esphome/components/ota_base/__init__.py
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | |||||||
|  | import esphome.codegen as cg | ||||||
|  | from esphome.core import CORE, coroutine_with_priority | ||||||
|  |  | ||||||
|  | CODEOWNERS = ["@esphome/core"] | ||||||
|  | AUTO_LOAD = ["md5"] | ||||||
|  |  | ||||||
|  | ota_base_ns = cg.esphome_ns.namespace("ota_base") | ||||||
|  |  | ||||||
|  |  | ||||||
|  | @coroutine_with_priority(52.0) | ||||||
|  | async def to_code(config): | ||||||
|  |     if CORE.is_esp32 and CORE.using_arduino: | ||||||
|  |         cg.add_library("Update", None) | ||||||
|  |  | ||||||
|  |     if CORE.is_rp2040 and CORE.using_arduino: | ||||||
|  |         cg.add_library("Updater", None) | ||||||
							
								
								
									
										9
									
								
								esphome/components/ota_base/ota_backend.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								esphome/components/ota_base/ota_backend.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | |||||||
|  | #include "ota_backend.h" | ||||||
|  |  | ||||||
|  | namespace esphome { | ||||||
|  | namespace ota_base { | ||||||
|  |  | ||||||
|  | // The make_ota_backend() implementation is provided by each platform-specific backend | ||||||
|  |  | ||||||
|  | }  // namespace ota_base | ||||||
|  | }  // namespace esphome | ||||||
| @@ -1,15 +1,10 @@ | |||||||
| #pragma once | #pragma once | ||||||
| 
 | 
 | ||||||
| #include "esphome/core/component.h" |  | ||||||
| #include "esphome/core/defines.h" | #include "esphome/core/defines.h" | ||||||
| #include "esphome/core/helpers.h" | #include "esphome/core/helpers.h" | ||||||
| 
 | 
 | ||||||
| #ifdef USE_OTA_STATE_CALLBACK |  | ||||||
| #include "esphome/core/automation.h" |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| enum OTAResponseTypes { | enum OTAResponseTypes { | ||||||
|   OTA_RESPONSE_OK = 0x00, |   OTA_RESPONSE_OK = 0x00, | ||||||
| @@ -59,38 +54,7 @@ class OTABackend { | |||||||
|   virtual bool supports_compression() = 0; |   virtual bool supports_compression() = 0; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| class OTAComponent : public Component { | std::unique_ptr<OTABackend> make_ota_backend(); | ||||||
| #ifdef USE_OTA_STATE_CALLBACK |  | ||||||
|  public: |  | ||||||
|   void add_on_state_callback(std::function<void(ota::OTAState, float, uint8_t)> &&callback) { |  | ||||||
|     this->state_callback_.add(std::move(callback)); |  | ||||||
|   } |  | ||||||
| 
 | 
 | ||||||
|  protected: | }  // namespace ota_base
 | ||||||
|   CallbackManager<void(ota::OTAState, float, uint8_t)> state_callback_{}; | }  // namespace esphome
 | ||||||
| #endif |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| #ifdef USE_OTA_STATE_CALLBACK |  | ||||||
| class OTAGlobalCallback { |  | ||||||
|  public: |  | ||||||
|   void register_ota(OTAComponent *ota_caller) { |  | ||||||
|     ota_caller->add_on_state_callback([this, ota_caller](OTAState state, float progress, uint8_t error) { |  | ||||||
|       this->state_callback_.call(state, progress, error, ota_caller); |  | ||||||
|     }); |  | ||||||
|   } |  | ||||||
|   void add_on_state_callback(std::function<void(OTAState, float, uint8_t, OTAComponent *)> &&callback) { |  | ||||||
|     this->state_callback_.add(std::move(callback)); |  | ||||||
|   } |  | ||||||
| 
 |  | ||||||
|  protected: |  | ||||||
|   CallbackManager<void(OTAState, float, uint8_t, OTAComponent *)> state_callback_{}; |  | ||||||
| }; |  | ||||||
| 
 |  | ||||||
| OTAGlobalCallback *get_global_ota_callback(); |  | ||||||
| void register_ota_platform(OTAComponent *ota_caller); |  | ||||||
| #endif |  | ||||||
| std::unique_ptr<ota::OTABackend> make_ota_backend(); |  | ||||||
| 
 |  | ||||||
| }  // namespace ota
 |  | ||||||
| }  // namespace esphome
 |  | ||||||
| @@ -8,11 +8,11 @@ | |||||||
| #include <Update.h> | #include <Update.h> | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| static const char *const TAG = "ota.arduino_esp32"; | static const char *const TAG = "ota.arduino_esp32"; | ||||||
| 
 | 
 | ||||||
| std::unique_ptr<ota::OTABackend> make_ota_backend() { return make_unique<ota::ArduinoESP32OTABackend>(); } | std::unique_ptr<OTABackend> make_ota_backend() { return make_unique<ArduinoESP32OTABackend>(); } | ||||||
| 
 | 
 | ||||||
| OTAResponseTypes ArduinoESP32OTABackend::begin(size_t image_size) { | OTAResponseTypes ArduinoESP32OTABackend::begin(size_t image_size) { | ||||||
|   bool ret = Update.begin(image_size, U_FLASH); |   bool ret = Update.begin(image_size, U_FLASH); | ||||||
| @@ -56,7 +56,7 @@ OTAResponseTypes ArduinoESP32OTABackend::end() { | |||||||
| 
 | 
 | ||||||
| void ArduinoESP32OTABackend::abort() { Update.abort(); } | void ArduinoESP32OTABackend::abort() { Update.abort(); } | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif  // USE_ESP32_FRAMEWORK_ARDUINO
 | #endif  // USE_ESP32_FRAMEWORK_ARDUINO
 | ||||||
| @@ -6,7 +6,7 @@ | |||||||
| #include "esphome/core/helpers.h" | #include "esphome/core/helpers.h" | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| class ArduinoESP32OTABackend : public OTABackend { | class ArduinoESP32OTABackend : public OTABackend { | ||||||
|  public: |  public: | ||||||
| @@ -18,7 +18,7 @@ class ArduinoESP32OTABackend : public OTABackend { | |||||||
|   bool supports_compression() override { return false; } |   bool supports_compression() override { return false; } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif  // USE_ESP32_FRAMEWORK_ARDUINO
 | #endif  // USE_ESP32_FRAMEWORK_ARDUINO
 | ||||||
| @@ -10,11 +10,11 @@ | |||||||
| #include <Updater.h> | #include <Updater.h> | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| static const char *const TAG = "ota.arduino_esp8266"; | static const char *const TAG = "ota.arduino_esp8266"; | ||||||
| 
 | 
 | ||||||
| std::unique_ptr<ota::OTABackend> make_ota_backend() { return make_unique<ota::ArduinoESP8266OTABackend>(); } | std::unique_ptr<OTABackend> make_ota_backend() { return make_unique<ArduinoESP8266OTABackend>(); } | ||||||
| 
 | 
 | ||||||
| OTAResponseTypes ArduinoESP8266OTABackend::begin(size_t image_size) { | OTAResponseTypes ArduinoESP8266OTABackend::begin(size_t image_size) { | ||||||
|   bool ret = Update.begin(image_size, U_FLASH); |   bool ret = Update.begin(image_size, U_FLASH); | ||||||
| @@ -68,7 +68,7 @@ void ArduinoESP8266OTABackend::abort() { | |||||||
|   esp8266::preferences_prevent_write(false); |   esp8266::preferences_prevent_write(false); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
| @@ -7,7 +7,7 @@ | |||||||
| #include "esphome/core/macros.h" | #include "esphome/core/macros.h" | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| class ArduinoESP8266OTABackend : public OTABackend { | class ArduinoESP8266OTABackend : public OTABackend { | ||||||
|  public: |  public: | ||||||
| @@ -23,7 +23,7 @@ class ArduinoESP8266OTABackend : public OTABackend { | |||||||
| #endif | #endif | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif | #endif | ||||||
| @@ -8,11 +8,11 @@ | |||||||
| #include <Update.h> | #include <Update.h> | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| static const char *const TAG = "ota.arduino_libretiny"; | static const char *const TAG = "ota.arduino_libretiny"; | ||||||
| 
 | 
 | ||||||
| std::unique_ptr<ota::OTABackend> make_ota_backend() { return make_unique<ota::ArduinoLibreTinyOTABackend>(); } | std::unique_ptr<OTABackend> make_ota_backend() { return make_unique<ArduinoLibreTinyOTABackend>(); } | ||||||
| 
 | 
 | ||||||
| OTAResponseTypes ArduinoLibreTinyOTABackend::begin(size_t image_size) { | OTAResponseTypes ArduinoLibreTinyOTABackend::begin(size_t image_size) { | ||||||
|   bool ret = Update.begin(image_size, U_FLASH); |   bool ret = Update.begin(image_size, U_FLASH); | ||||||
| @@ -56,7 +56,7 @@ OTAResponseTypes ArduinoLibreTinyOTABackend::end() { | |||||||
| 
 | 
 | ||||||
| void ArduinoLibreTinyOTABackend::abort() { Update.abort(); } | void ArduinoLibreTinyOTABackend::abort() { Update.abort(); } | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif  // USE_LIBRETINY
 | #endif  // USE_LIBRETINY
 | ||||||
| @@ -5,7 +5,7 @@ | |||||||
| #include "esphome/core/defines.h" | #include "esphome/core/defines.h" | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| class ArduinoLibreTinyOTABackend : public OTABackend { | class ArduinoLibreTinyOTABackend : public OTABackend { | ||||||
|  public: |  public: | ||||||
| @@ -17,7 +17,7 @@ class ArduinoLibreTinyOTABackend : public OTABackend { | |||||||
|   bool supports_compression() override { return false; } |   bool supports_compression() override { return false; } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif  // USE_LIBRETINY
 | #endif  // USE_LIBRETINY
 | ||||||
| @@ -10,11 +10,11 @@ | |||||||
| #include <Updater.h> | #include <Updater.h> | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| static const char *const TAG = "ota.arduino_rp2040"; | static const char *const TAG = "ota.arduino_rp2040"; | ||||||
| 
 | 
 | ||||||
| std::unique_ptr<ota::OTABackend> make_ota_backend() { return make_unique<ota::ArduinoRP2040OTABackend>(); } | std::unique_ptr<OTABackend> make_ota_backend() { return make_unique<ArduinoRP2040OTABackend>(); } | ||||||
| 
 | 
 | ||||||
| OTAResponseTypes ArduinoRP2040OTABackend::begin(size_t image_size) { | OTAResponseTypes ArduinoRP2040OTABackend::begin(size_t image_size) { | ||||||
|   bool ret = Update.begin(image_size, U_FLASH); |   bool ret = Update.begin(image_size, U_FLASH); | ||||||
| @@ -68,7 +68,7 @@ void ArduinoRP2040OTABackend::abort() { | |||||||
|   rp2040::preferences_prevent_write(false); |   rp2040::preferences_prevent_write(false); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif  // USE_RP2040
 | #endif  // USE_RP2040
 | ||||||
| @@ -7,7 +7,7 @@ | |||||||
| #include "esphome/core/macros.h" | #include "esphome/core/macros.h" | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| class ArduinoRP2040OTABackend : public OTABackend { | class ArduinoRP2040OTABackend : public OTABackend { | ||||||
|  public: |  public: | ||||||
| @@ -19,7 +19,7 @@ class ArduinoRP2040OTABackend : public OTABackend { | |||||||
|   bool supports_compression() override { return false; } |   bool supports_compression() override { return false; } | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| 
 | 
 | ||||||
| #endif  // USE_RP2040
 | #endif  // USE_RP2040
 | ||||||
| @@ -12,9 +12,9 @@ | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| std::unique_ptr<ota::OTABackend> make_ota_backend() { return make_unique<ota::IDFOTABackend>(); } | std::unique_ptr<OTABackend> make_ota_backend() { return make_unique<IDFOTABackend>(); } | ||||||
| 
 | 
 | ||||||
| OTAResponseTypes IDFOTABackend::begin(size_t image_size) { | OTAResponseTypes IDFOTABackend::begin(size_t image_size) { | ||||||
|   this->partition_ = esp_ota_get_next_update_partition(nullptr); |   this->partition_ = esp_ota_get_next_update_partition(nullptr); | ||||||
| @@ -111,6 +111,6 @@ void IDFOTABackend::abort() { | |||||||
|   this->update_handle_ = 0; |   this->update_handle_ = 0; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| #endif | #endif | ||||||
| @@ -8,7 +8,7 @@ | |||||||
| #include <esp_ota_ops.h> | #include <esp_ota_ops.h> | ||||||
| 
 | 
 | ||||||
| namespace esphome { | namespace esphome { | ||||||
| namespace ota { | namespace ota_base { | ||||||
| 
 | 
 | ||||||
| class IDFOTABackend : public OTABackend { | class IDFOTABackend : public OTABackend { | ||||||
|  public: |  public: | ||||||
| @@ -26,6 +26,6 @@ class IDFOTABackend : public OTABackend { | |||||||
|   char expected_bin_md5_[32]; |   char expected_bin_md5_[32]; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| }  // namespace ota
 | }  // namespace ota_base
 | ||||||
| }  // namespace esphome
 | }  // namespace esphome
 | ||||||
| #endif | #endif | ||||||
| @@ -6,7 +6,7 @@ | |||||||
|  |  | ||||||
| #include "esphome/components/audio/audio.h" | #include "esphome/components/audio/audio.h" | ||||||
| #ifdef USE_OTA | #ifdef USE_OTA | ||||||
| #include "esphome/components/ota/ota_backend.h" | #include "esphome/components/ota/ota.h" | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| namespace esphome { | namespace esphome { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user