mirror of
https://github.com/esphome/esphome.git
synced 2025-01-31 10:10:56 +00:00
[http_request] Allow configure buffer size on ESP-IDF (#7125)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
parent
da10de9ea8
commit
1f3754684a
@ -40,6 +40,8 @@ CONF_VERIFY_SSL = "verify_ssl"
|
|||||||
CONF_FOLLOW_REDIRECTS = "follow_redirects"
|
CONF_FOLLOW_REDIRECTS = "follow_redirects"
|
||||||
CONF_REDIRECT_LIMIT = "redirect_limit"
|
CONF_REDIRECT_LIMIT = "redirect_limit"
|
||||||
CONF_WATCHDOG_TIMEOUT = "watchdog_timeout"
|
CONF_WATCHDOG_TIMEOUT = "watchdog_timeout"
|
||||||
|
CONF_BUFFER_SIZE_RX = "buffer_size_rx"
|
||||||
|
CONF_BUFFER_SIZE_TX = "buffer_size_tx"
|
||||||
|
|
||||||
CONF_MAX_RESPONSE_BUFFER_SIZE = "max_response_buffer_size"
|
CONF_MAX_RESPONSE_BUFFER_SIZE = "max_response_buffer_size"
|
||||||
CONF_ON_RESPONSE = "on_response"
|
CONF_ON_RESPONSE = "on_response"
|
||||||
@ -110,6 +112,12 @@ CONFIG_SCHEMA = cv.All(
|
|||||||
cv.positive_not_null_time_period,
|
cv.positive_not_null_time_period,
|
||||||
cv.positive_time_period_milliseconds,
|
cv.positive_time_period_milliseconds,
|
||||||
),
|
),
|
||||||
|
cv.SplitDefault(CONF_BUFFER_SIZE_RX, esp32_idf=512): cv.All(
|
||||||
|
cv.uint16_t, cv.only_with_esp_idf
|
||||||
|
),
|
||||||
|
cv.SplitDefault(CONF_BUFFER_SIZE_TX, esp32_idf=512): cv.All(
|
||||||
|
cv.uint16_t, cv.only_with_esp_idf
|
||||||
|
),
|
||||||
}
|
}
|
||||||
).extend(cv.COMPONENT_SCHEMA),
|
).extend(cv.COMPONENT_SCHEMA),
|
||||||
cv.require_framework_version(
|
cv.require_framework_version(
|
||||||
@ -137,6 +145,9 @@ async def to_code(config):
|
|||||||
|
|
||||||
if CORE.is_esp32:
|
if CORE.is_esp32:
|
||||||
if CORE.using_esp_idf:
|
if CORE.using_esp_idf:
|
||||||
|
cg.add(var.set_buffer_size_rx(config[CONF_BUFFER_SIZE_RX]))
|
||||||
|
cg.add(var.set_buffer_size_tx(config[CONF_BUFFER_SIZE_TX]))
|
||||||
|
|
||||||
esp32.add_idf_sdkconfig_option(
|
esp32.add_idf_sdkconfig_option(
|
||||||
"CONFIG_MBEDTLS_CERTIFICATE_BUNDLE",
|
"CONFIG_MBEDTLS_CERTIFICATE_BUNDLE",
|
||||||
config.get(CONF_VERIFY_SSL),
|
config.get(CONF_VERIFY_SSL),
|
||||||
|
@ -18,6 +18,12 @@ namespace http_request {
|
|||||||
|
|
||||||
static const char *const TAG = "http_request.idf";
|
static const char *const TAG = "http_request.idf";
|
||||||
|
|
||||||
|
void HttpRequestIDF::dump_config() {
|
||||||
|
HttpRequestComponent::dump_config();
|
||||||
|
ESP_LOGCONFIG(TAG, " Buffer Size RX: %u", this->buffer_size_rx_);
|
||||||
|
ESP_LOGCONFIG(TAG, " Buffer Size TX: %u", this->buffer_size_tx_);
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<HttpContainer> HttpRequestIDF::start(std::string url, std::string method, std::string body,
|
std::shared_ptr<HttpContainer> HttpRequestIDF::start(std::string url, std::string method, std::string body,
|
||||||
std::list<Header> headers) {
|
std::list<Header> headers) {
|
||||||
if (!network::is_connected()) {
|
if (!network::is_connected()) {
|
||||||
@ -63,6 +69,9 @@ std::shared_ptr<HttpContainer> HttpRequestIDF::start(std::string url, std::strin
|
|||||||
config.user_agent = this->useragent_;
|
config.user_agent = this->useragent_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config.buffer_size = this->buffer_size_rx_;
|
||||||
|
config.buffer_size_tx = this->buffer_size_tx_;
|
||||||
|
|
||||||
const uint32_t start = millis();
|
const uint32_t start = millis();
|
||||||
watchdog::WatchdogManager wdm(this->get_watchdog_timeout());
|
watchdog::WatchdogManager wdm(this->get_watchdog_timeout());
|
||||||
|
|
||||||
|
@ -24,8 +24,18 @@ class HttpContainerIDF : public HttpContainer {
|
|||||||
|
|
||||||
class HttpRequestIDF : public HttpRequestComponent {
|
class HttpRequestIDF : public HttpRequestComponent {
|
||||||
public:
|
public:
|
||||||
|
void dump_config() override;
|
||||||
|
|
||||||
std::shared_ptr<HttpContainer> start(std::string url, std::string method, std::string body,
|
std::shared_ptr<HttpContainer> start(std::string url, std::string method, std::string body,
|
||||||
std::list<Header> headers) override;
|
std::list<Header> headers) override;
|
||||||
|
|
||||||
|
void set_buffer_size_rx(uint16_t buffer_size_rx) { this->buffer_size_rx_ = buffer_size_rx; }
|
||||||
|
void set_buffer_size_tx(uint16_t buffer_size_tx) { this->buffer_size_tx_ = buffer_size_tx; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
// if zero ESP-IDF will use DEFAULT_HTTP_BUF_SIZE
|
||||||
|
uint16_t buffer_size_rx_{};
|
||||||
|
uint16_t buffer_size_tx_{};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace http_request
|
} // namespace http_request
|
||||||
|
Loading…
x
Reference in New Issue
Block a user