mirror of
https://github.com/esphome/esphome.git
synced 2026-02-08 00:31:58 +00:00
25762c62f8f78533b4bbe71d77d5122796e4bd17
Replace byte-at-a-time read() calls with batched read_array() in all four UART read sites: receive_telegram_(), receive_encrypted_telegram_(), and two drain loops. Each read() internally chains through read_array(data, 1) -> check_read_timeout_(1) -> available(), resulting in ~3 UART driver calls per byte. Batching into a 64-byte stack buffer reduces this to ~3 calls per batch regardless of byte count. Extract drain_rx_buffer_() helper to deduplicate the two drain sites in ready_to_request_data_() and stop_requesting_data_().
Description
Languages
C++
64.3%
Python
35.4%
C
0.2%
